Chapter Objectives
In this chapter, you will learn to:
• use advanced concepts of object orientation, such as method overloading, inheritance, method overriding, polymorphism, and dynamic binding;
• identify various strategies to ensure object persistence;
• understand the key components of an OODBMS;
• understand the ODMG standard and its object model;
• use the ODMG object definition language (ODL) to define object types;
• use the ODMG object query language (OQL) to formulate queries;
• implement the ODMG standard through language bindings;
• evaluate OODBMSs against RDBMSs.
Opening Scenario
Sober has noted that many database applications are being developed using programming languages such as Java, Python, and C++. It found out that many languages are based on the object-oriented paradigm. The company wants to know what this entails and whether this could have any implications and/or potential for its database and choice of DBMS.
The object-oriented (OO) paradigm was first introduced by programming languages such as C++, Eiffel, and Smalltalk. Due to its expressive modeling power and formal semantics, the principles of OO have also been widely used in software development methodologies. However, for data storage and management, the adoption of OO proved less straightforward. In this chapter, we discuss various approaches to object persistence. First, we refresh the basic concepts of OO, many of which have been covered in Chapter 3. This will be followed by a discussion of advanced OO concepts such as method overloading, inheritance, method overriding, polymorphism, and dynamic binding. Next, we review the basic principles of object persistence. We then discuss object-oriented database management systems (OODBMSs), which is the core of this chapter. We conclude with evaluating OODBMSs and demonstrating their impact on the emergence of object-relational mapping (ORM) frameworks, which facilitate the persistence of objects into RDBMSs. Due to its popularity and ease of use, we use Java as the OO language for the examples.
Recap: Basic Concepts of OO
In object-oriented (OO) programming, an application consists of a series of objects that request services from each other. Each object is an instance of a class that contains a blueprint description of all the object's characteristics. Contrary to procedural programming, an object bundles both its variables (which determine its state) and its methods (which determine its behavior) in a coherent way.
Review the options below to login to check your access.
Log in with your Cambridge Higher Education account to check access.
If you believe you should have access to this content, please contact your institutional librarian or consult our FAQ page for further information about accessing our content.