Object-Oriented Database

Abstract

Programmers with Object-oriented programming language experience can use the object-oriented database management system (OODBMS) to help them create objects in their application that can behave in the same way as database objects are behaving. The OODBMS was created by a group of object database vendors, and others who came together to create a set of standard specifications that created an object-oriented programs. The group is called the Object Data Management Group. In the OODB, the information is represented in the form of objects as objects represented in object-oriented programming. Having the information represented as objects within the OODB allows such database to create complex data type that relational DBMS are not capable to support such as video, graphs, and audio. Also querying the database becomes faster since objects can be found by a more declarative programming approach not joints since an object can be retrieved directly by pointers instead of search. Also, the efficiency of OODB is improved in areas where massive amounts of data about one item are required (Francois, 2003).

The OODBMS is the result of combining the principles (e.g. Atomicity, Consistency, Isolation and Durability) of the database management which lead to system integrity with the principles of the object oriented programming (e.g. polymorphism, encapsulation, and inheritance). In OODBMS objects can be accessed in the database through the interaction with persistent object which is no different from interacting with objects in-memory, and there is no need to interact through a query sub-language such as SQL or a call level interface such as ADO, ODBC or JDBC. Database operation involve obtaining a data structure from the OODBMS such as hash table, or vector to obtain objects to update, create and delete data from the database. In any client-server application, when the client request an object from the database, such object is transferred in the application’s cache from the database where it can be used as disconnected a transient value from its representation in the database where any updates to the object in the database require that the object is re-fetched from the OODBMS (Obasanjo, 2001).

Domains Suited for OODB

Most of the client-server application that rely on the a database on the server to store data while servicing clients’ requests are using a relational database management system (RDBMS) while using object oriented programming language for the development of such application. Such mechanism creates inefficiency since objects must be mapped to a data in the database that is not being stored in a way that is consistent with the programming model, and as such; mapping objects to table and vice versa has performance penalty that have been accepted for a long time (Carmage4Life, 2001).

Barry (2000) explained that most of the OODBMS products are available with Java interfaces, and this option may be attractive under certain circumstances especially to those close to Java development applications where it makes very easy for such group to retrieve, store and manage objects instead of rows of data. However, although the market for OODBMS is growing rapidly, the following are the problems with such choice of database management system:

  • Despite the fact there is a formal standard for OODBMS, the reality is, most of the products available in the market today, implement a little of such standards to the point that no two products implement the same bits.
  • The above problem leads to the second problem which raises the problem of the ability to apply the personal training on one OODBMS to work using another product of OODBMS.
  • OODBMS is a perfect solution when managing objects where the operations to be performed on those objects that are well known in the designed database. However such design doesn’t perform well when it has to deal with ad-hoc query environments or with applications that require a use of traditional data such as character strings and numbers. SQL is well designed to deal with such cases and it’s quit efficient when dealing with a combinations of data.

The relational database model used for several real-world applications and has been pushed to its limits where the demand of more information is highly required. However, the relational database is limited to the type of data that can handle, such as characters, dates, and numbers, however, business demanding that their database can handle many other types of data such as video, audio, images, time series data, and text. The OODB required environment that need to natural modeling of entities to be allowed where such systems combined the features of the database technology with object-oriented design to provide the required integrated environment (Lord and Gupta, 2002). 

Despite the fact that the OODB doesn’t become the major player in the database market as it was expected, the OODB still have a rich markets where it can handle complex objects and can manage complex data relationship effectively in products where it can handle artificial intelligence, Computer-aided design and manufacturing applications. Also, vendors started to integrate Object-oriented features in the relational database via software modules to be able handle in the design audio, video, and other media (Leavcom.com, 2011). 

OODB Strengths and Weaknesses

OODB can store data sets which make it faster than relation database where it’s required to break the data sets into parts to be stored within tables and be able to pull out this data in queries. Also, OODB can automatically cache data in the client-side of the application’s memory and as such; it eliminates the extra calls to the database engine, and speeding up the responses. Also, OODB uses optimizers that can determine the best solution to use the database’s physical layout, and indices to satisfy a query (Leavcom.com, 2011).

