Object–relational database
Appearance
Object-Relational database management technology is a term with one of two
distinct meanings.
1. Object-Relational database management systems (ORDBMS) are an evolutionary extension of relational DBMS products. Whereas RDBMS -- or SQL-DBMS -- products focussed on the efficient management of data drawn from a limited set of data types (defined by the relevant language standards) an object- relational DBMS allows software developers to integrate their own types and the methods that apply to them into the DBMS.
The goal of ORDBMS technology is to allow developers to raise the level of abstraction at which they view the problem domain. In an RDBMS, it would be fairly common to see SQL like this:
CREATE TABLE Customers ( Id CHAR(12) NOT NULL PRIMARY KEY, Surname VARCHAR(32) NOT NULL, FirstName VARCHAR(32) NOT NULL, DateofBirth DATE NOT NULL );
SELECT InitCap(C.Surname) || ', ' || InitCap(C.FirstName) FROM Customers C WHERE -- Some horribly complex logic
In an Object-Relational DBMS, you would see something like this:
CREATE TABLE Customers ( Id Cust_Id NOT NULL PRIMARY KEY, Name PersonName NOT NULL, DOB DATE NOT NULL );
SELECT Formal( C.Name ) FROM Customers C WHERE BirthDay ( C.DOB ) = TODAY;
Most modern DBMS products -- IBM DB2, Oracle, and Microsoft SQL Server -- make claims to support this technology and do so with varying degrees of succcess. The Open Source DBMS PostgresSQL supports a surprisingly large set of these features.
2. Object-Relational Mapping. This term refers to a technology to map object-oriented application-level programs into relational (RDBMS) schema, and to map operations in the application layer into SQL DBMS operations. This is the preferred approach of technologies like Sun's JDO.