Re: database design method

From: David Cressey <>
Date: Sat, 19 Oct 2002 12:12:41 GMT
Message-ID: <Z_bs9.196$>

> I'm confused about the methods of database design.
> It seems to me that most theoretical texts talk about 'conceptual',
> 'logical' and 'physical' design. These steps produce conceptual, logical
> database schema. However in the 'real world' conceptual and logical steps
> seem to be combined into a single step.

Here's my take on it. A "conceptual model" is typically the result of analysis, not design. The best conceptual models capture the information requirements of some proposed system or database, from a data centric point of view. The ER model, when it was first proposed and for about a decade following, was a good model for this purpose, because of the way relationships are treated. In the ER model, relationships are identified, but not implemented.

Again, taking the point of view of 20 years ago, databases of that era were mostly hierarchical or network, with "newfangled" relational databases making rapid inroads. Hierarchical and Network databases implement relationships by embedding pointers in records, alongside the data. Relational databases implement relationships in the data itself. If a reference is made to the data in a table row, a foreign key at the point of reference is used, and not a pointer.

This point has come to the forefront again, because many OODBMS products make the same use of pointers that Hierarchical and network DBMS did.

A Relational DBMS may have pointers and keys associated together in indexes, but these are managed by the RDBMS itself, and are nearly transparent to the application programmer.

So what's the difference between a conceptual (ER) model, and a logical (Relational) model? Well, one difference is how tied to a relational implementation you are. A relational model is somewhat more bound to a relational physical implementation than an ER model is. Another difference is normalization. An ER model isn't particularly normalized, although a "good" ER model tends to produce a fairly normalized design, almost automatically.

But the big difference, in my mind, is the difference between analysis and design. The conceptual model captures the analysis, while the logical model captures the logical design. I expect to hear a lot of contending views on this topic. Received on Sat Oct 19 2002 - 14:12:41 CEST

Original text of this message