Obasanjo (2001) explained that the following are the advantages and disadvantages of using an object-oriented database over the relational database:

  • OODBMS can store different types of atomic data types and other objects, while such data types will be stored in the relational database using a huge table with null fields or through normalized tables that can be linked via relationship among the entities.
  • Query language is not necessary to access data from OODBMS since the interaction with the database is done by accessing objects transparently. In addition, it’s possible to use queries with OODBMS.
  • A lot of time spent in mapping the objects within the object oriented programming language and the RDBMS and different problems that can occur during such mapping while such problem is completely avoided in OODBMS.
  • In RDBMS, users and developers have to worry about identifying the primary key for each table, and to make sure that such uniqueness is not exist in another column within the table, while in OODBMS, the unique identification of objects is done via OIDs and behind the scenes where it’s completely invisible to the user.
  • In the RDBMS systems the application usually has an entity relationship diagram model that represents the static part of the system and a separate model for the operations that represents the behaviours of entities within the application. In the OODB, there is no disconnection between the application model and the database model since the entities are just objects in the system.
  • Modifying the database schema in RDBMS usually independent of the actual application, while in OODB, modifying the schema means that changes have to be made to the other classes in the application that interact with the instances of such classes.
  • OODB is tied to a specific language via a specific API while this is not the case in RDBMS.
  • RDBMS supports ad-hoc queries where new tables can be created from joining the exiting tables to query them, such flexibility is not exist in OODB since it is not possible to join two classes, and as such; the queries that can be performed within the OODB is rely on the design of the system.

OODB vs. RDBMS

Relational database system is well suited to the need of complex information systems that require that all information to be modeled into tables (Relations) of columns and rows where the relationship between such entities is defined through a set of related column values. On the other hand, OODBMS allow more natural modeling of entities and the relationship among them. In such mechanism, objects are defined in terms of data while methods are defined to operate on this data. The methods are not tied to particular database application as in case of RDBMS, but to the data itself, and as such; an additional layer of abstraction and isolation between data and the applications is implemented. Also, with such mechanism, the object-oriented system can be expanded to support complex objects such ad multimedia content where new classes can be defined that have operations to support the new kinds of information (Lord and Gupta, 2002).

Object-oriented management system implements three powerful forms of relationships: polymorphism, inheritance, and encapsulations. Encapsulation supports abstraction where details are hidden that can support building complex data types. Polymorphism allows operations of defining a one type of object that can be shared among other types of objects. Inheritance allows incrementally provide the solution to problems where new objects can be defined through previously defined objects. With OODB, the more complex the relationships between information, the better such information can be captured explicitly in the logical structure of the database (Lord and Gupta, 2002).

Relational database have reduced OODB advantage of using optimizer to increase performance, by improving optimizers where are used to improve finding information within the relational database’ indices and tables (Leavcom.com, 2011).

For a long time rational database implemented the Structured Query Language (SQL) standard, and it has been adapted by the international organization for Standardization (ISO) and American National Standards Institute (ANSI), however OODBM Group has development ODMG standards for object database but hasn’t promoted the ODMG widely through the ODBMS vendors and community to make the standard an important factor within the industry (Leavcom.com, 2011).

Object-oriented database didn’t focus on the traditional business-data procession application where scalability, reliability, and performance are highly required for these businesses’ success. On the other hand, relational database has the tools to implement and promote such requirements by any business applications (Leavcom.com, 2011).   

In object-oriented data, the database and the application use exactly the same object model while in relational database application, the object model is used within the application, and the relational data model is used for the relational database where users and developers has to develop the mapping concept and procedures between the relational models and the object model which required a lot of time spent from the programmers to map program objects to the database rational tables (Leavcom.com, 2011).    

Conclusion

There are huge advantages of developing object-oriented applications that are using OODBMS where a lot of time can be saved since developers don’t have to worry about mapping between two models that are different from each other. Finally, it’s important to consider the flexibility and take advantage of what the database engine can offer in developing the application that provides the scalability, the reliability, and the performance that is required by any business to create the application that can deliver the business needs.

References

Barry, D. (2000) Why Use SQL Instead of an OODBMS [Online]. Available from: http://www.service-architecture.com/object-oriented-databases/articles/why_use_sql_instead_of_an_oodbms.html (Accessed: 12 March 2011).

Carmage4Life (2001) Why aren’t you Using An Object Oriented Database Management System? [Online]. Available from: http://www.kuro5hin.org/?op=displaystory;sid=2001/5/3/32853/11281 (Accessed: 12 March 2011).

Francois, C. (2003) What is an Object-oriented Database Management System? [Online]. Available from: http://www.wisegeek.com/what-is-an-object-oriented-database-management-system.htm (Accessed: 12 March 2011).

Lord, C. & Gupta, S. (2002) The Evolution of Object-Relational Database [Online]. Available from: http://www.chrisandtrudi.com/Chris/Portfolio/Object-Oriented%20Database%20Survey.pdf (Accessed: 12 March 2011).

Leavcom.com (2011) Whatever Happened to Object-Oriented Database [Online]. Available from: http://www.leavcom.com/db_08_00.htm (Accessed: 12 March 2011).

Obasanjo, D. (2001) An Exploration of Object Oriented Database Management Systems [Online]. Available from: http://www.25hoursaday.com/WhyArentYouUsingAnOODBMS.html (Accessed: 12 March 2011).

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: