Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers

ArticlesObject-Database Mythology


January 1998 / Inbox / Object-Database Mythology

The BYTE article "Debunking Object-Database Myths" (October) contains some myths of its own. The comment that "The RDBMS model is based on sets of rows with columns, and it can be seen as 2-D" betrays a lack of understanding of RDBMS theory. The common perception that relations are 2-D is incorrect. A relation is n-dimensional, where n is the number of attributes of the given relation.

The authors also state that a relational database cannot contain objects. It can. The domain for an attribute does not have to be limited to text or numeric values. It can contain binary large objects (BLObs), blueprints, maps, or any complex business objects. Because a relation is a logical, not physical, structure for data, there is nothing in the relational model to govern how these objects are physically stored. That is up to the vendors. There is nothing about a relational database per se that excludes objects.

Randell Grenier
Waltham, MA

You can think of the attributes as "dimensions" and the rows as "vectors," but I find that leads you to ask what the meaning of a table is in that framework. It also implies that the attributes have to be orthogonal to each other in some sense. I prefer to model a table as a set of entities of one class or kind. The rows represent members of this set, and I don't look at the columns in those rows when I am at the table level. When I move to the level of each entity, the columns expose some, but not necessarily all, of the attributes of that instance of an entity. Otherwise, altering a table by adding or dropping columns would make it a new kind of entity set.

I do understand t he difference between physical and logical data models; that is not the issue. While a column need not be limited to text, temporal, or numeric values, it must have scalar values. The relational model must be able to use theta operators on the values in a row, and theta operators apply only to scalar values. An object is not scalar; it has behaviors that can expose different parts of its internal structure to different questioners in different contexts. A scalar value is always the same, regardless of the context or questioner. -- Joe Celko


Up to the Inbox section contentsGo to previous article: Too Hot for Socket 7Go to next article: Open Java
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network