Re: Has E/R had a negative impact on db?

From: Jan Hidders <hidders_at_gmail.com>
Date: 24 Apr 2006 15:25:43 -0700
Message-ID: <1145917543.719002.158280_at_u72g2000cwu.googlegroups.com>


JOG wrote:
> Jan Hidders wrote:
> > JOG wrote:
> > > Just a thought.
> >
> > Likewise. :-)
> >
> > > I don't like entities. In fact I despise entities, as the enemy of good
> > > information philosophy. You see I just don't accept their existence.
> >
> > Actually, I don't see what you could possibly mean with that, and to
> > the extent that I can guess a meaning I find that a rather baffling
> > statement.
>
> Agreed, in a scientific paper, I would be embarressed by such nonsense,
> so take it with a pinch of salt - the prose is purple to engender
> responses, however one wishes to interpret such a rant.

Ok. Fair enough.

> The point I am
> really making is that I see no satisfactory distinction between
> entities and relationships, that I find this jarring, and that perhaps
> making this split may not always be productive. Nonetheless, from this
> thread I have discovered ORM and have been pretty impressed by it.

Indeed. One of the few ER dialects that took into account that sometimes you would like to consider the same thing as both an entity and a relationship.

> > The usual definition of 'entity' in the context of data
> > modelling for database is something like "things that can be identified
> > and which we would like to store information about in the database". If
> > that's how I interpret your statement then you seem to be saying that
> > you don't believe there are such things, and since we cannot store
> > information about things we cannot identify, this leads inexorably to
> > the conclusion that you don't believe that we can store information
> > about anything interesting in a database.
>
> Right, so your working definition is that entities are "things that can
> be identified and which we would like to store information about in the
> database". Relationships however are also things, they can be identifed
> and we would like to store them - so the definition appears to be on a
> sticky wicket.

Yes, relationships are a special kind of entity. Why do you think this is problematic? I would argue that this is not a deep problem in ER modelling and can be fixed. ORM, for example, does that to some extent.

> > > There is no magical wrapper surrounding some construct that turns it
> > > into a nicely formed 'thing' or 'object'.
> >
> > What makes you think a wrapper is needed?
>
> The use of the term 'entity' has seemed to me to be as a collection of
> attributes or properties, wrapped up together. Objects equally are
> wrappers in that they encapsulate whatever is inside. I may have missed
> your point - I was just inferring that these groupings of attributes
> are made in pragmatic fashion and that there is no right or wrong to
> them.

Encapsulation is a nonsensical concept in the context of data modelling. It looks a bit as if the problem is more that you are retro-fitting terminology from the world of object-oriented programming into the world of datamodelling that has no place there. ;-) More to the point: it's certainly not an inherent part of modelling with ER dialects.

> > What makes you think a relationship is necessarily binary? And why do
> > you think it is a problem that the distinction between relationsips and
> > entities is not clear?
>
> Well, I offered the suggestion that this may have encouraged a
> navigational viewpoint of data, between nodes connected by links.

Binary relationships encourage just as much a navigational viewpoint as foreign keys do. And even if they did and the query language would encourage you to specify queries in a navigational way then this becomes only problematic if the query engine is going to execute navigationally specified queries in a navigational way.

> > > Nothing. In fact all they are, are special cases of n-ary
> > > relationships, or 'associative entities'.
> >
> > No, that is clearly false. Not every entity is necessarily identified
> > by its associated attributes, identification could be more complex
> > and/or indirect than that.
>
> Well, clearly not clearly. Would liebniz equality not state that the
> only thing that identifies an item is very much its atrributes?

You mean Leibniz' substitution principle?: Two things X and Y are equal iff in all true propositions containing X we can substitute Y for X and again obtain a true propsition and vice versa.

That would only imply what you think it implies if only attributes where stored, and not relationships.

> Given
> an E/R relationship can always be restated as an associative entity I'd
> appreciate if you could expand on this.

Consider weak entities, say the weak entity "Dog" with attribute "name" that depends via the "is-owned-by" relationship upon the entity "Owner" with attributes "name" and "address". To identify a dog you not only need its name (which is probably not globally unique) but also the name and address of its owner.

> > Serious study of object / entity identity would
> > have led to simpeler and more general models, and we would have had a
> > better understanding of schema evolution and temporal databases.
>
> That is equally interesting to me. To your knowledge has anyone ever
> done such a study?

I know of some work done in the context of ORM by Erik Proper in his PhD thesis: H.A. (Erik) Proper. A Theory for Conceptual Modelling of Evolving Application Domains. University of Nijmegen, Nijmegen, The Netherlands, EU, 1994, ISBN 909006849X.

Erik worked closely with Arthur ter Hofstede on the formalization of ORM. This doesn't make light reading, but it might give an idea of what I'm talking about.

  • Jan Hidders
Received on Tue Apr 25 2006 - 00:25:43 CEST

Original text of this message