A recognized problem facing system developers today is that the data modelling techniques and database technology in general have been outrun by current state-of-the-art software development technology and modern programming languages. In software development environments, object-oriented modelling and programming (and even testing) is by far dominating. Most databases in use are relational and subject to both the openness and the limitations of SQL-92.
In the recent years, the database communities have tried to converge the database technology and the software development technologies. Object-oriented databases have seen the light of day, and attempts have been made to make both the relational data model and SQL more object-oriented. The emerging new data model is generally known as the object-relational database model. SQL has gone through a large revision, with many new features added. A major new version of the standard was published in 1999. This new version is commonly known as SQL-99.
This thesis will first describe what an object-relational database actually is. This description will be based on several sources (Stonebraker et.al. 1990), (Stonebraker & Moore 1996) and (Gulutzan & Pelzer 1999) in addition to the standard itself.
Next, this thesis will look at one specific commercial database system that is marketed as object-relational, namely IBM's DB2 Universal Database Server, version 7.1. The supported SQL-99 features in DB2 UDB will be described and an analysis as to whether it is justifiable to call DB2 UDB an object-relational database system or not, will be given. To some extents, the impact the object-relational aspects of DB2 have on query execution will be studied.
Finally, this thesis will describe different kinds of object persistence. The impedance mismatch problem is described and sought solved by means of object-relational modelling and a modern database programming API; explicitly JDBC 2.0. The database engine used for this is Oracle9i.