Modeling techniques play an important role in the development of database applications. Well-known entity-relationship modeling and its extensions have become a widely-accepted approach for relational database conceptual design. An object-oriented approach has brought a new view of conceptual modeling. A class as a fundamental concept of the object-oriented approach encapsulates both data and behavior, whereas traditional relational databases are able to store only data. In the early 1990s, the difference between the relational and object-oriented (OO) technologies, which were, and are still used together to build complex software systems, was labeled the object-relational impedance mismatch (Ambler, 2003). The object-oriented approach and the need of new application areas to store complex data have greatly influenced database technology since that time. Besides appearance of object-oriented database systems, which fully implement objectoriented paradigm in a database environment (Catell et al., 2003), traditional relational database management systems become object-relational (Stonebraker & Brown, 1999). The most recent versions of the SQL standard, SQL: 1999 (Melton & Simon (2001) and SQL: 2003 (Eisenberg et al., 2004), introduced object-relational features to the standard and leading database producers have already released packages which incorporate them.
In this section, we summarize important features of the SQL:1999 object-relational model (Melton & Simon 2001, Database Language SQL, 1999, Badia 2006) with some extensions available in SQL:2003 (Eisenberg et al., 2004, Database Language SQL, 2004). We also explain how the model is implemented by Oracle in their database servers. Then we describe extensibility mechanisms of the UML, which we exploit in the next sections.
Key Terms in this Chapter
User-Defined Type: A named data type defined by a user. It can contain a list of attributes, in which case it is said to be a structured type (or object type in Oracle). It is an abstraction of a real-world entity. It can also provide explicitly defined methods that implement operations with the entity.
SQL:1999: The most recent major release of the SQL standard published in 1999, which is based on an object-relational model. Several minor extensions were added to the model in SQL:2003.
Referenceable Table: A table row of which can be referenced by REF type values. The table is based on a structured user-defined type and comprises one extra column containing row (or object) identifiers generated automatically when a new row is inserted into the table. In Oracle, such a table is called an object table.
Nested Table: A collection type available in Oracle SQL which is a multiset from the SQL standard point of view.
UML Profile: A predefined set of stereotypes, tagged values and constraints and notation icons that collectively specialize and tailor the UML for specific domain or process.
UML Stereotype: One of UML extensibility mechanisms. It is an extension of the vocabulary of the UML that allows creating new kinds of building blocks that are derived from existing ones.
Collection Type: A composite value comprising elements of the same data type. SQL:1999 supports arrays, which are ordered and bounded collections of elements. SQL:2003 added multisets, which are unordered and unbounded collections.
Object-Relational Modeling: Modeling of an object-relational database schema. It requires using model elements that are available neither in classic data models nor in object models.
Object-Relational Data Model: Extends the relational data model by providing a richer type system including complex data types and object orientation.
REF: A data type value of which references a row in a referenceable table (or object in Oracle).