Some people say that the ODMG model does not support a declarative query language (but it does: OQL) whereas the object-relational one provides such a support (in the future it will: SQL3). Another rumor is that object-oriented queries cannot be optimized. This landmark paper (published before the ODMG was even created) proves that this statement is about as true as the one, often heard in the seventies, claiming that SQL could not be efficiently implemented.
Jenq, Woelk, Kim and Lee were the first to state an important and often ignored fact: navigational and join queries are equivalent. In other words, relational optimization techniques can be applied to OQL. As a matter of fact, the support of both associative and navigational accesses is a source of more optimizations. Objects can be stored on disks in many different ways. If some objects are clustered with their components, navigational queries are much more efficient than any joins one could perform on two relations storing the same information. Conversely, if they are stored on different pages, one can rely on joins to obtain performance similar to that found in relational systems. Hence, you can have the best of both worlds. Isn't that beautiful?
Copyright © 1999 by the author(s). Review published with permission.