The Object Database Management Group
an International Data Corporation Bulletin
by Analyst(s): Steve McClure (July 1996)
Executive Summary The emergence of standards for products and technology in an industry is an important marker of the maturation of the industry. The Object Database Management Group (ODMG) recently released Version 1.2 of The Object Database Standard: ODMG-93. ODMG-93 is the only object database standard. It ensures portability of applications across different object database management systems (ODBMS), providing protection of users' software investments while reducing reliance upon a single vendor and encouraging competitive feature development. Object databases extend the functionality of object programming languages (C++, Smalltalk, Java) to provide full-featured database programming capability. The result is a single data model for the application and the database, resulting in less code, more natural data structures and better maintainability and reusability of code. C++, and Smalltalk programmers can write complete database applications with a modest amount of additional effort. In addition to traditional database features such as concurrency control, query, backup, and recovery, object databases provide additional capabilities not found in relational databases. These features include dynamic schema evolution and instance update, navigational queries, versioning of objects, and widely distributed database support. Most object databases can be queried with standard SQL and also provide the ability to form objects from data retrieved from relational databases. The object database market is now a $115 million market growing at more than 24% annually. This market is expected to grow to be a $1.6 billion market by 2000. IDC believes the standard will be of increasing importance to end users, will strongly influence related standards, and may strongly influence the choice of object databases for Web applications. The ODMG standard represents a significant marker for object database technology and industry. The Object Database Management Group was founded in 1991 by the ODBMS vendors. These vendors wanted to rapidly expand the ODBMS market and were frustrated with the lack of progress toward ODBMS standards and lack of interest from other standards organizations. At that time the ODBMS market was in the early stages of development: There were six vendors, and the total market size was under $20 million, but it was growing at more than 100%. Product differences and the lack of existing standards increased the development risk to prospective buyers, providing no protection for their software investment.
ODMG-93 is fundamentally based on the work of three existing standards domains: databases (SQL), objects (OMG), and object programming languages (C++, Smalltalk, and Java). ODMG-93 draws from each of these standards to provide a concise specification for writing object database-based applications in an object programming language. The vendors believed that ODBMS standards would more rapidly expand the market for object database technology and products while providing a degree of stability to the ODBMS market. By defining ODBMS bindings to the increasingly used object languages (C++ and Smalltalk), they could provide some protection for user investments in applications built on ODBMS technology by reducing the development risk, thereby extending the market for object databases into organizations that required the use of standard application programming interfaces (APIs). To rapidly reach consensus and develop a standard, the vendors developed a fast-track approach, forming a small, dedicated group of members from the major vendors. In 18 months they produced the Object Database Standard: ODMG-93, Version 1.0. The ODMG is still not affiliated with national or international standards organizations, such as ANSI or OSI, but it has made it part of its mission to define a standard for object databases that is built on and works well with other existing standards. To this end, ODMG has established strong working relationships with ANSI committees X3H2 (SQL), X3J16 (C++), X3J20 (Smalltalk), and X3H7 (Object Model), as well as with the Object Management Group (OMG) to influence and incorporate these related standards. The ODMG-93 specification is concise and cohesive. Like a good object-oriented design, it reuses portions of other standards. The specification is about 150 pages -- about five times smaller than the standard specifications from ANSI and OMG it incorporates and leverages. One goal of the standard is to combine programming languages and database management systems into a single environment, providing higher performance and more powerful representation for data with complex relationships. The specification ensures the portability of applications written in C++, Smalltalk, or OQL across products and platforms. The 1.2 version of the specification clarified the C++ and Smalltalk language bindings, simplified the Object Model, added compatibility in OQL to the SQL-92 SELECT statement and generally tightened up some loose ends in the standard. The result is a clearer standard and a definition on which the vendors are basing their ODMG compliant products. As it now stands, the standard includes the following: • An introductory chapter that explains the goals, includes an architectural overview, and provides background, historical, and membership information. • An Object Model (OM) chapter – a definition of the object model for any ODMG compliant ODBMS
• • • • • •
An Object Definition Language (ODL) standard which provide a programminglanguage-independent mechanism to express user object models (schema). It is an extension to the OMG Interface Definition Language (IDL) An Object Query Language (OQL) which provides a declarative access interface for interactive and programmatic query as an extension of SQL A C++ language binding for all functionality, including object definition, manipulation, and query A Smalltalk language binding for all functionality, including object definition, manipulation, and query An appendix comparing the ODMG object model to the OMG object model An appendix defining interaction between an object database and an OMG Object Request Broker (ORB)
At a recent February 1996 meeting, ODMG initiated an effort to define a Java language binding. Proposed by Rick Cattell at JavaSoft, a division of Sun Microsystems, the Java binding would provide a definition for ODBMS interaction with Java. It would provide storage of Java objects and applets in object databases and potentially allow execution of Java applets on the object database server (i.e., method execution on the server). This binding alone could have far-reaching effects and could provide a very clear place for object databases on the Web, Internet, and corporate intranet. The ODMG-93 specification does not cover all possible areas of ODBMS functionality, such as meta-schema access, versioning or database interoperability. It provides all the fundamental capabilities necessary for an application to use an ODBMS, to create, modify, delete and share objects. Applications written to these interfaces will operate across all compliant ODBMS implementations with a re-compile. This is a significant step forward. It provides users with a stable set of interfaces on which to develop ODBMS applications in C++, Smalltalk or OQL. It will also help to reduce the learning curve for object databases and will allow more 3rd party tool vendors, such as analysis and design tool vendors, to easily develop and offer standards based ODBMS application development capabilities that work across multiple object databases.