Re: Another view on analysis and ER

From: Jan Hidders <hidders_at_gmail.com>
Date: Sat, 8 Dec 2007 17:32:51 -0800 (PST)
Message-ID: <ab7476b4-de9a-4c13-9b60-1dfd2ddd6fa1_at_t1g2000pra.googlegroups.com>


On 8 dec, 21:37, JOG <j..._at_cs.nott.ac.uk> wrote:
>
> My question is when should one choose to represent (in FOL if one so
> desires) something as a thing, as in Exists x, or as a predicate, X().
> So if I have my previous example "John from London married Jane from
> Manchester in a Church", do I have:
>
> 1) Married(Husband:John, Wife:Jane, Instituion:Church)
> 2) EXISTS! x E marriages [ Husband(x, John) ^ Wife(x, Jane) ^
> Institution(x, Church) ]
>
> First one is marriage as a predicate, the second one the marriage as a
> thing, x. Which to choose, and when.

The most simple one that allows you to model your UoD properly. In the context of FOL this would usually be 1) except if you also have predicates in your UoD in which a marriage plays a role as an entity. In the latter case you should probably use 2) but it could also be that you have to expand even more and also objectify the relationship between marriage and husband. Obviously this can repeat itself in theory an arbitrary number of times, and each time you replace a relationship with an new entity type and a few new relationships that represent the roles. In a very real sense you can compare it to zooming in on a fractal. The design principle can then be formulated as zooming in as much as is needed to place all the predicates you have to model, but no more.

Note that in an ER dialect that allows objectification, such as ORM, zooming in one time can often be dealt with by objectification and keep the basic structure of the model the same, but the second time it will change it.

  • Jan Hidders
Received on Sun Dec 09 2007 - 02:32:51 CET

Original text of this message