The extended relational database
Many people are reluctant to give up their relational databases altogether and yet realise that this model cannot easily support some of the more complex modem applications.
Relational model advocates have responded to the challenge of 00 by adding some 00 characteristics to the relational model to produce what is sometimes called the extended relational model'.

C.J.Date, who is a confirmed 'relational' man, concedes that 00 does have some good ideas. In particular,

  • user-defined data types (including user-defined functions)
  • inheritance (behaviour, not structural)

However, he also thinks that OO has some bad ideas, such as its strong procedural (3GL) orientation, the complex treatment of relationships and its lack of declarative integrity support.
Dat&s principle idea is that one of the relational model's fundamental constructs, the domain, is the key to linking the relational and the object model. This is because the domain is really a user-defined, encapsulated data type of arbitrary internal
complexity. Domains can contain anything you like - arrays, lists, documents. photographs, maps etc. Hence, domains are the equivalent of object classes. Unfortunately, whether or not this idea can be justified. there are at least two problems with it:

1. most of today's relational products do not implement domains
2. many prototype extended relational systems equate object classes with relations instead of with domains.

For further discussions of these points, see chapter 25 in An Introduction to database Systems'.

It is generally accepted that the relational model needs enhancing because the addition of semantic and OO concepts are necessary to support the new generation of applications. However, it is recognised that the benefits of the relational model are too valuable to be discarded and this model needs to be preserved to protect the investment in relational technology and to provide downward compatibility.

Bearing these points in mind, several projects have attempted to marry the 'good' features of 00 with the relational model. These features aim to provide support for:

  • user-defined data types
  • complex objects
  • inheritance
  • procedure calls (rules or triggers)
  • system generated identifiers


The Starburst RDBMS (from IBM) has already been mentioned in connection with Active Databases. This system has also been 'extended' and permits the definition of user-defined types and functions, support for complex objects. encapsulation and inheritance.

The Postgres RDBMS was developed by Michael Stonebraker and colleagues at the
University of California. Some of the stated objectives of this system are:

1. To provide support for complex objects such as multimedia, video.
2. To provide user extendibility for data types, operators and access methods.
3. To provide active database facilities.
4. To make as few changes as possible to the relational model.

POSTGRES allows the definition of classes and supports both single and multiple inheritance.
In addition, POSTGRES has a knowledge management system to provide support for data semantics, integrity constraints and inference capabilities. We shall meet POSTGRES again when we consider 'intelligent' databases.

Neither Starburst nor Postgres use Date's idea that object class = domain.