Wednesday, August 1, 2012

Physical Data Independence

CB: In your writings, you have made the point that a data model is something that's logical (e.g. orthogonal to its actual physical implementation). Does that mean, for example, that a DBMS could be truly relational if, under the hood, it is physically built upon such traditional programming constructs as linked lists, pointers, and arrays? And even if so - are you aware of a better way to develop a TRDBMS without using such constructs?

Actually, it would be fair to say that the relational model is the only purely logical one and was invented precisely to be orthogonal to the physical implementation. DBMS products at the time were based on the hierarchic and network data models that exposed physical implementation details to users and applications, with serious implications for flexibility, usability, maintenance and so on.

We refer to the orthogonality as physical data independence. It causes some to argue that the relational model has a problem in that it "does not address" implementation and performance issue.

But, first, the relational model is logic applied to databases. How can logic address physical issues?

And second, it is upside down and backwards: physical data independence gives implementers complete freedom to use any physical means at their disposal to optimize performance, as long as they do not expose them to users and applications and do not make logical features dependent on specific physical features. One example of the latter is enforcement of key and uniqueness constraints, which are logical, via indexes (which are physical; but at least SQL uses them implicitly). So to your question, under the hood anything goes, as long as it does not pop out from under it.

The best implementation technology that could have been extremely advantageous to TRDBMSs was the TransRelational Model (a layer between the relational and physical layers). Unfortunately, as I noted in the earlier post NULL Confusion, the technology did not materialize in products for non-technical reasons. In that post I linked to a free book by Date that describes it. If you're interested, download it from

Do you like this post? Please link back to this article by copying one of the codes below.

URL: HTML link code: BB (forum) link code:

No comments:

Post a Comment