Re: relationship in the database

From: David Cressey <david_at_dcressey.com>
Date: Tue, 17 Sep 2002 21:02:50 GMT
Message-ID: <_LMh9.84$0I3.5039_at_petpeeve.ziplink.net>


> Ok, lets cut to the chase here.
> Is it not true that the ER model actually built upon the Relational Model?

I would say that when Chen came up with the ER model, the intent was to back away from the relational model rather than to build upon it.

At the time, there were many existing database applications built on hierarchical or network DBMS products. New databases might be implemented using a hierarchical, network, or relational DBMS. The ER model used many of the same concepts as the relational model, but was less biased towards a particular DBMS technology.

In particular, relationships are identified and qualified in the ER model, but are not "implemented". That means that you could take a single ER model, and use it as the basis for both a hierarchical or network database design, or, on the other hand, use it as the basis for a relational design. The hierarchical or network DB would implement relationships by using pointers, while the relational DB would implement relationships by adding foreign keys.

In practice, what that meant is that the ER model was more useable when specifying requirements, although certainly incomplete as a logical DB design.

The world has turned many times since the time frame I'm referring to. Hierarchical and network databases have become distinctly old fashioned, although they have never really gone away. And OODB systems claim to be the successors to RDBMS technology. That claim gets debated frequently in this NG.

It's still the case that ER is useful for specifying requirements from a data centric viewpoint without committing to a particular technology for the implementation. One could, however, argue that an analysis level object model, or a UML model, is even more useful for capturing requirements, since those two capture required behavior in addition to required data.

A relational model is still a necessary step before building a relational DB. It has already been pointed out that generating a relational model once you have an ER model is straightforward. Received on Tue Sep 17 2002 - 23:02:50 CEST

Original text of this message