ON OBJECTS AND RELATIONS
with Chris Date

 

 

 

From: EG
To: Editor

 

Your site is great. Lots of logic and no technology it's very rare today. Usual situation is quite the contrary.

 

I am a program developer and independent author from Russia. I'm sorry for my English. I'll try to be brief. I would ask a question concerning THE THIRD MANIFESTO. Speaking about values that can belong to a domain, Chris Date says, that "...there's absolutely nothing in the relational model that requires them to be limited to simple forms" 

In other words, object being encapsulated attribute of a tuple can have arbitrary structure [sic]. But how such a complex object itself should be stored in a system? Does it mean that object storage, being non-relational system, must exist anyway? How does this proposition agree with the fundamental principle of the relational model "All information in the database must be cast explicitly in terms of values in relations and in no other way" (from Persistence Not Orthogonal to Type)?

 

Editor Comment: My advice is to stay away from object terminology and concepts- they are fuzzy and problematic when it comes to database management. They confuse the logical and physical levels--a characteristic of object thinking. The relational model is purely logical and has absolutely nothing to do with storage! What Date means is that any values can be represented by a RDBMS, no matter how complex the representation (e.g. domains can be relation-based). A relational domain is a data type of arbitrary complexity (see Chapter 1 in my PRACTICAL ISSUES IN DATABASE MANAGEMENT].
 
 

Chris Date Responds: In his response Fabian Pascal said in part: "[You are confusing] the logical and physical levels ... The relational model is purely logical and has absolutely nothing to do with storage!" These remarks of Fabian's are 100 percent correct, of course. Unfortunately, Fabian went on to say this: "What Date means is that any atomic values can be represented by a RDBMS, no matter how complex the representation (e.g., domains can be relation-based)."

 

Please delete the word atomic here! It has no precise definition. What I claim (and have claimed ever since about 1992, when I first realized that to talk in terms of this fuzzy "atomicity" concept was misleading and counterproductive) is that if A is some attribute of some relation R, then A can be defined in terms of absolutely any type (or domain, if you prefer) whatsoever. So you can have attributes whose values are integers, attributes whose values are strings, attributes whose values are polygons, attributes whose values are arrays, attributes whose values are relations, ... and on and on. Of course, it's crucial (as Fabian suggests) that we make a distinction between values of any given type, on the one hand, and the representation of those values under the covers, on the other -- but the idea that these two concepts should be kept rigidly apart isn't one that's peculiar to the relational world.

 

Editor Comment: Chris is correct that atomicity is not a precisely definable property. Nevertheless, I find it useful in conveying informally the notion that values can have an arbitrarily complex internal structure, as long as the DBMS--not the user!--can (and is made to) understand what valid values are and has applicable operators for them.

 

 

Posted 05/03/02

 

 

 

[ABOUT] [QUOTES] [LINKS]