Instructor: FOR-IAN V. [email protected]
An object database (also object-oriented database) is a database model in which information is represented in the form of objects as used in object-oriented programming.
Object databases are generally recommended when there is a business need for high performance processing on complex data.
Some object-oriented databases are designed to work well with object-oriented programming languages.
A programming paradigm that uses "objects" — data structures consisting of data fields and methods — and their interactions to design applications and computer programs.
Many modern programming languages now support OOP.
The methodology focuses on data rather than processes, with programs composed of self-sufficient modules (objects) each containing all the information needed to manipulate its own data structure.
An object-oriented program may thus be viewed as a collection of cooperating objects, as opposed to the conventional model, in which a program is seen as a list of tasks (subroutines) to perform.
In OOP, each object is capable of receiving messages, processing data, and sending messages to other objects and can be viewed as an independent 'machine' with a distinct role or responsibility.
The actions (or "operators") on these objects are closely associated with the object.
The Simula programming language was the first to introduce the concepts underlying object-oriented programming (objects, classes, subclasses, virtual methods, coroutines, and discrete event simulation) as a superset of Algol.
Simula also used automatic garbage collection which had been invented earlier for the functional programming language Lisp.
Simula was used for physical modeling, such as models to study and improve the movement of ships and their content through cargo ports.
Smalltalk was the first programming language to be called "object-oriented".
Python Perl Java C#
Visual Basic.Net
C++Objective-C
Sometimes shortened to ODBMS for object database management system) or OODBMS for Object-Oriented Database Management System.
A database management system (DBMS) that supports the modeling and creation of data as objects.
It includes some kind of support for classes of objects and the inheritance of class properties and methods by subclasses and their objects.
Sometimes shortened to ODBMS for object database management system) or OODBMS for Object-Oriented Database Management System.
The object-relational database management system (ORDBMS), the idea that object-oriented database concepts can be superimposed on relational databases, is more commonly encountered in available products.
The Object Data Management Group (ODMG) has already standardized an object-oriented data brokering interface between systems in a network.
An object-oriented database system must satisfy two criteria: 1. It should be a DBMS, and it should be an object-
oriented system. The first criterion translates into five features:
Persistence Secondary storage management Concurrency Recovery
Ad hoc query facility
2. It should be consistent with the current crop of object-oriented programming languages. The second one translates into eight features:
Complex Objects Object Identity Encapsulation Types or Classes Inheritance Overriding combined with late binding Extensibility Computational completeness
- early to mid-1970s into having intrinsic database
management support for graph-structured object
- "object-oriented database system" first appeared
around 1985 - Notable research projects included Encore-
Ob/Server (Brown University), EXODUS (University
of Wisconsin-Madison), IRIS (Hewlett-Packard),
ODE (Bell Labs), ORION (Microelectronics and
Computer Technology Corporation or MCC), Vodak
(GMD-IPSI), and Zeitgeist (Texas Instruments)
- early commercial products included Gemstone
(Servio Logic, name changed to GemStone
Systems), Gbase (Graphael), and Vbase
(Ontologic)
- early to mid-1990s saw additional commercial
products enter the market which includes ITASCA
(Itasca Systems), Jasmine (Fujitsu, marketed by
Computer Associates), Matisse (Matisse Software),
Objectivity/DB (Objectivity, Inc.), ObjectStore
(Progress Software, acquired from eXcelon which
was originally Object Design), ONTOS (Ontos, Inc.,
name changed from Ontologic), O2 (O2 Technology,
merged with several companies, acquired by
Informix, which was in turn acquired by IBM), POET
(now FastObjects from Versant which acquired Poet
Software), Versant Object Database (Versant
Corporation), VOSS (Logic Arts) and JADE (Jade
Software Corporation)
- The early commercial products were integrated with
various languages: GemStone (Smalltalk), Gbase
(LISP), Vbase (COP) and VOSS (Virtual Object
Storage System for Smalltalk).
- C++ dominated the commercial object database
management market
- Vendors added Java in the late 1990s and more
recently, C#
- 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 OOP
languages
Object databases based on persistent programming acquired a niche in application areas such as:
1. Engineering and spatial database
2. Telecommunications
3. Scientific areas such as high energy physics and
molecular biology
4. Commercial Data Processing
5. Financial Services
6. Embedded Systems
7. Packaged Software
8. Real-time Systems
Most object databases also offer some kind of query language, allowing objects to be found by a more declarative programming approach. An attempt at standardization was made by the ODMG with the Object Query Language, OQL.
1. Access to data can be faster because joins are
often not needed;
2. The schema of a database is defined;
3. Multimedia applications are facilitated;
4. Many object databases support versioning.
5. The efficiency of such a database is also greatly improved
The Object Data Management Group (ODMG) was a consortium of object database and object-relational mapping vendors, members of the academic community, and interested parties. Its goal was to create a set of specifications that would allow for portable applications that store objects in database management systems. It published several versions of its specification.
1. Use navigational rather than declarative interfaces
2. Pointer-based techniques are optimized for very
specific "search routes" or viewpoints
3. General-purpose queries pointer-based
techniques will tend to be slower
4. Direct object references may be maintained in
addition to normalized, indexed aggregations,
allowing both kinds of access
1. Lack of interoperability with a great number of
tools/features that are taken for granted in the SQL world
2. Lack a formal mathematical foundation
Table 3-1. Comparison of object database management systems