<?xml version="1.0"?><rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>General Discussion</title><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/scope/threads/Default.aspx</link><description>A general ORM discussion area.</description><pubDate>2010-09-08T14:51:43Z</pubDate><lastBuildDate>2008-12-30T18:13:53Z</lastBuildDate><ttl>30</ttl><item><title>A couple of ORM diagram questions</title><pubDate>2008-12-30T18:13:53Z</pubDate><author>Scot</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/496/scope/posts/Default.aspx</link><description>Hi combitz,&lt;br&gt;&lt;br&gt;Constraints on derived fact types are themselves derivable and can be shown on the diagram. Thus, in your example, if the Person role in "Person has DOB" is required, and assuming the age calculation is derived from that date and the current date (which is known), then the Person role in "Person is of Age" would be mandatory as well. However, if the Person role in "Person has DOB" is optional, then the Person role in "Person is of Age" must also be optional. Uniqueness constraints are derived in a similar fashion so assuming a Person can only have one DOB, the uniqueness constraint must span only the Person role in "Person is of Age" (i.e. a person can have only one age).&lt;br&gt;&lt;br&gt;There is no construct for multi-valued attributes in ORM as cardinality is handled by the internal uniqueness constraints on fact types. Thus, if you had some sort of multi-valued ER attribute such as a collection of colors for a car, you would model this as the fact type "Car is of Color" and have the uniqueness constraint span both roles. Entity naming is handled by the tool. For example, in NORMA, you can name the fact type and that name would be used to derive the table name. In other ORM tools, you can force the table name on mapping via objectifying the fact type as the objectified name would then be used for table naming (a bit clumsy, but it works).&lt;br&gt;&lt;br&gt;For composite types, the most common approach is to use co-referencing. &lt;a HREF="/WebLog/tabid/58/EntryId/33/Default.aspx"&gt;http://www.objectrolemodeling.com/WebLog/tabid/58/EntryId/33/Default.aspx&lt;/a&gt; covers this a little bit but basically, you would create an object type representing the composite type and then have the composite’s detail modeled as fact types (e.g. Person Name has First Name, Person Name has Last Name, etc.). You then make the composite role unique on each fact type and place a external uniqueness constraint on each component role. Then you are free to use the composite object type and all component roles are then absorbed. Note, however, that your table mapping may be a little off depending on the tool you use and whether or not all component roles are mandatory. As for display on the diagram, most tools only require you to have the component fact types displayed once but allow you to repeat them for each use of the composite if desired.&lt;br&gt;&lt;br&gt;Hope that helps,&lt;br&gt;Scot.</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/496/scope/posts/Default.aspx</comments></item><item><title>ORM vs ERD</title><pubDate>2008-12-28T20:31:29Z</pubDate><author>combitz</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/495/scope/posts/Default.aspx</link><description>&lt;P&gt;a few months late but for others finding this ?&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.inconcept.com/JCM/December1999/halpin.html"&gt;http://www.inconcept.com/JCM/December1999/halpin.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/495/scope/posts/Default.aspx</comments></item><item><title>Dynamic data model and relational mapping</title><pubDate>2008-01-15T04:15:06Z</pubDate><author>aravind</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/487/scope/posts/Default.aspx</link><description>&lt;P&gt;&lt;SPAN class=postbody&gt;&lt;FONT size=2&gt;Hi Friends - &lt;BR&gt;&lt;BR&gt;I'd appreciate your expert thoughts and suggestions for the below requirement. &lt;BR&gt;&lt;BR&gt;We dont have a static entity model i.e. our table doesn't contain a fixed set of coulmns. Or to put in another way we doesnt want our CUSTOMER entity to contain just id, firstName, lastName and age. We want our entity to be generic (name=value pair) so that we can accomodate N number of attributes without touching the TABLE def. This gives us lot of flexibility while boarding new customers etc. As of now our CUSTOMER table has around 200 attributes (and increasing). &lt;/FONT&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=postbody&gt;How are these kind of things modeled if we use RDBMS in the backend?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=postbody&gt;Thank you in advance!&lt;/P&gt;&lt;/SPAN&gt;</description></item><item><title>Ternary and Co-Referenced Relationships</title><pubDate>2007-11-05T21:15:35Z</pubDate><author>orion</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/484/scope/posts/Default.aspx</link><description>&lt;P&gt;Hi mark,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is a fun situation!&amp;nbsp; I tried modeling it as you described, and made a few assumptions:&lt;BR&gt;&amp;nbsp;- A given Function may have many function dates. &lt;/P&gt;
&lt;P&gt;- You want to be able to reserve a garment for one of these events, and know when it will be unavailable.&lt;/P&gt;
&lt;P&gt;- You want the ability to reserve a garment for JUST ONE function date. You son't wish to be limited to reserving it for every date for that function if at all.&lt;/P&gt;
&lt;P&gt;- Every function is of exactly one function type, and each function type reccomends exactly one 'unavailability period'&lt;/P&gt;
&lt;P&gt;- I also inferreed that a garment may have more than one colour - a red and black gown, for example. &lt;/P&gt;
&lt;P&gt;I did it using TWO ternary fact types, with an equality constraint and a derivation rule. The first ternary fact - probably the one you had that didn't seem to cover it - is "Garment is booked on Date for Function," with a constraint line over the Garment and Date boxes. there's a 'Function is of Function Type', and two fact types connected to Function Type that indicate the number of days before and after, reccomended for that function type.&lt;/P&gt;
&lt;P&gt;The second ternary is: "Garment is unavailable from Date to Date."&amp;nbsp;I have two&amp;nbsp;constraint lines: one over Garment and the&amp;nbsp;'from' Date, and one over Garment and the&amp;nbsp;'to' Date. This fact type is derived - you can determine this information from those 'number of days' facts on Function Type for the Function that garment is booked for. (Likely derived and stored, hence the&amp;nbsp;** on the diagram instead of *)&lt;/P&gt;
&lt;P&gt;To round it out, I added an equality constraint, showing that every garment that is booked on some date for some function is also unavailable from some date to some date. (This may be better as a subset, if you want to allow garment unavailaility independant of function bookings)&lt;/P&gt;
&lt;P&gt;I'll try to send&amp;nbsp;my little&amp;nbsp;diagram to your e-mail shown on these forums. Chances are, you saw it before you even started reading this post. :]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/484/scope/posts/Default.aspx</comments></item><item><title>ORM &amp; UML Process Sequence</title><pubDate>2007-01-05T03:42:55Z</pubDate><author>aswin_orm</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/475/scope/posts/Default.aspx</link><description>Hello,&lt;br /&gt;       I am trying to identify the sequence of steps that would be involved in a ORM/UML process.&lt;br /&gt;I am involved in a Object To Relational Technology project in the J2EE world and trying to come up with a better way to design my persistence layer in java. &lt;br /&gt;Given my "entities" are not dumb entities i.e. they have behavior how can I combine the benefits of ORM &amp; UML together ? &lt;br /&gt;UML does not enforce constraints that ORM does but it has a natural sequence of steps from gathering requirements, to capturing use cases, etc.&lt;br /&gt;&lt;br /&gt;How can I combine the benefits of both worlds ?&lt;br /&gt;Regards,&lt;br /&gt;Aswin.</description></item><item><title>Independent entity</title><pubDate>2006-12-20T14:26:14Z</pubDate><author>umlUser</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/474/scope/posts/Default.aspx</link><description>&lt;P&gt;I'm new to UML and need help in trying to model this Visio Enterprise Architect:&lt;/P&gt;
&lt;P&gt;Asset is an indepedent entity&lt;/P&gt;
&lt;P&gt;Asset&amp;nbsp;can have 0 or more Redundant Assets&lt;/P&gt;
&lt;P&gt;Redundant Assets is an asset.&lt;/P&gt;
&lt;P&gt;Thanks for your&amp;nbsp; help&lt;/P&gt;</description></item><item><title>UC's and ternary roles</title><pubDate>2006-12-11T16:05:41Z</pubDate><author>ulrikrasmussen</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/471/scope/posts/Default.aspx</link><description>Hello Scot,&lt;br&gt;&lt;br&gt;I can see now that the spanning UC was redundant, thanks for the heads up :). I found it much easier to model my needs when creating a list of sample roles, and marking the unique constraints with either bold/colored/underlined decoration. Thanks for your articles, they seem to have some good in-depth samples of how to model this too.&lt;br&gt;&lt;br&gt;I now changed my role to the following:&lt;br&gt;I still have a Resource, a Timespan and a User, but now&lt;br&gt;&amp;nbsp;&amp;nbsp; a UC spans Resource and Timespan, and&lt;br&gt;&amp;nbsp;&amp;nbsp; a UC spans Timespan and User.&lt;br&gt;&lt;br&gt;This should constrain the resources to only be occupied in a single timespan (provided these don't overlap of course), and a user to only occupy a resource during a timespan (makes sense in the context of the application).&lt;br&gt;&lt;br&gt;I think I get a little confused when modeling all this information into something as compact as a ORM role, but I think I've got the hang of it now :).&lt;br&gt;&lt;br&gt;Thanks for your help,&lt;br&gt;Ulrik&lt;br&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/471/scope/posts/Default.aspx</comments></item><item><title>What about DLinq?</title><pubDate>2006-06-23T15:24:38Z</pubDate><author>GiacomoCiti</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/465/scope/posts/Default.aspx</link><description>ORM tools map conceptual models to ddl. &lt;br&gt;
With DLinq tools you can then map db schema to .Net types.&lt;br&gt;
Those types need to be equipped with metadata (DLinq attributes) which are partially database vendor specific. &lt;br&gt;
At the moment this is not a big issue since only Sql Server is supported. &lt;br&gt;
Since DLinq tools support also the reverse step (from .Net types with metadata to ddl) in my opinion a great scenario would be: &lt;br&gt;
&lt;br&gt;
the ORM tool maps the conceptual model to .Net types with appropriate metadata (possibly for multiple target db); &lt;br&gt;
&lt;br&gt;
different DLinq tools map .Net types to ddl targeting various db.&lt;br&gt;
&lt;br&gt;
What do you think about this scenario, and what about on the ORM side
(mapping models to .Net types with DLinq attributes)? Thanks.</description></item><item><title>independent object types(!) vs. optional (non-mandatory) roles</title><pubDate>2006-05-28T18:59:21Z</pubDate><author>Frankus</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/391/scope/posts/Default.aspx</link><description>&lt;P&gt;Have a look at Halpin´s Book at page 224.&lt;/P&gt;
&lt;P&gt;He clearly states: "We define an independent object type to be a primitive object type whose fact roles are collectively optional (assuming the object type plays at least one fact role)."&lt;/P&gt;
&lt;P&gt;It is used to instanciate an entity-type that doesn´t need to play any role. This means you can enter data in your DB that isn´t used in some role-connections.&lt;/P&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/391/scope/posts/Default.aspx</comments></item><item><title>mapping -external uniqueness constraint?</title><pubDate>2006-02-13T17:45:49Z</pubDate><author>Scot</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/439/scope/posts/Default.aspx</link><description>Hi Thu,&lt;br&gt;&lt;br&gt;Your second model is equivalent to my version of the nested approach so long as you add the constraint: &lt;br&gt;&lt;br&gt;C3: External UC over Room role of F1 and Employee role of F2&lt;br&gt;&lt;br&gt;You'll notice both versions map the same.&lt;br&gt;&lt;br&gt;It's not that your first model was invalid it just doesn't capture the constraints correctly. A lot of it depends on the composition of the Mailbox number itself. If it is a value that is unique to a given room but more than one room can have a mailbox of the same number, your first model will not allow an employee to have two mailboxes in different rooms that have the same number, which is probably not what you want. &lt;br&gt;&lt;br&gt;Think of the Mailbox conceptually as being a thing (rather than just some number/string); it has to be physically located someplace and that place is a Room. Thus, there is an intrinsic relationship between Room and Mailbox. &lt;br&gt;&lt;br&gt;Then, depending on how mailboxes are identified, you create the model components accordingly. If their numbers are unique to a room -- but not across all rooms -- then you would use one of the models I proposed (or the amended one above). &lt;br&gt;&lt;br&gt;If mailbox number is guaranteed to be unique across all rooms, then the model structure would change. Specifically, you don't need a fact relating employee to room but rather mailbox to room, the employee-room relationship is derived via the mailbox assignment.&lt;br&gt;&lt;br&gt;Does that make sense?&lt;br&gt;&lt;br&gt;Hope that helps,&lt;br&gt;Scot.</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/439/scope/posts/Default.aspx</comments></item><item><title>Value type - Having the same name in different entities...</title><pubDate>2005-11-20T21:42:12Z</pubDate><author>MartinPlatt</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/398/scope/posts/Default.aspx</link><description>&lt;div class="Quote"&gt;&lt;I&gt;&lt;B&gt;Guennadi V. Vanine wrote&lt;/B&gt;&lt;/I&gt;&lt;BR&gt;
&lt;P class=MsoNormal style="MARGIN: 5pt 0cm; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Arial Narrow'"&gt;It is impossible to do anything in ORM without understanding that though it uses such noble terms as "conceptual models", "object roles", business rules", really they all just &lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;distorted database physical models terms and even if to think about data modeling it is impossible to separate even physical from logical models in VEA. &lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 5pt 0cm; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Arial Narrow'"&gt;It is just tricky publicity about "conceptual" and "modeling", they use OO terminology but really u should translate all to database-only terms. &lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 5pt 0cm; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Arial Narrow'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Arial Narrow'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;I even do not beleive that founders do not know about it since all new developmentfor ORM is secret/closed.and there is no discussion &lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;There are hundreds of academic articles and books but no practical OpenSource projects or discussions about practical realizations.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 5pt 0cm; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Arial Narrow'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt; &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 5pt 0cm; mso-pagination: none; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Arial Narrow'; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;I beleive, a lot of people, tried hard to beleive this convoluted terminology but only lost their time&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;I recognise that we can't really talk about OO concepts in a non-OO database.  &lt;/P&gt;
&lt;P&gt;My point was more that it would be good to capture the examples, contraints, types and the like for items that have identical pieces of data.  I guess what I'm saying is that it would be good to be able to define a datestamp type, for example that could be used in different namespaces, but be an exact clone as those identical facts in different namespaces.&lt;/P&gt;
&lt;P&gt;I can see that it seems that Microsoft have dropped the idea of developing or using ORM for any future developments, and that there is a complete lack of any new software for it.  That is a shame, I'm just hoping that by having discussion such as this one, and suggesting new ideas, people might catch on, and that development finally take place?&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Martin.&lt;/P&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/398/scope/posts/Default.aspx</comments></item><item><title>Learning ORM properly</title><pubDate>2005-11-20T21:29:20Z</pubDate><author>MartinPlatt</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/403/scope/posts/Default.aspx</link><description>&lt;P&gt;Scot,&lt;/P&gt;
&lt;P&gt;Thank you for the information.  I am again keen to provide materials for team members to be able to read, or have some basic tutorials to allow a team member to start using ORM.  I see the value in using ORM, but it only has value when used properly.  It has taken me a while to adjust, from thinking in terms of relationships and ED diagrams, to thinking in terms of facts and contraints.  Its similar, but different.  I'd like to be able to offer the learning curve I had to travel, but in a shorter time.  If Terry's book is that resource, then I will get hold of the book.&lt;/P&gt;
&lt;P&gt;I totally agree to your commets regarding ORM from Microsoft, it was as if they got hold of Terry and somehow started into the process of making it a Microsoft technolgy almost, then backed out half way through it.  My experience of their information is that it falls way short of being useful given the skills that are being tested.  That's disappointing, don't you think?&lt;/P&gt;
&lt;P&gt;cheers,&lt;/P&gt;
&lt;P&gt;Martin.&lt;/P&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/403/scope/posts/Default.aspx</comments></item><item><title>wishhh: to make ORM model-driven instead of round-tripped, i.e. common artifacts identification</title><pubDate>2005-07-06T14:01:44Z</pubDate><author>g_vanine</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/397/scope/posts/Default.aspx</link><description>&lt;DIV&gt;ORM doesn't have any theoretical basis permitting &lt;SPAN class=876204715-06072005&gt;for central meta-model repository or dictionary.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;Round-tripping (vs model-drivien) doesn't make any sense except to put any innocent newcomer, having trusteded to all introductory texts,  to very different situation.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;
&lt;DIV&gt;&lt;BR&gt;During forward engineering, the semanthics is lost, during reverse engineering any implementation, deployment and mapping details are gone.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/FONT&gt;&lt;/SPAN&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;In other words, reverse engineering, at the best of hypotheses, would render only a representation of specific code for specific tool with specific implementation style of specific person writing and forward engineering wouldn't get any more than a skeleton.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;&lt;BR&gt;In other words,  using forward or reverse engineering automation gives more work than just specification of models or code from the scratch.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;&lt;BR&gt;Thereafter, any ORM tool, without centralization of elements through  Inability to go in any direction actually eliminates any sense in round-tripping and as such in ORM, as modeling language or method, might be it has sense only as drawing tool support. That is, it is more easy to do models, code manuallly without any tripping.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;So, the proposal is to introduce central meta-data model repository, dictionary and therefore common identification of elements between various models and in code.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;&lt;/FONT&gt;&lt;/SPAN&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;Glossary:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;Forward engineering - going from specification of conceptual modeling to the logical one and, eventually, to the code&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN class=876204715-06072005&gt;&lt;FONT face=Arial size=2&gt;Reverse Engineering - converting code to a physical--&gt; logical --&gt; conceptual model &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;</description></item><item><title>MySQL to ORM</title><pubDate>2005-06-27T12:28:19Z</pubDate><author>g_vanine</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/377/scope/posts/Default.aspx</link><description>Thanks for your information and feedback.&lt;BR&gt;It really saved me time before I even jumped into what I counted for.&lt;BR&gt;&lt;BR&gt;I have read tonight that Analysis&amp;Design is wicked kind (*) of activity. &lt;BR&gt;&lt;BR&gt;&lt;FONT size=2&gt;&lt;SPAN class=518261923-26062005&gt;(*) &lt;/SPAN&gt;“&lt;SPAN class=518261923-26062005&gt;W&lt;/SPAN&gt;icked” problem &lt;SPAN class=518261923-26062005&gt;[1] &lt;/SPAN&gt;&lt;SPAN class=518261923-26062005&gt;i&lt;/SPAN&gt;s one that could be&lt;SPAN class=518261923-26062005&gt; &lt;/SPAN&gt;clearly defined only by solving it&lt;SPAN class=518261923-26062005&gt;..&lt;/SPAN&gt;. &lt;BR&gt;This paradox implies,&lt;SPAN class=518261923-26062005&gt; &lt;/SPAN&gt;essentially, that you have to “solve” the problem once in order to clearly define it and&lt;SPAN class=518261923-26062005&gt;  &lt;/SPAN&gt;then solve it again to create a solution that works.&lt;SPAN class=518261923-26062005&gt;..&lt;/SPAN&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;SPAN class=518261923-26062005&gt;&lt;FONT size=2&gt;...&lt;BR&gt;One of the main differences between programs you develop in school and those you develop as a professional is that the design problems solved by school programs are rarely, if ever, wicked.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;&lt;SPAN class=518261923-26062005&gt;"&lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;
&lt;DIV&gt;&lt;SPAN class=518261923-26062005&gt;&lt;SPAN class=518261923-26062005&gt;&lt;FONT size=2&gt;[1]&lt;BR&gt;C&lt;/FONT&gt;&lt;SPAN class=518261923-26062005&gt;&lt;FONT size=2&gt;hapter 5.  Design in Construction. &lt;BR&gt;Steve McConnell's 'Code Complete2'. ISBN: 0-7356-1967-0&lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://cc2e.com/docs/Chapter5-Design.pdf"&gt;&lt;FONT color=#000000 size=2&gt;http://cc2e.com/docs/Chapter5-Design.pdf&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/SPAN&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/377/scope/posts/Default.aspx</comments></item><item><title>time-savior forORM new-comers (invert definitions to those used by UML) </title><pubDate>2005-06-25T16:30:02Z</pubDate><author>g_vanine</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/393/scope/posts/Default.aspx</link><description>&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;The new-comer to ORM can read hundreds of pages for 10, 20 or 50 times until (s)he comes to understanding to put aside what is writen in ORM texts and notation directly.&lt;BR&gt;&lt;BR&gt;You would never bring together either direct ORM notation or its explanations.  &lt;BR&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;You will save a lot of time if instead of beleiving ORM texts and terminology on roles (or predicates as sequences of roles)  invert its application/implications directly to COLUMNS really filled with object instances corresponding to entity type that plays corresponding role (what should have been one of very specific and final result of forward engineering)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;For ex., internal uniqueness constraint notation. &lt;BR&gt;You would never guess (from notation or explanations or even Fact Editor questions) that it is NOT applied to role(s) (or role instance(s)) above which it appears. It is applied to RDBMS column with object entity instances of correspong entity type! &lt;BR&gt;&lt;BR&gt;You would never guess that questions like "&lt;STRONG&gt;Each&lt;/STRONG&gt; Location has how many RoomNumber?" are not to help with roles or relationship. They are not even about RoomNumber, since  varying answers on RoomNumber numbers (for the same "each" Location) will influence uniqueness arrow or mandatory constraint notation (bold dot) on only Location's role. &lt;BR&gt;That is, once more, Location instance is the same, the number of RoomNumber varies, but the corresponding variation is on Location "role" (well, u should keep in mind the logic that the meaning of of terms is inverted from RDBNS p.v.)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;&lt;BR&gt;Well, don't forget to directly translate this convoluted phraseology and notations to filled with entity type instances column. It is just about it! Calm down, Don't blame your head, it is not your fault!&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;Again, in place of how it is explained and questioned (in Fact Editor), multiplicity/cardinality of role instances or even simply object instances per corresponding object, the really used meaning is multiplicity/cardinality of instances per the same role instance per population (multiplicity) of object instances. Terminology and explanations from UML but meaning is from RDBMS implementation and inverted to UML definitions.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;Resume: &lt;BR&gt;You will save a lot of time by immediately imagining the supposed result of forward engineering in no less than 3NF under/instead of ORM notation and terminology.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN class=984244115-25062005&gt;Proposal:&lt;BR&gt;Taking the opportunity of this post, I propose to change ORM terminology, notation to more intuitive and explicit, to synchronize it with UML glossary (it is a standard, after all) or, at least, to avoid using the same terms as in UML but with different underlying (and frequently convoluted upsidedown) meanings. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;</description></item><item><title>what is the difference between entity and value type, and how to refer/identify/distingui instances?</title><pubDate>2005-06-20T16:05:33Z</pubDate><author>g_vanine</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/354/scope/posts/Default.aspx</link><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Ok, I've got what is reference scheme. &lt;BR&gt;&lt;BR&gt;The primary reference scheme is a "mapping tool help" indicating that corresponding ORM entitytype  name will be translated to Entity/Table Name in ERD.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;So, Person(Id) will give Person table and PersonId PK(Primary Key), while all other one-to-one relationships (or candidate reference schemes) will give unique keys. &lt;BR style="mso-special-character: line-break"&gt;&lt;BR style="mso-special-character: line-break"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Just to remind to people who doesn't know relational databases: &lt;BR&gt;the table cannot be referenced without PK, it cannot have more than ONE PK and PK is not updatable (like unique keys). &lt;B&gt;Correct me here, I am not DBA&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt; &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;What it has to do with object roles and/or conceptual modeling? &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;What if I do not know how I am going to treat objects or already know that I am not going to RDBMS storage but XML storage, or is going to operate without any persistence - "on-the-fly" or put objects "on-wire" through SOAP messages oe whatever?&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt; &lt;BR&gt;Does it all relational conveniencies belong to conceptual modeling?&lt;BR&gt;At least, they should not be called as "conceptual", etc.&lt;BR&gt;Should a person read hundreds pages of round-about panegyrics about RDBMS foundations of ORM in order to specify conceptual modeling (roles, biz rules, just concepts)?&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -36pt"&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -36pt"&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;The answers are , unfortunately, for the current state of ORM "Yes". Because, in order to understand how to specify really conceptual model, the person should know which "conceptual" terms in ORM has nothing to do with conceptual modeling. &lt;BR&gt;First, it is necesary to specify independent conceptual model and then specify " ORM conceptual" model in terms of ORM just for mapping to RDBMS persistence.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -36pt"&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -36pt" align=left&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;The problem is that reference scheme, as well as many other ORM terms, is neither conceptual or logical model term (though having direct database mapping/equivalence). It is just the help for mapping tool to pick up the table name, primary keys, unique keys names.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -36pt"&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;But for business rules , object roles, concepts specification, person really should not&lt;SPAN style="mso-spacerun: yes"&gt;  &lt;/SPAN&gt;bebogged with this. Just he should have been told directly and tersely what terms are conceptual and which were fused with RDBMS implementation peculiarities like, no more than one PK, sorry &lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;PRS (ORM Primary Reference Scheme) per table (sorry, ER domain). &lt;/SPAN&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/354/scope/posts/Default.aspx</comments></item><item><title>Certified Object-Role Modeling (ORM) Consultant</title><pubDate>2005-06-09T10:53:57Z</pubDate><author>Scot</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/294/scope/posts/Default.aspx</link><description>&lt;P&gt;ORM Certification used to be conducted (via a test written by Terry Halpin) by Asymetrix/InfoModelers during the time of the InfoModeler tool. Once it was acquired by Visio, the certification stopped.&lt;/P&gt;
&lt;P&gt;I think it helps me when a client is specifically looking for ORM expertise but otherwise it probably has little impact on my getting work.&lt;/P&gt;
&lt;P&gt;Generally speaking (i.e. with regards to other, non-ORM certifications) I think certification might help to sway employment in your favor if all other things are equal. In other words, if there are two otherwise equivalent candidates, the certified one would tend to get the work. In my experience in interviewing job candidates, however, "all other things" are seldom equal.&lt;/P&gt;
&lt;P&gt;Scot.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/294/scope/posts/Default.aspx</comments></item><item><title>Free non-visio tools?</title><pubDate>2005-03-30T10:52:39Z</pubDate><author>Scot</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/104/scope/posts/Default.aspx</link><description>Hi Josh,&lt;br /&gt;&lt;br /&gt;&lt;div class="Quote"&gt;&lt;i&gt;&lt;b&gt;UV2003 wrote&lt;/b&gt;&lt;/i&gt;&lt;br&gt;Hi,&lt;br&gt; I started learning about ORM a couple of years ago, and was wondering if there are any good free tools that don't depend on things like Visio. I'd be happy with an XML to DDL / Code generator.&lt;br&gt; &lt;br&gt; Thanks,&lt;br&gt; Josh&lt;br&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I haven't seen any command-line style tools; they all pretty much have a graphical component (although I haven't dug into the FCO-IM tools like CaseTalk or Infagon, perhaps they have a text based interface that could be scripted or something).&lt;br /&gt;&lt;br /&gt;It's a good idea, though. &lt;br /&gt;&lt;br /&gt;Scot.</description><comments>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/104/scope/posts/Default.aspx</comments></item><item><title>Welcome</title><pubDate>2005-03-22T13:08:34Z</pubDate><author>Scot</author><link>http://www.objectrolemodeling.com/tabid/0/forumid/3/threadid/85/scope/posts/Default.aspx</link><description>&lt;P&gt;Welcome to the ObjectRoleModeling.com ORM General Discussion forum. Any (logged in) member of the site is welcome to post here. If your topic is related to a non-ORM topic for which there is a specific forum (e.g. Visio, Orthogonal Toolbox, General Discussion), please post in that forum instead.&lt;/P&gt;</description></item><item><title>More...</title><wfw:link>http://www.objectrolemodeling.com/DesktopModules/Forum/Forum_Rss.aspx?forumid=3&amp;threadspage=2</wfw:link></item></channel></rss>