Other Data Models

Other Data Models

The entity-relationship and relational models are just two of the models that have importance in database systems today. In this section we shall introduce you to various other models of rising importance.

We begin with a discussion of object-oriented data models. One approach to object-orientation for a database system is to extend the ideas of object-oriented programming languages such as C++ or Java to include persistence. That is, the presumption in normal programming is that objects go away after the program finishes, while an important requirement of a DBMS is that the objects are preserved indefinitely, unless changed by the user, as in a file system. W e shall study a "pure" object-oriented data model, called ODL (object definition language), which has been standardized by the ODMG (object data management group).

Next, we examine a model called object-relational. This model, part of the most recent SQL standard, called SQL-99 (or SQL-1999, or SQL3), is an effort  to extend the relational model, as introduced in "The Relational Data Model", to include many of the common object-oriented ideas. This standard forms the basis for object-relational DBMS's that are now available from basically all the main vendors, although these vendors differ very much in the details of how the ideas are implemented and made available to users. "Object-Orientation in Query Languages" includes a discussion of the object-relational model of SQL-99.

Then, we take up the "semistructured" data model. This recent innovation is an attempt to deal with a number of database problems, including the need to combine databases and other data sources, such as Web pages, that have different schemas. While an essential of object-oriented or object-relational systems is their persistence on a fixed schema for every class or every relation, semistructured data is allowed much more flexibility in what components are present. For example, we could think of movie objects, some of which have a director listed, some of which might have many different lengths for various different versions, some of which may include textual reviews, and so on.

The most prominent implementation of semistructured data is XML (extensible markup language). Basically, XML is a specification for "documents", which are really collections of nested data components, each with a role indicated by a tag. We believe that XML data will serve as an important component in systems that arbitrate among data sources or that transmit data among sources. XML may even become an important approach to flexible storage of data in databases.