Since their introduction several years ago, object oriented programming methodologies have proved their usefulness for software development. Lking the past five years, object oriented database management systems have become widespread, if not preoalent. This paper will examine object oriented a&abases with the intent of displaying their major characteristics. It concludes with an example of a real pipeline application of an object oriented database. The example examines the design decisions leading to the choice of an object oriented database and of the effects of that choice on the subsequent design of the application.
For most people, the word database conjures up a vague picture of a large file of data arranged something like a ghostly spreadsheet. For a relational database in particular, this is not that bad a picture of the data repositories managed by the database system. However, this picture ignores the role that processing plays in the structure and use of the data in the repository. The data is only one piece of the database system. The other pieces of the database system exist to provide controlled access to and use of the data in the system. Database management systems typically include utilities to maintain backup copies of data, to control simultaneous access and updates of data, to build input forms, and to construct views and reports of data. These utilities differ from vendor to vendor and from platform to platform, but they all serve the same purposes in all database management systems. Of more significance for this discussion, all databases provide some sort of programming interface to the data they manage. The issue is not the relative merits of one programming interface versus another, but rather the processing model inherent to the interface and its relation to the database structure itself.
There are many types of databases available. They go by names like Hierarchical, Relational, ISDN, Flat File, Btrieve, Object Oriented, etc. Each has its advocates and detractors, its strengths and weaknesses, its virtues and vices. We will consider only three types in this paper: Hierarchical, Relational, and Object Oriented. The first two types probably represent ninety percent or more of all databases currently in use, while the third is the true subject of this article.
Fifteen years ago almost everyone used hierarchical databases on mainframe computers. The data in these databases is stored in a number of files with the files linked by parent-child relationships. Each file consists of uniformly structured records with fixed data elements, called fields, in each record. All the records in each file have exactly the same number and type of fields.