Object Oriented Databases

Overview

An object-oriented database is a system offering database management facilities in an object-oriented programming environment. Data is stored as objects and can be interpreted only using the methods specified by its class. An object class is a set of objects that share a common structure and a common behavior. The relationship between similar objects is preserved (inheritance) as are references between objects. Queries can be faster because joins are often not needed (as in a relational database). This is because an object can be retrieved directly without a search, by following its object id. An object database management system (ODBMS) provides a storage place for objects in a multi-user client/server environment. An object-oriented database is fundamentally created around an object-oriented data model. An object is something that has both data and the actions that reads or manipulates the data. An object has a well-defined role in application domain. An object-oriented model is becoming more and more popular because it can totally represent complicated connections as well as represent data and data processing in a consistent way. (McFadden, Hoffer, & Prescott, 1999; McFarland, Rudmik, & Lange, 1999)

The same programming language can be used for both data definition and data manipulation. The full power of the database programming language's type system can be used to model data structures and the relationship between the different data items. Multimedia applications are facilitated because the class methods associated with the data are responsible for its correct interpretation. (McFarland et al., 1999)

The ODBMS handles simultaneous access to objects, provides locks and transaction protection, protects the object store from all types of threats, and takes care of traditional tasks such as backup and restore. What makes ODBMS's different from a relational database management system is that they store the constant state of an object versus data in tables. The ODBMS combines object properties with traditional DBMS functions such as locking, protection, transactions, querying, versioning, concurrency, and persistence. (McFadden et al., 1999; Orfali, Harkey, & Edwards, 1999)

A Student object, for example, might contain data about a student and instructions on how to print the complete student record or the formula required in order to calculate a student's grade point average. A record in a relational database, by contrast, would only contain data about a student, without any formulas.


A unique characteristic of objects is that they have an identity that is independent of the state of the object. Object-identity allows objects to be related as well as shared within a distributed computing network. (Montlick, 1999)

Need for Object-Oriented Database Management Systems


Process integration was the driving force that inspired the development of object-oriented database systems. A primary characteristic of objected-oriented applications is the ability to manage very complex information efficiently. With applications becoming more complex and users becoming more demanding, this type of database is becoming more necessary. One area that this is impacting, for the need of efficient and flexible object-oriented database systems, is in the area of design support systems for example, CAD, CASE and Office Information Systems. These applications require databases that can handle very complex data, that can develop smoothly, and can provide the high-performance dictated by interactive systems. With these possibilities in mind it is not surprising that the Computer Aided Design (CAD), Computer Aided Manufacturing (CAM) and Computer Aided Software Engineering (CASE) areas are specifically being targeted by object-oriented database vendors. Factory and office automation are other areas where object-oriented database technology is also vey valuable. Object-oriented database systems can provide solutions for intricate problems and put them within the reach of users. Object-oriented databases provide a unifying paradigm that allows data modeling to be applied uniformly to the database.

Object-oriented databases can store more types of data, and access this data, much faster than relational databases. Another big advantage of an object-oriented database over a relational database is that you can save unstructured data such as video clips, audio clips, photographs, and documents, more efficiently. The object-oriented database often returns results more quickly than the same query within a relational database.

A notable variance between object-oriented databases and relational databases is that object-oriented databases represent precise relationships, supporting both navigational and associative access to information. Additionally, using precise relationships amplifies data access performance over relational value-based relationships.

Perhaps the most significant characteristic of object-oriented database technology is that it combines object-oriented programming with database technology to provide an integrated application development system. There are many advantages to including the definition of operations with the definition of data. Firstly, the defined operations apply expansively and are not dependent on the particular database application running at the moment. Secondly, the data types can be extended to support complex data such as multimedia by defining new object classes that have operations to support the new kinds of information.

The Evolution of Object-Oriented Databases

Object-oriented database research dates back to the late 1970's and had become a serious research area by the early 1980's. Commercial object-oriented databases started appearing in the late 1980's. The earliest commercial ODBMSs made their appearance in 1986 with the introduction of Servio (now GemStone) and Ontos. These two pioneers were joined (in the 1990s) by Object Design (ODI), Versant, Objectivity, O2 Technology (now Unidata), Poet, UniSQL, and ADB Matisse. These ODBMS vendors first target applications that dealt with complex data structures and long-lived transactions. Today, we are into the second generation of these products. The growth in the number of object-oriented database companies has been remarkable.

The evolution for the next stage of object-oriented databases becomes more difficult as demands for database performance becomes increasingly more and more complicated for programmers to create. "As the OODBMS database technology evolves, OODBMS will assume a greater part of the burden for optimization allowing the user to specify high level declarative guidance on what kinds of optimizations need to be performed." (McFarland et al., 1999)

McFarland believes that you can gauge database maturity by the degree to "which functions such as database access optimization, integrity rules, schema and database migration, archive, backup and recovery operations can be tailored by the user using high level declarative commands to the OODBMS." Presently the majority of object-oriented database products demand that the application developer write appropriate code ready to easily handle these functions.

