Information about Object Database

Database models
Common models
Hierarchical
Network
Relational
Object-relational
Object
Other models
Associative
Concept-oriented
Multi-dimensional
Star schema
XML database
'' In an object oriented database, information is represented in the form of objects'' as used in Object-Oriented Programming. When database capabilities are combined with object programming language capabilities, the result is an object database management system (ODBMS). An ODBMS makes database objects appear as programming language objects in one or more object programming languages. An ODBMS extends the programming language with transparently persistent data, concurrency control, data recovery, associative queries, and other capabilities.

Some object-oriented databases are designed to work well with object-oriented programming languages such as Python, Java, C#, Visual Basic .NET, C++ and Smalltalk. Others have their own programming languages. ODBMSs use exactly the same model as object-oriented programming languages.

Object databases are generally recommended when there is a business need for high performance processing on complex data.

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 University), EXODUS (University of Wisconsin), 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.[1]

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[2] (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), and Versant Object Database (Versant Corporation). Some of these products remain on the market and have been joined by new products (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), and Vbase (COP). 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 Java or C#, such as db4o (db4objects) and Perst (McObject). Recently another open source object database Magma has been in development. Magma is written in Squeak.

Adoption of object databases

Object databases based on persistent programming acquired a niche in application areas such as engineering and spatial databases, telecommunications, and scientific areas such as high energy physics and molecular biology. They have made little impact on mainstream commercial data processing, though there is some usage in specialized areas of financial services. It is also worth noting that object databases hold the record for the World's largest database (over 1000 Terabytes at Stanford Linear Accelerator Center: "Lessons Learned From Managing A Petabyte") and the highest ingest rate ever recorded for a commercial database over one Terabyte per hour.

Another group of object databases focuses on embedded use in devices, packaged software and realtime systems.

Technical features

Most object databases also offer some kind of query language, 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 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 triggers and constraints which are the basis of active databases.

Advantages and disadvantages

Benchmarks between ODBMSs and relational DBMSs have shown that ODBMS can be clearly superior for certain kinds of tasks. The main reason for this is that many operations are performed using navigational rather than declarative interfaces, and navigational access to data is usually implemented very efficiently by following pointers.[3]

Critics of Navigational Database-based technologies like ODBMS suggest that pointer-based techniques are optimized for very specific "search routes" or viewpoints. However, for general-purpose queries on the same information, pointer-based techniques will tend to be slower and more difficult to formulate than relational. Thus, navigation appears to simplify specific known uses at the expense of general, unforeseen, and varied future uses. (However, it may be possible to apply generic reorderings and optimisations of pointer routes in some cases).

Other things that work against ODBMS seem to be the lack of interoperability with a great number of tools/features that are taken for granted in the SQL world including but not limited to industry standard connectivity, reporting tools, OLAP tools and backup and recovery standards. Additionally, object databases lack a formal mathematical foundation, unlike the relational model, and this in turn leads to weaknesses in their query support. However, this objection is offset by the fact that some ODBMSs fully support SQL in addition to navigational access, e.g. Objectivity/SQL++ and Matisse. Effective use may require compromises to keep both paradigms in sync.

In fact there is an intrinsic tension between the notion of encapsulation, which hides data and makes it available only through a published set of interface methods, and the assumption underlying much database technology, which is that data should be accessible to queries based on data content rather than predefined access paths. Database-centric thinking tends to view the world through a declarative and attribute-driven viewpoint, while OOP tends to view the world through a behavioral viewpoint. This is one of the many impedance mismatch issues surrounding OOP and databases.

Although some commentators have written off object database technology as a failure, the essential arguments in its favor remain valid, and attempts to integrate database functionality more closely into object programming languages continue in both the research and the industrial communities.

Standards

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. 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.[4] 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 plans to create a set of standards that incorporates 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).

References and notes

