Overview
An object-oriented database is a system offering database
management facilities in an object-oriented programming environment. Data is
stored as objects and can be interpreted only using the methods specified by
its class. An object class is a set of objects that share a common structure
and a common behavior. The relationship between similar objects is preserved
(inheritance) as are references between objects. Queries can be faster because
joins are often not needed (as in a relational database). This is because an
object can be retrieved directly without a search, by following its object id.
An object database management system (ODBMS) provides a storage place for objects
in a multi-user client/server environment. An object-oriented database is fundamentally
created around an object-oriented data model. An object is something that has
both data and the actions that reads or manipulates the data. An object has
a well-defined role in application domain. An object-oriented model is becoming
more and more popular because it can totally represent complicated connections
as well as represent data and data processing in a consistent way. (McFadden,
Hoffer, & Prescott, 1999; McFarland, Rudmik, & Lange, 1999)
The same programming language can be used for both data definition
and data manipulation. The full power of the database programming language's
type system can be used to model data structures and the relationship between
the different data items. Multimedia applications are facilitated because the
class methods associated with the data are responsible for its correct interpretation.
(McFarland et al., 1999)
The ODBMS handles simultaneous access to objects, provides
locks and transaction protection, protects the object store from all types of
threats, and takes care of traditional tasks such as backup and restore. What
makes ODBMS's different from a relational database management system is that
they store the constant state of an object versus data in tables. The ODBMS
combines object properties with traditional DBMS functions such as locking,
protection, transactions, querying, versioning, concurrency, and persistence.
(McFadden et al., 1999; Orfali, Harkey, & Edwards, 1999)
A Student object, for example, might contain data about a student and instructions on how to print the complete student record or the formula required in order to calculate a student's grade point average. A record in a relational database, by contrast, would only contain data about a student, without any formulas.
A unique characteristic of objects is that they have an identity that is independent
of the state of the object. Object-identity allows objects to be related as
well as shared within a distributed computing network. (Montlick, 1999)
Need for Object-Oriented Database Management Systems
Process integration was the driving force that inspired the development of object-oriented
database systems. A primary characteristic of objected-oriented applications
is the ability to manage very complex information efficiently. With applications
becoming more complex and users becoming more demanding, this type of database
is becoming more necessary. One area that this is impacting, for the need of
efficient and flexible object-oriented database systems, is in the area of design
support systems for example, CAD, CASE and Office Information Systems. These
applications require databases that can handle very complex data, that can develop
smoothly, and can provide the high-performance dictated by interactive systems.
With these possibilities in mind it is not surprising that the Computer Aided
Design (CAD), Computer Aided Manufacturing (CAM) and Computer Aided Software
Engineering (CASE) areas are specifically being targeted by object-oriented
database vendors. Factory and office automation are other areas where object-oriented
database technology is also vey valuable. Object-oriented database systems can
provide solutions for intricate problems and put them within the reach of users.
Object-oriented databases provide a unifying paradigm that allows data modeling
to be applied uniformly to the database.
Object-oriented databases can store more types of data, and
access this data, much faster than relational databases. Another big advantage
of an object-oriented database over a relational database is that you can save
unstructured data such as video clips, audio clips, photographs, and documents,
more efficiently. The object-oriented database often returns results more quickly
than the same query within a relational database.
A notable variance between object-oriented databases and relational
databases is that object-oriented databases represent precise relationships,
supporting both navigational and associative access to information. Additionally,
using precise relationships amplifies data access performance over relational
value-based relationships.
Perhaps the most significant characteristic of object-oriented database technology is that it combines object-oriented programming with database technology to provide an integrated application development system. There are many advantages to including the definition of operations with the definition of data. Firstly, the defined operations apply expansively and are not dependent on the particular database application running at the moment. Secondly, the data types can be extended to support complex data such as multimedia by defining new object classes that have operations to support the new kinds of information.
The Evolution of Object-Oriented Databases
Object-oriented database research dates back to the late 1970's
and had become a serious research area by the early 1980's. Commercial object-oriented
databases started appearing in the late 1980's. The earliest commercial ODBMSs
made their appearance in 1986 with the introduction of Servio (now GemStone)
and Ontos. These two pioneers were joined (in the 1990s) by Object Design (ODI),
Versant, Objectivity, O2 Technology (now Unidata), Poet, UniSQL, and ADB Matisse.
These ODBMS vendors first target applications that dealt with complex data structures
and long-lived transactions. Today, we are into the second generation of these
products. The growth in the number of object-oriented database companies has
been remarkable.
The evolution for the next stage of object-oriented databases
becomes more difficult as demands for database performance becomes increasingly
more and more complicated for programmers to create. "As the OODBMS database
technology evolves, OODBMS will assume a greater part of the burden for optimization
allowing the user to specify high level declarative guidance on what kinds of
optimizations need to be performed." (McFarland et al., 1999)
McFarland believes that you can gauge database maturity by
the degree to "which functions such as database access optimization, integrity
rules, schema and database migration, archive, backup and recovery operations
can be tailored by the user using high level declarative commands to the OODBMS."
Presently the majority of object-oriented database products demand that the
application developer write appropriate code ready to easily handle these functions.
Currently, object-oriented database systems (OODBS) are receiving
a lot of attention from both experimental and theoretical standpoints. There
are many industry groups helping to establish standards for the different aspects
of this technology. The Object Management Group (OMG) a non-profit industry
sponsored association whose goal is to provide a set of standard interfaces
for interoperable software components is an example of this type of support
group. An OODBMS application programmers interface (API) specification is currently
being developed (by ODMG, Object Database Management Group, a group of OODBMS
vendors) which will allow the portability of applications across OODBMS. Another
standards body X3H7, a technical committee under X3, is working on defining
OODBMS standards in areas such as object-models and object-extensions to the
relational database programming language SQL. Today object-oriented database
technology is definitely a true combination of object-oriented programming and
database technologies. (McFarland et al., 1999)
An object-oriented database system must satisfy two criteria: it should be a DBMS, and it should be an object-oriented system. Being a DBMS translates into five features: persistence, secondary storage management, concurrency, recovery and an ad hoc query facility. Being a object-oriented databases translates into eight features: complex objects, object identity, encapsulation, types or classes, inheritance, overriding combined with late binding, extensibility and computational completeness. Complex objects can be built from more elementary objects by applying constructors to them. The most basic objects are objects such as integers, characters, byte strings of any length, booleans and floats. (Atkinson et al., 1996)
Object Query Language.
Object-oriented and object-relational databases often use a query language called object query language (OQL) to manipulate and retrieve data. OQL is similar to SQL in that it uses many of the same rules, grammar, and vocabulary. (Shelly, Cashman, Vermaat, & Walker, 1999) OQL has been recognized as an Object Database Management Group (ODMG) standard for querying object-oriented databases (OODBs). Similar to SQL, OQL, uses a select-from-where structure to formulate extensive queries.
Evolution
Relational database technology cannot handle the needs of complex
information systems. The challenge with relational database systems is that
they require the application developer to force an information model into tables
where relationships between entities are defined by values.
Object-orientation is moving closer towards expressing answers
to problems in a more natural, easier to understand way. Instead of using a
language like SQL to define, retrieve and manipulate data, ODBMSs use class
definitions and traditional OO language, such as C++, Smalltalk or Java, constructs
to delimit and access data. The ODBMS is basically a multi-user, persistent
extension of in-memory language data structures. Which means that the client
is the C++, Smalltalk or Java program, the server is the ODBMS there are no
visual intermediaries like RPCs or SQL. (Orfali et al., 1999)
Other strengths of object-oriented such as inheritance allows one to develop solutions to complex problems incrementally by defining new objects in terms of previously defined objects. Polymorphism and dynamic binding are powerful object-oriented features that allow one to compose objects to provide solutions without having to write code that is specific to each object. All of these capabilities come together synergistically to provide significant productivity advantages for database application developers. (McFadden et al., 1999)
Pragmatics of Using an OODBMS
One needs to consider several points when thinking about using
an object-oriented database as a solution to a management problem. A database
application has a specific life cycle and requires a complete set of appropriate
support tools. The user should build an object model of the information dilemma
to be resolved by the database. The most recent object-oriented databases have
significant differences in the modeling capabilities of these products. An additional
benefit is that the stronger the data modeling facilities will mean less work
will be required to complete the database application.
Development tools are another area that is often overlooked within the support of the database applications. OODBMS includes a language for specifying object behaviors therefore one should understand the development of these behaviors and make sure they are tested for any given OODBMS. Testing is especially consequential because one needs to synthesize the compiler testing and debugging tools with the database persistent object storage manager.
In Summary
Object-oriented programming allows for a powerful innovative model for writing
computer software. (Montlick, 1999) The main objective of an OODBMS is to provide
consistent, data independent, secure, controlled and extensible data management
services to support the object-oriented modeling paradigm. Today's OODBMS products
are rapidly moving to provide most of these capabilities. Many of the products
around today are second generation OODBMS that have incorporated the lessons
learned from the first generation products. Given the importance of, and interest
in, object-oriented technologies, there is substantial market pressure to push
OODBMS products because of the valuable features and capabilities that object-oriented
databases offer. This will continue to advance object-oriented databases technology
at a very fast rate. Object-oriented database applications development increases
productivity through the frequent ability of being able to reuse code. (McFarland
et al., 1999) (McFadden et al., 1999)
References
Atkinson, M., Bancilhon, F., DeWitt, D., Dittrich, K., Maier, D., & Zdonik, S. (1996). The Object-Oriented Database System Manifesto. Available: http://www.cs.cmu.edu/People/clamen/OODBMS/Manifesto/htManifesto/old/section3_1.html [1999, November 16, 1999].
McFadden, F. R., Hoffer, J. A., & Prescott, M. B. (1999). Modern Database Management. (5th Ed. ed.): Addison-Wesley.
McFarland, G., Rudmik, A., & Lange, D. (1999, january 31, 1999). Object-Oriented Database Management Systems Revisited. Available: http://www.dacs.dtic.mil/techs/oodbms2/ [1999, November 18, 1999].
Montlick, T. (1999). What is Object-Oriented Software? Software Design Consultants. Available: http://www.soft-design.com/softinfo/objects.html [1999, November 18, 1999].
Orfali, R., Harkey, D., & Edwards, J. (1999). Client/server Survival Guide. (3rd Edition ed.): Robert Ipsen.
Shelly, G. B., Cashman, T. J., Vermaat, M. E., & Walker, T. J. (1999). Discovering Computers 2000: Concepts for a Connected World, Web and CNN Enhanced: Course Technology.