An object-oriented database is a collection of object-oriented programming and relational databases. There are various items which are created using object-oriented programming languages like C++, Java which can be stored in relational databases, but object-oriented databases are well-suited for those items.
An object-oriented database is organized around objects rather than actions, and data rather than logic. For example, a multimedia record in a relational database can be a definable data object, as opposed to an alphanumeric value.
How do object oriented databases work?
An object database refers to a database system that represents data or information in the form of objects. The objects used to represent information are essentially the same objects used in object-oriented programming. Unlike relational databases, object databases do not use tables to represent information.
Advantages of Object Oriented Databases
An integrated repository of information that is shared by multiple users, multiple products, multiple applications on multiple platforms.
It also solves the following problems:
1. The semantic gap: The real world and the Conceptual model is very similar.
2. Impedance mismatch: Programming languages and database systems must be interfaced to solve application problems. But the language style, data structures, of a programming language (such as C) and the DBMS (such as Oracle) are different. The OODB supports general purpose programming in the OODB framework.
3. New application requirements: Especially in OA, CAD, CAM, CASE, object-orientation is the most natural and most convenient.
Encapsulation is an important object-oriented feature. This hides the implementation details from the end-users and displays only the needed descriptions. For example, imagine that you are buying soap from a commercial store. You know its ingredients such as color and fragrance by looking on the box, but you aren't shown the actual method used to manufacture the soap.
Let's now look at the inheritance feature.
Inheritance is considered important in object-oriented design because it enables re-usability. It is defined as the method of creating new classes from existing classes. The new classes not only inherit the properties of their parent class, but they also have their own unique properties.
Association ( Polymorphism ) refers to links between the various entities of an application. In an object-oriented database, association is denoted as references between various objects.
The object-oriented database allows for the creation of persistent objects. A persistent object is one that lives in computer memory even after completing its execution. This is different from the lifespan of normal objects, which expire after execution, are destroyed immediately, and freed from memory. Object persistence solves the database challenges of concurrency and recovery.
A class object is an object which acts as a template.
A structure that is the set of attributes of the instances
A set of operations
A set of methods which implement the operations
Instantiation means generating objects, Ex. 'new' operation in C++
Persistence of objects: Two approaches
An implicit characteristic of all objects
An orthogonal characteristic - insert the object into a persistent collection of objects
Object database management systems grew out of research during the early to mid-1970s into having intrinsic database management support for graph-structured objects. The term "object-oriented database system" first appeared around 1985.
Object database management systems added the concept of persistence to object programming languages. The early commercial products were integrated with various languages. For much of the 1990s, C++ dominated the commercial object database management market. Vendors added Java in the late 1990s and more recently, C#.
Starting in 2004, object databases have seen a second growth period when open source object databases emerged that were widely affordable and easy to use, because they are entirely written in Object Oriented Programing languages like Smalltalk, Java, or C#, such as Versant's, DTS/S1 from Obsidian Dynamics and (McObject), available under dual open source and commercial licensing.