Object-orientation was invented twice: once by the programming languages people and once by the database people. The two camps
are usually separated, in spite of the many commonalities in their goals and approaches. Programming languages deal with transient
objects in main memory. They are concerned with data abstraction, inheritance and polymorphic operations, while persistent
storage of objects is often ignored or poorly supported. Databases, on the other hand, deal with persistent objects on a disk.
They are mainly concerned with modeling complex relations between objects as well as with efficient access methods and query
languages. The separation is also evident in the use of different languages: Smalltalk, C++ or Java on the one hand, and mostly
OQL on the other hand. Although it is usually possible to access a database from a program, the notations and access mechanisms
differ from the techniques used for transient objects.
Markus Knasmüller is on leave from Johannes Kepler University Linz, Department of Practical Computer Science (Systemsoftware).