Databases fulfill several roles in the process of building computer applications. Like a file system, databases provide the means to store data between invocations of an application (i.e. persistence). Database systems, however, provide additional services not supported by most, if not all, file systems. History of data processing goes through many different changes with different technologies along with the time. In decade there is huge increase in the volume of data that need to be processed due to which sometimes old technology do not work and need to come with new technology to process the data.
Overview of Object Oriented Database
Object Oriented Databases stores data in the form of objects. An Object is something uniquely identifiable which models a real world entity and has got state and behaviour. In Object Oriented based Databases capabilities of Object based paradigm for Programming and databases are combined due remove the limitations of Relational databases and on the demand of some advanced applications.
Object oriented databases are also called Object Database Management Systems (ODBMS). Object databases store objects rather than data such as integers, strings or real numbers. Objects are used in object oriented languages such as Smalltalk, C++, Java, and others. Objects basically consist of the following:
- Attributes – Attributes are data which defines the characteristics of an object. This data may be simple such as integers, strings, and real numbers or it may be a reference to a complex object.
- Methods – Methods define the behavior of an object and are what was formally called procedures or functions.
Therefore objects contain both executable code and data. There are other characteristics of objects such as whether methods or data can be accessed from outside the object. We don’t consider this here, to keep the definition simple and to apply it to what an object database is. One other term worth mentioning is classes. Classes are used in object oriented programming to define the data and methods the object will contain. The class is like a template to the object. The class does not itself contain data or methods but defines the data and methods contained in the object. The class is used to create (instantiate) the object. Classes may be used in object databases to recreate parts of the object that may not actually be stored in the database. Methods may not be stored in the database and may be recreated by using a class.
Figure: Object oriented Database
General Issues of Object Oriented Database
Object-oriented databases must provide the same support for managing concurrency, authorization and distribution as any other kind of database system. Most of these features are affected significantly by the data model, but some have only a small connection. This section presents the concepts associated with locking, transactions, triggers, distribution, and versioning. Object-oriented concepts, in general, have little impact on these characteristics.
Concurrency Control: When many clients wish simultaneous access to the same persistent data and some clients wish to perform updates, a mechanism must exist to ensure data consistency. Otherwise, readers could receive an inconsistent view of the data as some pans might be: changed before other parts. Similarly, two writers may base their updates on the same version and then the writer who commits his changes second will cause the changes of the first to become lost.
Transactions: In the presence of persistence, locking may not be sufficient to guarantee data consistency. Complex interactions may involve changes to several data objects and consistency may dictate that either all or no changes occur (i.e. atomicity). The facility databases provide to achieve atomicity is called transaction support and each atomic set of changes a database interaction wishes to make is termed a transaction. The combination of transactions and locking implies that updates to the database are serializable (i.e. as if no concurrency were involved).
Triggers and Notifiers: Monitoring the contents of a database can be prohibitive because of the amount of information involved. Many database systems, therefore, provide mechanisms that perform user-level actions automatically when specified events occur (e.g. an entity changes value). By supporting these mechanisms internally, database systems can achieve efficient implementations.
Distribution: Distribution presents several opportunities for database architectures. In particular, database services may be spread among several servers. One advantage of separating applications from database support is that true concurrency can be realized. Thus, even if an application involves significant amounts of computation (as in CAD), it need not affect overall database performance adversely.
Approaches for OODBMS
- Relational Extension Based DBMS
- Object/Relational DBMS
- Pure OODBMS
This is the first approach that is adopted by industry and academia towards the implementations of OODBMS is to extend the relational model to provide the OO features. The advantages of this approach are:
- Stick to relational model
- Have to OO features like complex object and UDT (User Defined Types).
Object/Relational DBMS: These systems have relational and object based both features by the definition. They provide similar objectives as provided by the Relational Extension approach of RDBMS. In this approach, build an object layer on the top of relational system like Open ODB and ODAPTER. They are built on different architectures like Query Server or Client/Server.
Pure OODBMS: These type OODB’s systems are not much popular because lack of standards . There is no single definition for a single concept. For Example: An Object has many definitions, but in RDB there is a fixed standard for or single definition for each concept like table .Here defining some definitions which are mostly accepted but not standardize.
 Horowitz, Michael L. An introduction to object-oriented databases and database systems. Inform. Techn. Center, Carnegie Mellon Univ., 1991.
 Hardeep Singh Damesha, “Object Oriented Database Management Systems-Concepts, Advantages, Limitations and Comparative Study with Relational Database Management Systems”, Global Journal of Computer Science and Technology: C Software & Data Engineering, Volume 15 Issue 3 Version 1.0 Year 2015.
 “Object Oriented Databases”, available online at: http://www.comptechdoc.org/independent/database/basicdb/dataobject.html
 Lee, Ming-Ju. “Object-Oriented Database Theory: An Introduction & Indexing in OODBS.” In Haupt seminar, Database Hall of Fame. David Maier, pp 4_6, vol. 11. 2001.