Object database
Encyclopedia
An object database is a database management system
in which information is represented in the form of objects
as used in object-oriented programming
. Object databases are different from relational database
s and belongs together to the broader database management system
.
Object databases have been considered since the early 1980s and 1990s, they may be slower in simple mass commercial data transaction. Object databases main usage is in object oriented areas.
language capabilities, the result is an object-oriented database management system (OODBMS).
OODBMS allow object-oriented programmers to develop the product, store them as objects, and replicate or modify existing objects to make new objects within the OODBMS. Because the database is integrated with the programming language, the programmer can maintain consistency within one environment, in that both the OODBMS and the programming language will use the same model of representation. Relational DBMS projects, by way of contrast, maintain a clearer division between the database model and the application.
As the usage of web-based technology increases with the implementation of Intranets and extranets, companies have a vested interest in OODBMS to display their complex data. Using a DBMS that has been specifically designed to store data as objects gives an advantage to those companies that are geared towards multimedia presentation or organizations that utilize computer-aided design (CAD).
Some object-oriented databases are designed to work well with object-oriented programming language
s such as Delphi
, Ruby
, Python
, Perl
, Java
, C#, Visual Basic .NET
, C++
, Objective-C
and Smalltalk
; others have their own programming languages. OODBMSs use exactly the same model as object-oriented programming languages.
), 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). The ORION project had more published papers than any of the other efforts. Won Kim of MCC compiled the best of those papers in a book published by The MIT Press.
Early commercial products included Gemstone (Servio Logic, name changed to GemStone Systems), Gbase (Graphael), and Vbase (Ontologic). The early to mid-1990s saw additional commercial products enter the market. These included 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). Some of these products remain on the market and have been joined by new open source and commercial products such as InterSystems
CACHÉ
(see the product listings below).
Object database management systems added the concept of persistence
to object programming languages. The early commercial products were integrated with various languages: GemStone (Smalltalk
), Gbase (LISP
), Vbase (COP
) and VOSS (Virtual Object Storage System for Smalltalk
). 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 OOP languages like Smalltalk, Java or C#, such as db4o
(db4objects), DTS/S1 from Obsidian Dynamics and Perst
(McObject), available under dual open source
and commercial licensing.
engineering and spatial databases
, telecommunications, and scientific areas such as high energy physics
and molecular biology
.
Another group of object databases focuses on embedded use in devices, packaged software, and real-time
systems.
, allowing objects to be found by a more declarative programming
approach. It is in the area of object query languages, and the integration of the query and navigational interfaces, that the biggest differences between products are found. An attempt at standardization was made by the ODMG
with the Object Query Language
, OQL.
Access to data can be faster because joins
are often not needed (as in a tabular implementation of a relational database
). This is because an object can be retrieved directly without a search, by following pointers. (It could, however, be argued that "joining" is a higher-level abstraction of pointer following.)
Another area of variation between products is in the way that the schema of a database is defined. A general characteristic, however, is that the programming language and the database schema use the same type definitions.
Multimedia applications are facilitated because the class methods associated with the data are responsible for its correct interpretation.
Many object databases, for example VOSS, offer support for versioning. An object can be viewed as the set of all its versions. Also, object versions can be treated as objects in their own right. Some object databases also provide systematic support for trigger
s and constraints which are the basis of active database
s.
The efficiency of such a database is also greatly improved in areas which demand massive amounts of data about one item. For example, a banking institution could get the user's account information and provide them efficiently with extensive information such as transactions, account information entries etc. The Big O Notation
for such a database paradigm drops from O(n) to O(1), greatly increasing efficiency in these specific cases.
(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. The last release was ODMG 3.0. By 2001, most of the major object database and object-relational mapping vendors claimed conformance to the ODMG Java Language Binding. Compliance to the other components of the specification was mixed. In 2001, the ODMG Java Language Binding was submitted to the Java Community Process
as a basis for the Java Data Objects
specification. The ODMG member companies then decided to concentrate their efforts on the Java Data Objects specification. As a result, the ODMG disbanded in 2001.
Many object database ideas were also absorbed into SQL:1999
and have been implemented in varying degrees in object-relational database
products.
In 2005 Cook, Rai, and Rosenberger proposed to drop all standardization efforts to introduce additional object-oriented query APIs but rather use the OO programming language itself, i.e., Java and .NET, to express queries. As a result, Native Queries
emerged. Similarly, Microsoft announced Language Integrated Query
(LINQ) and DLINQ, an implementation of LINQ, in September 2005, to provide close, language-integrated database query capabilities with its programming languages C# and VB.NET 9.
In February 2006, the Object Management Group
(OMG) announced that they had been granted the right to develop new specifications based on the ODMG 3.0 specification and the formation of the Object Database Technology Working Group (ODBT WG). The ODBT WG planned to create a set of standards that would incorporate advances in object database technology (e.g., replication), data management (e.g., spatial indexing), and data formats (e.g., XML) and to include new features into these standards that support domains where object databases are being adopted (e.g., real-time systems). The work of the ODBT WG was suspended in March 2009 when, subsequent to the economic turmoil in late 2008, the ODB vendors involved in this effort decided to focus their resources elsewhere.
In January 2007 the World Wide Web Consortium gave final recommendation status to the XQuery
language. XQuery uses XML
as its data model. Some of the ideas developed originally for object databases found their way into XQuery, but XQuery is not intrinsically object-oriented. Because of the popularity of XML, XQuery engines compete with object databases as a vehicle for storage of data that is too complex or variable to hold conveniently in a relational database. XQuery also allows Modules to be written to provide Encapsulation features that have been provided by Object-Oriented systems.
Potential advantages:
Potential disadvantages:
query language like notations to express the queries which is called as Object Query Language (OQL). OQL supports all the mandatory features or characteristics of ODBMS to make efficient object database systems. It supports complex data objects, path expressions, operation invocation, inheritance, object extensions for object identity. OQL is a very efficient way of expressing object queries, it keeps object's integrity by using objects implemented methods, rather than its own operations. OQL can also be embedded in other languages like C++
, java
,..
"OQL is a functional (expression-oriented) language, in which each query is a typed expression (type can be atomic object,collection object, or literal)". OQL doesn't have explicit update operations, like insert, delete to update database.But as an alternative, it can invoke state-altering methods, create, add, and delete, etc., to get similar functions.
For example,
Employee (name: ‘‘Ram Sharma", birth date: 11/26/1985, salary: 10000);
creates a new Employee object with necessary attributes data.
Like SQL we can write separate function to perform certain task.
For example, the Employee class has an attribute named activities implemented as an array of Strings. Its subclass Manager also has a method named activities that overrides inheritance of the Employee attribute.
Database management system
A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...
in which information is represented in the form of objects
Object (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...
as used in object-oriented programming
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
. Object databases are different from relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...
s and belongs together to the broader database management system
Database management system
A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...
.
Object databases have been considered since the early 1980s and 1990s, they may be slower in simple mass commercial data transaction. Object databases main usage is in object oriented areas.
Overview
When database capabilities are combined with object-oriented programmingObject-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
language capabilities, the result is an object-oriented database management system (OODBMS).
OODBMS allow object-oriented programmers to develop the product, store them as objects, and replicate or modify existing objects to make new objects within the OODBMS. Because the database is integrated with the programming language, the programmer can maintain consistency within one environment, in that both the OODBMS and the programming language will use the same model of representation. Relational DBMS projects, by way of contrast, maintain a clearer division between the database model and the application.
As the usage of web-based technology increases with the implementation of Intranets and extranets, companies have a vested interest in OODBMS to display their complex data. Using a DBMS that has been specifically designed to store data as objects gives an advantage to those companies that are geared towards multimedia presentation or organizations that utilize computer-aided design (CAD).
Some object-oriented databases are designed to work well with object-oriented programming language
Object-oriented programming language
This is a list of object-oriented programming programming languages.-Languages with object-oriented features:*ABAP*Ada 95*AmigaE*BETA*Blue*Boo*C++*C#*COBOL*Cobra*ColdFusion*Common Lisp*COOL*CorbaScript*Clarion*CLU*Curl*D*Dylan*E*Eiffel...
s such as Delphi
Object Pascal
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...
, Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...
, Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
, Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, C#, Visual Basic .NET
Visual Basic .NET
Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...
, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...
and Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
; others have their own programming languages. OODBMSs use exactly the same model as object-oriented programming languages.
History
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. Notable research projects included Encore-Ob/Server (Brown UniversityBrown University
Brown University is a private, Ivy League university located in Providence, Rhode Island, United States. Founded in 1764 prior to American independence from the British Empire as the College in the English Colony of Rhode Island and Providence Plantations early in the reign of King George III ,...
), EXODUS (University of Wisconsin–Madison
University of Wisconsin–Madison
The University of Wisconsin–Madison is a public research university located in Madison, Wisconsin, United States. Founded in 1848, UW–Madison is the flagship campus of the University of Wisconsin System. It became a land-grant institution in 1866...
), IRIS (Hewlett-Packard), ODE (Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
), ORION (Microelectronics and Computer Technology Corporation
Microelectronics and Computer Technology Corporation
Microelectronics and Computer Technology Corporation was the first, and - at one time - one of the largest, computer industry research and development consortia in the United States....
or MCC), Vodak (GMD-IPSI), and Zeitgeist (Texas Instruments). The ORION project had more published papers than any of the other efforts. Won Kim of MCC compiled the best of those papers in a book published by The MIT Press.
Early commercial products included Gemstone (Servio Logic, name changed to GemStone Systems), Gbase (Graphael), and Vbase (Ontologic). The early to mid-1990s saw additional commercial products enter the market. These included ITASCA (Itasca Systems), Jasmine (Fujitsu, marketed by Computer Associates), Matisse (Matisse Software), Objectivity/DB
Objectivity/DB
Objectivity/DB is a commercial object database produced by Objectivity, Inc. It allows applications to make standard C++, Java, Python or Smalltalk objects persistent without having to convert the data objects into the rows and columns used by a relational database management system ....
(Objectivity, Inc.), ObjectStore
ObjectStore
ObjectStore is a commercial object database, which is a specialized type of database designed to handle data created by applications that use object-oriented programming techniques. It is inspired by the Statice database originally developed at Symbolics. ObjectStore is innovative in its use of...
(Progress Software
Progress Software
Progress Software Corporation , formerly Data Language Corporation, is an American software company that sells business application infrastructure software. Its best known product is the OpenEdge ABL , which was developed in the early 1980s. The best known application written in Progress is...
, 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
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
), POET (now FastObjects from Versant which acquired Poet Software), Versant Object Database (Versant Corporation), VOSS (Logic Arts) and JADE (Jade Software Corporation). Some of these products remain on the market and have been joined by new open source and commercial products such as InterSystems
InterSystems
InterSystems Corporation is a privately held vendor of software for high-performance database management, rapid application development, integration, and healthcare information systems...
CACHÉ
Caché (software)
InterSystems Caché is a commercial object database management system from InterSystems Corporation. It provides object and SQL access to the database, as well as allowing direct manipulation of Caché’s underlying data structures. The company claims Caché is the world’s fastest object database...
(see the product listings below).
Object database management systems added the concept of persistence
Persistence (computer science)
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....
to object programming languages. The early commercial products were integrated with various languages: GemStone (Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
), Gbase (LISP
Lisp programming language
Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older...
), Vbase (COP
C Object Processor
The C Object Processor was a superset of the C programming language. It was used in the Vbase object-oriented database management system developed by Ontologic, Inc. The data model for Vbase was specified by a Type Definition Language . COP and TDL were influenced by CLU. By 1989, COP and TDL were...
) and VOSS (Virtual Object Storage System for Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
). For much of the 1990s, C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
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
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
object databases emerged that were widely affordable and easy to use, because they are entirely written in OOP languages like Smalltalk, Java or C#, such as db4o
Db4o
db4o is an embeddable open source object database for Java and .NET developers. It is developed, commercially licensed and supported by Versant....
(db4objects), DTS/S1 from Obsidian Dynamics and Perst
Perst
Perst is an open source, dual license, object-oriented embedded database management system , available in two implementations: one that is developed entirely in the Java programming language, and another developed in the C# language .Perst for .NET supports standard and compact .NET frameworks and...
(McObject), available under dual open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
and commercial licensing.
Timeline
- 1985 – Term Object Database first introduced
- 1988
- Versant CorporationVersant corporationVersant Corporation is a publicly-traded company and a vendor of database management software. Versant products are deployed in a wide variety of industries including: Telecommunications, Defense, Life Sciences, Transportation, Finance, Online Gaming and more. Versant was founded in Fremont,...
started (as Object Sciences Corp) - Objectivity, Inc. founded
- Versant Corporation
- Early 1990s
- Gemstone (SmalltalkSmalltalkSmalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...
) - GBase (LISPLispA lisp is a speech impediment, historically also known as sigmatism. Stereotypically, people with a lisp are unable to pronounce sibilants , and replace them with interdentals , though there are actually several kinds of lisp...
) - VBase (O2- ONTOS – INFORMIX)
- Objectivity/DBObjectivity/DBObjectivity/DB is a commercial object database produced by Objectivity, Inc. It allows applications to make standard C++, Java, Python or Smalltalk objects persistent without having to convert the data objects into the rows and columns used by a relational database management system ....
launched
- Gemstone (Smalltalk
- Mid 1990’s
- Versant Object DatabaseVersant Object DatabaseVersant Object Database is an enterprise grade object database supporting massive concurrency and large data sets provided by Versant Corporation...
- ObjectStoreObjectStoreObjectStore is a commercial object database, which is a specialized type of database designed to handle data created by applications that use object-oriented programming techniques. It is inspired by the Statice database originally developed at Symbolics. ObjectStore is innovative in its use of...
- Poet
- Jade
- Matisse
- Versant Object Database
- 2000’s
- ZODB
- Caché
- db4oDb4odb4o is an embeddable open source object database for Java and .NET developers. It is developed, commercially licensed and supported by Versant....
project started by Carl Rosenberger - ObjectDBObjectDBObjectDB is an Object Database for Java. It can be used in client-server mode and in embedded mode.Unlike other object databases, ObjectDB does not provide its own proprietary API. Accordingly, working with ObjectDB requires using one of the two standard Java APIs - JPA or JDO...
- 2001
- IBMIBMInternational Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
acquires InformixInformixIBM Informix is a family of relational database management system developed by IBM. It is positioned as IBM's flagship data server for online transaction processing as well as integrated solutions...
(Illustra) integrates with DB2IBM DB2The IBM DB2 Enterprise Server Edition is a relational model database server developed by IBM. It primarily runs on Unix , Linux, IBM i , z/OS and Windows servers. DB2 also powers the different IBM InfoSphere Warehouse editions... - db4o shipped to first pilot customer
- IBM
- 2004 - db4o's commercial launch as db4objects, Inc.
- 2008 - db4o acquired by Versant CorporationVersant corporationVersant Corporation is a publicly-traded company and a vendor of database management software. Versant products are deployed in a wide variety of industries including: Telecommunications, Defense, Life Sciences, Transportation, Finance, Online Gaming and more. Versant was founded in Fremont,...
Adoption of object databases
Object databases based on persistent programming acquired a niche in application areas such asengineering and spatial databases
Object-based spatial database
An object-based spatial database is a spatial database that stores the location as objects.The object-based spatial model treats the world as surface littered with recognizable objects An object-based spatial database is a spatial database that stores the location as objects.The object-based...
, telecommunications, and scientific areas such as high energy physics
Particle physics
Particle physics is a branch of physics that studies the existence and interactions of particles that are the constituents of what is usually referred to as matter or radiation. In current understanding, particles are excitations of quantum fields and interact following their dynamics...
and molecular biology
Molecular biology
Molecular biology is the branch of biology that deals with the molecular basis of biological activity. This field overlaps with other areas of biology and chemistry, particularly genetics and biochemistry...
.
Another group of object databases focuses on embedded use in devices, packaged software, and real-time
Real-time computing
In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...
systems.
Technical features
Most object databases also offer some kind of query languageQuery language
Query languages are computer languages used to make queries into databases and information systems.Broadly, query languages can be classified according to whether they are database query languages or information retrieval query languages...
, allowing objects to be found by a more declarative programming
Declarative programming
In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. Many languages applying this style attempt to minimize or eliminate side effects by describing what the program should accomplish, rather than...
approach. It is in the area of object query languages, and the integration of the query and navigational interfaces, that the biggest differences between products are found. An attempt at standardization was made by the ODMG
Object Data Management Group
The Object Data Management Group was conceived in the summer of 1991 at a breakfast with object database vendors that was organized by Rick Cattell of Sun Microsystems...
with the Object Query Language
Object Query Language
Object Query Language is a query language standard for object-oriented databases modeled after SQL. OQL was developed by the Object Data Management Group . Because of its overall complexity no vendor has ever fully implemented the complete OQL...
, OQL.
Access to data can be faster because joins
Join (SQL)
An SQL join clause combines records from two or more tables in a database. It creates a set that can be saved as a table or used as is. A JOIN is a means for combining fields from two tables by using values common to each. ANSI standard SQL specifies four types of JOINs: INNER, OUTER, LEFT, and RIGHT...
are often not needed (as in a tabular implementation of a relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...
). This is because an object can be retrieved directly without a search, by following pointers. (It could, however, be argued that "joining" is a higher-level abstraction of pointer following.)
Another area of variation between products is in the way that the schema of a database is defined. A general characteristic, however, is that the programming language and the database schema use the same type definitions.
Multimedia applications are facilitated because the class methods associated with the data are responsible for its correct interpretation.
Many object databases, for example VOSS, offer support for versioning. An object can be viewed as the set of all its versions. Also, object versions can be treated as objects in their own right. Some object databases also provide systematic support for trigger
Database trigger
A database trigger is procedural code that is automatically executed in response to certain events on a particular table or view in a database. The trigger is mostly used for keeping the integrity of the information on the database...
s and constraints which are the basis of active database
Active database
An Active Database is a database that includes an event driven architecture which can respond to conditions both inside and outside the database. Possible uses include security monitoring, alerting, statistics gathering and authorization.Most modern relational databases include active database...
s.
The efficiency of such a database is also greatly improved in areas which demand massive amounts of data about one item. For example, a banking institution could get the user's account information and provide them efficiently with extensive information such as transactions, account information entries etc. The Big O Notation
Big O notation
In mathematics, big O notation is used to describe the limiting behavior of a function when the argument tends towards a particular value or infinity, usually in terms of simpler functions. It is a member of a larger family of notations that is called Landau notation, Bachmann-Landau notation, or...
for such a database paradigm drops from O(n) to O(1), greatly increasing efficiency in these specific cases.
ODBMS Characteristics
The characteristics of ODBMS are separated into three groups as follows:Mandatory
These are the characteristics which system satisfies in order to be an object database. This includes the characteristics like:- Encapsulation: Encapsulation has two views: programming language view and the database adaptation of that view. Encapsulation is the representation of the data object by its attributes and the various methods specified to manipulate those data objects. In this, the operations performed on the data objects are visible but the data and the implementation are hidden in those objects.
- Types and Classes: Type refers to the particular set of Objects in the system, which has two parts,interface and the implementations. Generally interfaces are visible to the user and the implementations are hidden. Class is a template for creating the objects of a particular types having their own implementations. The new objects can be created by performing new operation on the class.
- Inheritance: Inheritance is the most important feature of the object database as it gives the hierarchical relationships between different objects at different levels and gives code reusability. It helps in factoring and out shared the implementations and specifications in system. There are different types of inheritance like substitution inheritance, constraint inheritance, inclusion inheritance and specialization inheritance.
- Complex Objects: Complex objects are built by using the basic data objects like integers, strings, reals, and booleans. There are various complex data objects such as array, list, indices, tuples, etc. We can define methods to manipulate these new complex types.
- Object Identity: It is a very important issue in database,each object is uniquely identified from the whole database or similar kinds of objects. Each object has a unique identity and we can access and edit the object by using the same. It can be variable name or from a physical address space in memory.
- Extensibility: Database system has its own predefined set of data types, which we can use to write new types and there is no usage difference between the one which system has and the one we written, but there may be strong difference in the way two are supported.
- Persistence: It is the ability of the system data to preserve or survive during execution so that it can be further used by another process. Persistency provides the reusability.
- Overriding and overloading: The use the same name for implementation of the object methods or operations to represent the same data in different ways.
- Computational completeness: This property says that we can define or implement any kind of computable function for the ODB, using DML of database system. Computational complete system almost gives all the operation implementation.
- Secondary storage management: The data in system is managed, so as to get the quick and easier access. It is supported using different techniques, including data clustering, indexing, query optimization, data buffering and access path selection. These all are invisible to user. It has two levels of management: logical and physical.
- Concurrency: A good system must have concurrency techniques. When number of users interacting with the user,the database system must provide same level of service to all the users. It should avoid the system failure, incomplete transactions.
- Recovery: This feature also provides same level of service and should recover itself to original state if system suffers from the hardware or software failures.
Optional
This category includes properties which are not mandatory but can be added to make the object database more efficient to achieve more functionalities. This includes:- Multiple inheritance
- Type checking and inferencing
- Distribution
- Design transactions
- Versions
Open
This category deals with programming issues and system representation. Along with the mandatory and non-mandatory features of the ODMBS, designing such systems we still have a lot of design choices to improve our modelling to built a good system. This category includes:- System
- Programming paradigm
- Representaion system
- Uniformity.
Standards
The Object Data Management GroupObject Data Management Group
The Object Data Management Group was conceived in the summer of 1991 at a breakfast with object database vendors that was organized by Rick Cattell of Sun Microsystems...
(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. The last release was ODMG 3.0. By 2001, most of the major object database and object-relational mapping vendors claimed conformance to the ODMG Java Language Binding. Compliance to the other components of the specification was mixed. In 2001, the ODMG Java Language Binding was submitted to the Java Community Process
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....
as a basis for the Java Data Objects
Java Data Objects
Java Data Objects is a specification of Java object persistence. One of its features is a transparency of the persistent services to the domain model. JDO persistent objects are ordinary Java programming language classes ; there's no requirement for them to implement certain interfaces or extend...
specification. The ODMG member companies then decided to concentrate their efforts on the Java Data Objects specification. As a result, the ODMG disbanded in 2001.
Many object database ideas were also absorbed into SQL:1999
SQL:1999
SQL:1999 was the fourth revision of the SQL database query language. The latest revision of the standard is SQL:2008.-Summary:The SQL:1999 standard, also known as SQL3, was published in 1999. Unlike previous editions, the standard's name used a colon instead of a hyphen for consistency with the...
and have been implemented in varying degrees in object-relational database
Object-relational database
An object-relational database , or object-relational database management system , is a database management system similar to a relational database, but with an object-oriented database model: objects, classes and inheritance are directly supported in database schemas and in the query language...
products.
In 2005 Cook, Rai, and Rosenberger proposed to drop all standardization efforts to introduce additional object-oriented query APIs but rather use the OO programming language itself, i.e., Java and .NET, to express queries. As a result, Native Queries
Native Queries
Native Queries are a concise and type-safe way to express queries directly as Java and C# methods.Native Queries are based on Safe Queries by Cook and Rai and were first implemented in db4o's open source object database as well as POJQ on Java.net.-Products:...
emerged. Similarly, Microsoft announced Language Integrated Query
Language Integrated Query
Language Integrated Query is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, although ports exist for Java, PHP and JavaScript....
(LINQ) and DLINQ, an implementation of LINQ, in September 2005, to provide close, language-integrated database query capabilities with its programming languages C# and VB.NET 9.
In February 2006, the Object Management Group
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...
(OMG) announced that they had been granted the right to develop new specifications based on the ODMG 3.0 specification and the formation of the Object Database Technology Working Group (ODBT WG). The ODBT WG planned to create a set of standards that would incorporate advances in object database technology (e.g., replication), data management (e.g., spatial indexing), and data formats (e.g., XML) and to include new features into these standards that support domains where object databases are being adopted (e.g., real-time systems). The work of the ODBT WG was suspended in March 2009 when, subsequent to the economic turmoil in late 2008, the ODB vendors involved in this effort decided to focus their resources elsewhere.
In January 2007 the World Wide Web Consortium gave final recommendation status to the XQuery
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....
language. XQuery uses XML
Extensible Markup Language
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
as its data model. Some of the ideas developed originally for object databases found their way into XQuery, but XQuery is not intrinsically object-oriented. Because of the popularity of XML, XQuery engines compete with object databases as a vehicle for storage of data that is too complex or variable to hold conveniently in a relational database. XQuery also allows Modules to be written to provide Encapsulation features that have been provided by Object-Oriented systems.
Comparison with RDBMSs
An object database stores complex data and relationships between data directly, without mapping to relational rows and columns, and this makes them suitable for applications dealing with very complex data. Objects have a many to many relationship and are accessed by the use of pointers. Pointers are linked to objects to establish relationships. Another benefit of an OODBMS is that it can be programmed with small procedural differences without affecting the entire system. This is most helpful for those organizations that have data relationships that are not entirely clear or need to change these relations to satisfy the new business requirements.Potential advantages:
- Objects don't require assembly and disassembly saving coding time and execution time to assemble or disassemble objects.
- Reduced paging.
- Easier navigation.
- Better concurrency control - a hierarchy of objects may be locked.
- Data model is based on the real world.
- Works well for distributed architectures.
- Less code required when applications are object oriented.
Potential disadvantages:
- Lower efficiency when data is simple and relationships are simple.
- Relational tables are simpler.
- Late binding may slow access speed.
- More user tools exist for RDBMS.
- Standards for RDBMS are more stable.
- Support for RDBMS is more certain and change is less likely to be required.
Object-Oriented Database Query
Object oriented databases use SQLSQL
SQL is a programming language designed for managing data in relational database management systems ....
query language like notations to express the queries which is called as Object Query Language (OQL). OQL supports all the mandatory features or characteristics of ODBMS to make efficient object database systems. It supports complex data objects, path expressions, operation invocation, inheritance, object extensions for object identity. OQL is a very efficient way of expressing object queries, it keeps object's integrity by using objects implemented methods, rather than its own operations. OQL can also be embedded in other languages like C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
, java
Java
Java is an island of Indonesia. With a population of 135 million , it is the world's most populous island, and one of the most densely populated regions in the world. It is home to 60% of Indonesia's population. The Indonesian capital city, Jakarta, is in west Java...
,..
"OQL is a functional (expression-oriented) language, in which each query is a typed expression (type can be atomic object,collection object, or literal)". OQL doesn't have explicit update operations, like insert, delete to update database.But as an alternative, it can invoke state-altering methods, create, add, and delete, etc., to get similar functions.
For example,
Employee (name: ‘‘Ram Sharma", birth date: 11/26/1985, salary: 10000);
creates a new Employee object with necessary attributes data.
Like SQL we can write separate function to perform certain task.
- Polymorphism : OQL supports the polymorphism feature of the object-oriented programming.The various classes can have same attributes and method implementations which are in same hierarchy.
For example, the Employee class has an attribute named activities implemented as an array of Strings. Its subclass Manager also has a method named activities that overrides inheritance of the Employee attribute.
See also
- Zope Object Database
- List of object database management systems
- Comparison of object database management systemsComparison of object database management systems- Features :Information about what fundamental ODBMS features are implemented natively....
- Enterprise Objects FrameworkEnterprise Objects FrameworkThe Enterprise Objects Framework was introduced by NeXT in 1994 as a pioneering object-relational mapping product for its NeXTSTEP and OpenStep development platforms. The EOF abstracts the process of interacting with a relational database, mapping database rows to Java or Objective-C objects. This...
- Object Data Management GroupObject Data Management GroupThe Object Data Management Group was conceived in the summer of 1991 at a breakfast with object database vendors that was organized by Rick Cattell of Sun Microsystems...
- Persistence (computer science)Persistence (computer science)Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....
- Relational modelRelational modelThe relational model for database management is a database model based on first-order predicate logic, first formulated and proposed in 1969 by Edgar F...
- EDA databaseEDA databaseAn EDA database is a database specialized for the purpose of electronic design automation. These application specific databases are required because general purpose databases have historically not provided enough performance for EDA applications....
External links
- Object DBMS resource portal
- Benchmark for Databases (open source)
- Database Benchmark (open source)
- Cross-Database Tools. Cross Database Comparison, Migration, Replication and Synchronization.