Object-Relational Database Systems
Object-relational DBs are the natural evolution of pure object-oriented and relational DBs. The convergence of those two disparate philosophies came about as a realization that there were inherent shortcomings in the existing paradigms when considered individually. Observers of information technology might wonder in amusementat the debate that rages in the software community over the ultimate character of object-relational DBs or object-relational DBMSs (ORDBMS). Industry pundits are frequently critical of object-relational DBs because they usually demonstrate a limited or nonexistent ability to perform certain relational or object-oriented tasks in comparison to their pure counterparts. A case in point would be thelimited support for inheritance in object-relational DBs, a feature fully supported in the object-oriented paradigm. Others argue that inheritance is of such limited consequence when employed in the storage of data and data-centric objects that its pursuit is a waste of effort. Each point of view is almost always driven by the particular background of the individual presenting the criticism.Because the objectrelational paradigm is a compromise of two very different architectures, the most effective definition of its ultimate character will be devised by those
Advanced Database Technology and Design
who have an unbiased appreciation for relational and object-oriented systems alike. It is not an unreasonable question to ask whether ORDBMSs should begin with a relationalfoundation with added object-orientation or the reverse. From a conceptual level, it might seem that the hybridization from either starting point would yield the same outcome, but it does not. From the commercial perspective, relational DBs have seen far more success and acceptance than their object-oriented DBMS (OODBMS) counterparts. It should not be any surprise then, that virtually all majorvendors are approaching the object-relational arena by extending the functionality of existing relational DB engines. A case in point would be IBM, Oracle, and Informix, whose efforts to create a universal server began by extending their core relational engines. Anything that causes such controversy should be worth the effort, which begs two important questions: First, what factors have led to thedevelopment of object-relational DBs? And second, what characterizes an accurate definition of an object-relational DB? The general answer to the first question is that developers need a more robust means of dealing with complex data elements without sacrificing the access speed for which relational DBs have become known. To answer the second question, there are several characteristics that, as aminimum, must be included to achieve a true objectrelational structure. Those characteristics are the following:
• Retrieval mechanism, that is, a query language like SQL but one
adapted to the extended features of the ORDBMS. The retrieval mechanism must include not only relational navigation but also object-oriented navigational support. For example, links from an attribute to a collectiontype (discussed in greater detail later) must incorporate a pointer-type scheme or mechanism. relational paradigm. on.
• Support for referential integrity as it is currently practiced in the • Support for relational features like keys, constraints, indexes, and so • Support for the object metamodel (classes, types, methods, encapsu-
• The ability to support user-defined datatypes. • Support for the SQL3 ANSI standard.
Object-Relational Database Systems
This chapter contrasts and compares the relative strengths and weaknesses of the relational and object-oriented systems. We also discuss in detail the importance of blended technologies used to support the object-relational architecture. The discussion will include user-defined data types and...