1. ^ Kim, Won. Introduction to Object-Oriented Databases. The MIT Press, 1990. ISBN 0-262-11124-1
2. ^ Bancilhon, Francois; Delobel,Claude; and Kanellakis, Paris. Building an Object-Oriented Database System: The Story of O2. Morgan Kaufmann Publishers, 1992. ISBN 1-55860-169-4.
3. ^ Animation showing how an object database works
4. ^ Barry, Douglas and Duhl, Joshua. Object Storage Fact Books: Object DBMSs and Object-Relational Mapping. Barry & Associates, Inc., 2001. Pages showing the ODMG compliance for both object database and object-relational mapping products in 2001.

See also

External links

A database model is a theory or specification describing how a database is structured and used. Several such models have been suggested.

Common models include:
  • Hierarchical model
  • Network model
  • Relational model
  • Entity-relationship

..... Click the link for more information.
In a hierarchical data model, data are organized into a tree-like structure. The structure allows repeating information using parent/child relationships: each parent can have many children but each child only has one parent.
..... Click the link for more information.
The network model is a database model conceived as a flexible way of representing objects and their relationships. Its original inventor was Charles Bachman, and it was developed into a standard specification published in 1969 by the CODASYL Consortium.
..... Click the link for more information.
The relational model for database management is a database model based on predicate logic and set theory. It was first formulated and proposed in 1969 by Edgar Codd with aims that included avoiding, without loss of completeness, the need to write computer programs to
..... Click the link for more information.
An object-relational database (ORD) or object-relational database management system (ORDBMS) is a relational database management system that allows developers to integrate the database with their own custom data types and methods.
..... Click the link for more information.
The associative model of data is an alternative data model for database systems. Other data models, such as the relational model and the object data model, are record-based. These models involve encompassing attributes about a thing, such as a car, in a record structure.
..... Click the link for more information.
The concept-oriented data model is a data model based on lattice theory and ordered sets. Another source of inspiration in creating this model is formal concept analysis (FCA).
..... Click the link for more information.
Multidimensional databases are variously (depending on the context) data aggregators which combine data from a multitude of data sources; databases which offer networks, hierarchies, arrays and other data formats difficult to model in SQL; or databases which give a high degree of
..... Click the link for more information.
The star schema (sometimes referenced as star join schema) is the simplest style of data warehouse schema, consisting of a few "fact tables" (possibly only one, justifying the name) referencing any number of "dimension tables".
..... Click the link for more information.
XML-enabled. These map all XML to a traditional database (such as a relational database), accepting XML as input and rendering XML as output.
  • Native XML (NXD) The internal model of such databases depends on XML and uses XML documents as the fundamental unit of storage.
    ..... Click the link for more information.
  • In the programming paradigm of object-oriented programming, an object is the individual run-time unit that is used as the basic building block of programs. These objects act on each other, as opposed to a traditional view in which a program may be seen as a collection of functions,
    ..... Click the link for more information.
    Object-oriented programming (OOP) is a programming paradigm that uses "objects" and their interactions to design applications and computer programs. It is based on several techniques, including inheritance, modularity, polymorphism, and encapsulation.
    ..... Click the link for more information.
    Python

    Paradigm: Multi-paradigm
    Appeared in: 1991
    Designed by: Guido van Rossum
    Developer: Python Software Foundation
    Latest release: 2.5.1/ April 18 2007
    Latest unstable release: 3.
    ..... Click the link for more information.
    Java

    Paradigm: Object-oriented, structured, imperative
    Appeared in: 1995
    Designed by: Sun Microsystems
    Typing discipline: Static, strong, safe, nominative
    Major implementations: Numerous
    Influenced by: Objective-C, C++, Smalltalk, Eiffel,[1]
    ..... Click the link for more information.
    ' Visual Basic .NET

    Paradigm: structured, imperative, object-oriented
    Appeared in: 2001 (last revised 2005)
    Designed by: Microsoft Corporation
    Typing discipline: dynamic, strong, both safe and unsafe[1], nominative
    Major implementations: .
    ..... Click the link for more information.
    C++
    Paradigm: Multi-paradigm
    Appeared in: 1983
    Designed by: Bjarne Stroustrup
    Typing discipline: Static, unsafe, nominative
    Major implementations: G++, Microsoft Visual C++, Borland C++ Builder
    Dialects: ISO/IEC C++ 1998, ISO/IEC C++ 2003
    ..... Click the link for more information.
    Smalltalk
    Paradigm: object-oriented
    Appeared in: Development started in 1969
    Publicly available in 1980
    Designed by: Alan Kay, Dan Ingalls, Adele Goldberg
    Developer: Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace, and Xerox PARC
    ..... Click the link for more information.
    Microelectronics and Computer Technology Corporation (MCC) was the first, and - at one time - was one of the largest, computer industry research and development consortia in the United States.
    ..... Click the link for more information.
    GemStone Database Management System
    Paradigm: Application framework
    Appeared in: 1991
    Influenced by: Smalltalk,Object-oriented programming
    Influenced: J2EE

    GemStone
    ..... Click the link for more information.
    Objectivity/DB is a commercial object oriented database management system produced by Objectivity, Inc. It allows applications to make standard C, C++, Java, Python or Smalltalk objects persistent without having to convert the data objects into the rows and columns used by a
    ..... Click the link for more information.
    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 was inspired by the Statice database which was developed at Symbolics.
    ..... Click the link for more information.
    Progress Software Corporation (Nasdaq: PRGS ) is an American software company which sells business application infrastructure software. Its best known product is the Progress 4GL language, which was developed in the early 1980s.
    ..... Click the link for more information.
    International Business Machines Corporation

    Public (NYSE:  IBM )
    Founded 1889, incorporated 1911
    Headquarters Armonk, New York, USA

    Key people Samuel J.
    ..... Click the link for more information.
    In computer science, persistence refers to the characteristic of data that outlives the execution of the program that created it. Without this capability, data only exists in memory, and will be lost when the memory loses power, such as on computer shutdown.
    ..... Click the link for more information.
    Smalltalk
    Paradigm: object-oriented
    Appeared in: Development started in 1969
    Publicly available in 1980
    Designed by: Alan Kay, Dan Ingalls, Adele Goldberg
    Developer: Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace, and Xerox PARC
    ..... Click the link for more information.
    Lisp
    Paradigm: multi-paradigm: functional, procedural, reflective
    Appeared in: 1958
    Designed by: John McCarthy
    Developer: Steve Russell, Timothy P. Hart, and Mike Levin
    Typing discipline: dynamic, strong
    Dialects: Common Lisp, Scheme, Emacs Lisp
    ..... Click the link for more information.
    The C Object Processor (COP) 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 (TDL). COP and TDL were influenced by CLU.
    ..... Click the link for more information.
    C++
    Paradigm: Multi-paradigm
    Appeared in: 1983
    Designed by: Bjarne Stroustrup
    Typing discipline: Static, unsafe, nominative
    Major implementations: G++, Microsoft Visual C++, Borland C++ Builder
    Dialects: ISO/IEC C++ 1998, ISO/IEC C++ 2003
    ..... Click the link for more information.
    Java

    Paradigm: Object-oriented, structured, imperative
    Appeared in: 1995
    Designed by: Sun Microsystems
    Typing discipline: Static, strong, safe, nominative
    Major implementations: Numerous
    Influenced by: Objective-C, C++, Smalltalk, Eiffel,[1]
    ..... Click the link for more information.
    C#
    Paradigm: structured, imperative, object-oriented
    Appeared in: 2001 (last revised 2005)
    Designed by: Microsoft Corporation
    Typing discipline: static, strong, both safe and unsafe, nominative
    Major implementations: .NET Framework, Mono, DotGNU
    Dialects: 1.
    ..... Click the link for more information.


    This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
    Herod_Archelaus


    page counter