Currently, object-oriented database systems (OODBS) are receiving a lot of attention from both experimental and theoretical standpoints. There are many industry groups helping to establish standards for the different aspects of this technology. The Object Management Group (OMG) a non-profit industry sponsored association whose goal is to provide a set of standard interfaces for interoperable software components is an example of this type of support group. An OODBMS application programmers interface (API) specification is currently being developed (by ODMG, Object Database Management Group, a group of OODBMS vendors) which will allow the portability of applications across OODBMS. Another standards body X3H7, a technical committee under X3, is working on defining OODBMS standards in areas such as object-models and object-extensions to the relational database programming language SQL. Today object-oriented database technology is definitely a true combination of object-oriented programming and database technologies. (McFarland et al., 1999)

An object-oriented database system must satisfy two criteria: it should be a DBMS, and it should be an object-oriented system. Being a DBMS translates into five features: persistence, secondary storage management, concurrency, recovery and an ad hoc query facility. Being a object-oriented databases translates into eight features: complex objects, object identity, encapsulation, types or classes, inheritance, overriding combined with late binding, extensibility and computational completeness. Complex objects can be built from more elementary objects by applying constructors to them. The most basic objects are objects such as integers, characters, byte strings of any length, booleans and floats. (Atkinson et al., 1996)

Object Query Language.

Object-oriented and object-relational databases often use a query language called object query language (OQL) to manipulate and retrieve data. OQL is similar to SQL in that it uses many of the same rules, grammar, and vocabulary. (Shelly, Cashman, Vermaat, & Walker, 1999) OQL has been recognized as an Object Database Management Group (ODMG) standard for querying object-oriented databases (OODBs). Similar to SQL, OQL, uses a select-from-where structure to formulate extensive queries.

Evolution

Relational database technology cannot handle the needs of complex information systems. The challenge with relational database systems is that they require the application developer to force an information model into tables where relationships between entities are defined by values.

Object-orientation is moving closer towards expressing answers to problems in a more natural, easier to understand way. Instead of using a language like SQL to define, retrieve and manipulate data, ODBMSs use class definitions and traditional OO language, such as C++, Smalltalk or Java, constructs to delimit and access data. The ODBMS is basically a multi-user, persistent extension of in-memory language data structures. Which means that the client is the C++, Smalltalk or Java program, the server is the ODBMS there are no visual intermediaries like RPCs or SQL. (Orfali et al., 1999)

Other strengths of object-oriented such as inheritance allows one to develop solutions to complex problems incrementally by defining new objects in terms of previously defined objects. Polymorphism and dynamic binding are powerful object-oriented features that allow one to compose objects to provide solutions without having to write code that is specific to each object. All of these capabilities come together synergistically to provide significant productivity advantages for database application developers. (McFadden et al., 1999)

Pragmatics of Using an OODBMS

One needs to consider several points when thinking about using an object-oriented database as a solution to a management problem. A database application has a specific life cycle and requires a complete set of appropriate support tools. The user should build an object model of the information dilemma to be resolved by the database. The most recent object-oriented databases have significant differences in the modeling capabilities of these products. An additional benefit is that the stronger the data modeling facilities will mean less work will be required to complete the database application.

Development tools are another area that is often overlooked within the support of the database applications. OODBMS includes a language for specifying object behaviors therefore one should understand the development of these behaviors and make sure they are tested for any given OODBMS. Testing is especially consequential because one needs to synthesize the compiler testing and debugging tools with the database persistent object storage manager.

In Summary


Object-oriented programming allows for a powerful innovative model for writing computer software. (Montlick, 1999) The main objective of an OODBMS is to provide consistent, data independent, secure, controlled and extensible data management services to support the object-oriented modeling paradigm. Today's OODBMS products are rapidly moving to provide most of these capabilities. Many of the products around today are second generation OODBMS that have incorporated the lessons learned from the first generation products. Given the importance of, and interest in, object-oriented technologies, there is substantial market pressure to push OODBMS products because of the valuable features and capabilities that object-oriented databases offer. This will continue to advance object-oriented databases technology at a very fast rate. Object-oriented database applications development increases productivity through the frequent ability of being able to reuse code. (McFarland et al., 1999) (McFadden et al., 1999)

References

Atkinson, M., Bancilhon, F., DeWitt, D., Dittrich, K., Maier, D., & Zdonik, S. (1996). The Object-Oriented Database System Manifesto. Available: http://www.cs.cmu.edu/People/clamen/OODBMS/Manifesto/htManifesto/old/section3_1.html [1999, November 16, 1999].

McFadden, F. R., Hoffer, J. A., & Prescott, M. B. (1999). Modern Database Management. (5th Ed. ed.): Addison-Wesley.

McFarland, G., Rudmik, A., & Lange, D. (1999, january 31, 1999). Object-Oriented Database Management Systems Revisited. Available: http://www.dacs.dtic.mil/techs/oodbms2/ [1999, November 18, 1999].

Montlick, T. (1999). What is Object-Oriented Software? Software Design Consultants. Available: http://www.soft-design.com/softinfo/objects.html [1999, November 18, 1999].

Orfali, R., Harkey, D., & Edwards, J. (1999). Client/server Survival Guide. (3rd Edition ed.): Robert Ipsen.

Shelly, G. B., Cashman, T. J., Vermaat, M. E., & Walker, T. J. (1999). Discovering Computers 2000: Concepts for a Connected World, Web and CNN Enhanced: Course Technology.