ABSTRACT

This chapter discusses persistence in software engineering. It considers the two popular storage mechanisms–relational and object-oriented databases. In addition to the data, object-oriented databases also store relationships like inheritance, association, and aggregation directly in the database. Storing objects in object-oriented databases is easy and flexible. The flexibility of storing objects in object-oriented databases is important. Thus, in object-oriented designs, different objects may be instantiated based on different parts of an inheritance hierarchy. This required extensibility of objects, depending on the class definitions, is handled relatively easily by object-oriented databases compared with relational databases. In spite of the potential advantages of object-oriented and key-value pairs databases for object-oriented designs, most commercial business applications still use relational databases. If the software system is designed using object-oriented principles, but the database used for persistence is relational, there is a need to map an object-oriented design to the relational database.