Relational database systems came about in the late 1960’s and at the time they were considered a great improvement over previous database models. There were, and still are mostly used in traditional business systems such as stock and banking for storing large amounts of data. Today relational models are still considered to be a revolution in database technology and because they are so good at managing huge amounts of data are still by far the most widely used databases.
During the 1980’s with the emergence of much more complex applications came the realisation that the relational model showed areas of inadequacy with respect to the complex object relationships and data manipulation required by these newer applications. In comparison to the simplistic model of a relational database system, object-oriented database systems include features that allow for a user-extensible type system, and complex composite data values, thus enabling the modeling of much more complex real-life business and non-business systems.
However, aside from the advantages that object methodologies offer to database technology, there are also some drawbacks, and unlike relational database development, there has been, and still is, a clear lack of formal standards regarding the development of object-oriented databases. 2. 0 The Beginnings of OO Object-oriented research began back in the 1970’s as part of a project at Xerox Palo Alto Research Park (PARC) called Simula. This, along with other recognised concepts evolved into Smalltalk, the first true Object programming language and operating system.
Smalltalk evolved through several versions to become Smalltalk 80, which set a president for other OO languages, such as C, C++, and more recently Java. (see appendix 1 for OO History). Other new OO languages are coming to the fore and are mainly conforming to informal standards, thus making them available to access legacy systems that also conform to these informal standards, and for developing new value chains by connecting these disparate systems. An example of this is XML. XML (extensible mark up language) is able to demonstrate pages and programs using Browsers such as I. E. 2 onwards and Netscape.
This enables distribution and availability to users across networks with different media. Another example is Java. Java is the latest, fully capable, object-oriented language. It has become the ‘vogue’ due to its compatibility with the Internet and Web browsers. It is designed as a portable language that can run on any web-enabled computer via that computer’s Web browser. As such, it is fast becoming, the standard Internet and Intranet programming language to date.
The commercial world has taken up EJB (Enterprise Java Beans) which allows for server and client-side transaction processing, access to data stores, directory services and remote objects and has grown in popularity as the e-commerce and small database market has expanded. 2. 1 Database development and OO Within the database community, it was recognized that there were originally several shortcomings with commercial implementations of relational databases. These included the following: * Lack of support for new types – e. g. , there is no SQL type for jpeg images.
Lack of support for composite data vales – e. g. , can’t store a relation as an attribute value. * Difficulties in modeling real life complex systems and events. Object-oriented database management systems (OODBMSs) first started to be researched in the 1980s. There are now some 20 products available for OO Databases including: TITANIUM, MATISSE, FastObjects t7, Javlin, PSE Pro for C++ 4. 0, PSE Pro for Java 6. 05 and ObjectStore Enterprise Edition 6. 05. Each of these developers has adhered itself to one of the standards groups.
Over the past few years, developers have reacted by developing OO languages that sit between processing and data storage, this software is known as middleware. These systems allow users to query or process relational or OO databases. The need for these systems has come mainly from large companies wanting to tie in legacy systems, which have come about through mergers or acquisitions. They take advantage of the new technology to leaver more efficiency or value by connecting these disparate systems, and thus save on having to develop a totally new system.
There is a diverse range of ‘middleware’ tools available on the market that conform to the ODMG model, an example of such a tool is ‘objectDRIVERTM’. ObjectDRIVER is a middleware tool with which one can create an ODMG compliant Object Oriented Database Management Systems (OODBMS) on top of heterogeneous Relational Database Management Systems (RDBMS). It offers C++ and Java language bindings and an Object Query Language (OQL) interface. ObjectDRIVER is particularly well suited to: 1) The reuse of existing databases. 2) The addition of persistence to Object Oriented applications
The picture above demonstrates in a simple form the connectivity of disparate systems and the protocols used to manage this connectivity. Whist in this case, ‘objectDRIVERTM’ sits in the middle acting as a very versatile interface, essentially there are many other proprietary and ‘open source’ solutions available, which conform to standards as well as many that don’t. In the business world companies buy and use computers to further their company’s profitability. Whilst initially computers were used in isolation, nowadays all businesses have or want the efficiencies gained by networking.
New technology is allowing a company to not only share data amongst itself, but share in a business-to-business role as well. For some companies, it has allowed a new direct, business-to-customer arm to develop through its website. In a financial role and stock environment it is allowing companies to run in almost ‘real time’ and therefore gives them the ability to make faster business decisions with less accounting staff or layers of management. For this to happen computers require reliable software that will run on, or to any type of system platform.
Businesses want stable, reliable and efficient systems and want to run standardized software in order that they can connect to any specified system, or to as many systems as possible. Running software that does not conform to standards means that you must use specialised software. This has potential problems in that: * Software is more costly to develop, as you are starting from scratch. * It might not be as functional as it may only allow you to look backwards into an old legacy system in a certain way.
There is no real reusability from the old to the new system due to standards not being adhered to in the original. Makes the company overly dependent on the original vendor, and what will happen if the vendor has gone out of business. It makes financial and business sense for software companies to want to produce systems that integrate with other systems, as it allows them greater market availability and thus potential sales. This will naturally lead to standards of some form.
Various major organisations have come into force over the last decade with a view to developing a common set of rules or object models, analysis and design, that can be used and built on by the software community at large. This section will discuss the involvement of these major organisations in the field of object-oriented databases. 3. 1 Object-Oriented Database Systems Manifesto (OODSM) According to the Object Oriented Database System Manifesto (OODSM) there is a strong case for agreeing on a set of standards for emerging Object-Oriented database systems.
This is mainly due to there being a lack of a common data model, the lack of a formal methodology and a great deal of experimental and prototyping activity. Whilst the first two arguments ring true, from a commonsense point of view the problem with the latter is that whoever develops a working model first will steal the field and go through to become the ‘defacto’ standard in the community. This has been seen in the past, i. e. with Cobol, Fortran, and SQL etc. This would not be such a problem if the product met all the possible requirements of the practitioners at large, but there is lots of evidence from the past that give rise to doubt.
For example, SQL has become the standard for relational databases, yet Ted Codd’s original proposals were far better structured than SQL. Various trial implementations had query languages that were better than SQL and a number of people in the industry could have and did design better languages than SQL. But the people who had better systems did not actively participate in the discussions that led to the adoption of SQL as a standard. Yet despite the weaknesses of SQL, surely any standard is better than no standard at all.
The standardization of SQL has provided an enormous benefit in allowing mainframes, servers, minicomputers, workstations, and personal computers to share data. What seems to have made SQL succeed is not just the fact that ANSI and ISO backed it, but also, the fact that the industry desperately needed a standard, and SQL was the only thing available at the time. Possible the main reason why we are left with such a mediocre standard is that the people who know better have not participated to date.
This could be due to, companies not wanting to give up what they see to be a competitive advantage. Company shareholders would certainly not be willing to turn over potentially thousands of pounds of research and development to the computing community at large. The interest in OO Databases seems to be growing due to the obvious shortfalls of relational databases in that they are good for storing data and reporting on it, but weak when it comes to manipulating it or modelling complex and real world situations.
There is an obvious need for something that has the best of both worlds, especially in today’s world with the ever-increasing number of very large and complex real time systems such as those found in the service industry or the design support systems. The OODSM states that it is important to agree on a definition for a true object-oriented database and states what its characteristics should be in an attempt to pursue a common standard and a way forward. They list 3 main characteristics for the classification of a true object-oriented database: * Mandatory Requirements
The system must have the following, to enable it to be an OO Database: Complex Objects, Object Identity, Encapsulation, Types or Classes, Inheritance, Overriding combined with late binding, Extensibility, Computational completeness, Persistence, Secondary storage management, Concurrency, Recovery and an ‘ad hoc query facility. * Optional Requirements These are added to aid usability and include: Multiple Inheritance, Type checking and Inferencing, Distribution, Design transactions and Versions. * Open Requirements These are the program paradigm.
Allows for acceptable implementation according to the preferences of the developer. The OODSM also state that these characteristics should be open to change as technologies and members require. 3. 2 Object Data Management Group (ODMG) The Object Data Management Group was formed in 1991. It is a non-profit consortium of vendors, toolmakers, end users and other interested parties. Included among the members are: Microsoft, NEC, Hitachi, Lockheed Martin, Computer Associates and Sybase. A requirement of membership is that a company produces a commercial object-oriented database that follows the ODMG specification.
The aim of the ODMG is to produce an open standard for object-oriented DBMSs to promote object application portability between compliant DBMSs. The benefits of this is that compliant software is maintainable and less dependant on the originating vendor, thus preserving software investment and allowing for future developments, a major issue for corporate IT managers. The ODMG specification provides a common model for these products by defining extensions to the OMG object model that support object database requirements and includes persistent objects, object properties, object types, queries and transactions.
This incorporates 3 existing standards: Databases (SQL), Objects (OMG) and object programming languages (C++, Java and Smalltalk). The ODMG has two key objectives. Firstly the organization is committed to evolving the standard and any new proposal is resolved democratically by a group of seven voting member companies. The ODMG’s secondary objective is to educate the public about the benefits and the importance of ODMG standards.
Their standard was originally agreed as ODMG 2. 0 – Release 1. 0 and was published in August 1993, and followed up with Release 1. 2, in November 1995. This version included many improvements and including better compatibility with SQL-92. They have gone on to produce a certification procedure and include the following products as being suitable: OQL (Object Query Language), ODL (Object Definition Language), C++, Smalltalk and Java. The group have been taken very seriously by several major organisations including CERN, the European Laboratory for Particle Physics. “CERN is currently building a new accelerator – the Large Hadron Collider (LHC)”, states Jamie Shiers, RD45 product manager at CERN.
“Scheduled to enter operation in 2005, this machine will generate enormous amounts of data – several Petabytes (1015 bytes) per year at data rates between 100MB and 2GB per second, and some 100 PB in total. CERN is currently investigating ways of storing and managing these vast volumes of data and is focussing on the use of ODMG-complaint ODBMSs. Although the current work is based on C++, there is a growing interest in Java and mixed-language solutions. The new ODMG Java binding is consequently of great interest and we strongly support this activity. ”
Reading further around CERN web-page’s in general, discovered that they have invested hundreds of man years into object-oriented databases and are using them and associated technologies as a matter of course, although they go on to say in ODBMS Experience Object Databases and HEP: What Have We Learnt So Far? Section 3, ” Unfortunately, this standard is incompletely implemented by most vendors, and does not attempt to address all of the functionality that is required in a large-scale application” in reference to providing a consistent interface to all persistent objects.