A COMPARISON STUDY OF OBJECT-ORIENTED DATABASE MANAGEMENT
SYSTEMS
Euclid Keramopoulos, Ph.D., Lecturer, Department of Information Technology, Alexander Technological Educational Institute of Thessaloniki, Greece, Thessaloniki, euclid@it.teithe.gr Michael Zounaropoulos, Student, Department of Information Technology, Alexander Technological Educational Institute of Thessaloniki, Greece, Thessaloniki, mzounar@it.teithe.gr George Kourouleas, Student, Department of Information Technology, Alexander Technological Educational Institute of Thessaloniki, Greece, Thessaloniki, gkourou@it.teithe.gr
Abstract. In recent years Object-Oriented Database Systems have a remarkable growth and obtain a larger share of the market of database systems. This is a consequence of the advantages and faster performance of Object-Oriented Database Systems compared with Relational Database Systems. In this paper, we present the features that an Object-Oriented Database System should support. Moreover we compare the eight more powerful Object-Oriented Database Systems and we present a comparison table between those systems according to the features we introduce.
Introduction
Object-Oriented Database Management Systems (OODBMS) are originated from Object-Oriented Programming Languages (OOPL). Thus, OODBMS support the characteristics that made OOPLs successful and furthermore OODBMS integrate OOPLs by offering the possibility of storing objects permanently as in every database management system.
The last decade many Object-Oriented Database Management Systems (OODBMS) have been developed. The most known of them are: Gemstone (Smalltalk) [1], Jdoinstruments (objectDB) [2], Versant Object Database [3], ObjectStore [4], Jade [5], Matisse [6], db4objects [7], Objectivity [8], Progress Software [9], EyeDB Object Oriented Database Management System [10], McObject Perst [11], Cache [12], ODABA [13], Eloquera [14], Generic Object Oriented Database System (GOODS) [15], JODB (Java Objects Database) [16], MyOODB [17], NeoDatis ODB [18], Orient ODBMS [19], Ozone Database Project [20], Statice [21], VOSS (Virtual Object Storage System) [22], Obsidian Dynamics (DTS/S1) [23].
In this paper we organize the features that an OODBMS should support and we draw a comparison table between the eight most important API for Object Persistance and OODBMS. The structure of this paper is as follows. Next, in section II, we introduce the features that an OODBMS should support. In section III, we briefly analyze the eight more powerful API for Object Persistance and OODBMS and in section IV, we present a comparison analysis between those APIs and OODBMSs. Finally, in section V we draw our conclusion.
1. Features of OODBMS
In this section we organize the features that an OODBMS should support as a result of our review. First of all, it is very important for an OODBMS to support the ODMG 3.0 standard [24]. This includes the basic components of the ODMG 3.0 standard, namely Object Definition Language (ODL), Object Query Language (OQL) and furthermore powerful types like collections and complex types. In the ODMG 3.0 standard are supported five types of collections, i.e. set, bag, list, array and dictionary, which means that it is expected from an OODBMS to support most of them. Complex data types are stated for user-defined data types like classes and structures. Moreover, a big issue in ODMG 3.0 is the type of inheritance that is supported. In our review, all of the OODBMS support single inheritance except of only two, which support multiple-inheritance.
OODBMS is also important to support traditional database features. Thus, an OODBMS should support concurrency control, recovery and indexing. On the other hand it is useful for an OODBMS to provide a query facility. In our review it was found that OODBMS use three types of query structure, i.e. ODMG 3.0 OQL [24], NoSQL [26] and LINQ [27].
26
Another aspect that it was studied in this review is the software portability. Thus, it was checked the platform that those OODBMS were compatible (Windows, Android , Linux, Mac). Moreover, another important feature is the usage of the OODBMS in three layer architecture, i.e. if the OODBMS can installed in a database server and accessed by a client.
The user interface that an OODBMS supports it’s another category of features that are significant because the OODBMS becomes more efficient when it provides a user-friendly user interface. Thus, three types of user interfaces are met in a OODBMS: (a) a Graphical User Interface, in order to manipulate all the services of the OODBMS, (b) a database user interface, in order to design and present the structure of the database and the actual data and (c) the data explorer, in order to represent in a tabular form the data of objects. Also, it is advantage for an OODBMS the possibility to export the data in XML format, which is the standard format of data from a lot of web applications. Finally, if an OODBMS provides JDBC [28] type metadata of object data then it is possible data dynamically applications to be created.
2. Presentation of most representative OODBMSs
Two OODB APIs, JDO and JPA along with the six more successful OODBMS are presented, namely, db4o, ObjectDB, Objectivity/DB, EyeDB, Perst and ObjectStore. We include in our review JDO and JPA because a programmer can use those APIs in order to manage object persistence.
Java Persistence API (JPA) [29] is an API that can be used in J2EE and J2SE applications. It is based on leading persistence frameworks like Toplink [30] and Hibernate [31]. JPA offers POJO (Plain Old Java Object) standard [32] and object relational mapping (OR mapping) [33] for data persistence among applications.
Java Data Objects (JDO 2.0) [34] is an API regarding data persistence that now is developed inside Apache JDO open-source project [35]. JDO 2.0 uses POJO to represent persistent data. This approach divides data manipulation (accessing Java data members in the Java domain objects) from database manipulation (calling the JDO interface methods). This leads to a high degree of independence of the Java view of data from the database view of the data.
db4o [7] is an open source OODBMS that enables Java and .NET developers to store and retrieve any object. In db4o objects are stored exactly in the same way that are defined in Java or .NET applications. Moreover, db4o supports the persistence of any object without concerning of its complexity. It is designed to be embedded in clients invisible to the end user. Client/server version allows db4o to communicate between client and server-side applications.
ObjectDB [2] is a powerful OODBMS, which is reliable, easy to use and extremely fast. It provides all the standard database management services (storage and retrieval, transactions, lock management, query processing, etc.). Many features of ObjectDB based on JPA and JDO APIs. Moreover, features that are common in relational databases (e.g. primary keys etc) are also supported by ObjectDB.
Objectivity/DB [8] is a commercial OODBMS produced by Objectivity. It allows applications to make standard C++, Java, Python or Smalltalk objects persistent. Objectivity/DB supports also SQL/ODBC and XML. It runs on Linux, LynxOS, UNIX and Windows platforms. Objectivity/DB is a distributed database that provides a single logical view across a federation of databases.
EyeDB [10] is an OODBMS based on the ODMG 3.0 standard, which developed and supported by the French company SYSRA. EyeDB provides an advanced object model (inheritance, collections, methods, triggers, constraints), an object definition language based on ODMG ODL, an object query language based on ODMG OQL and programming interfaces for C++ and Java. EyeDB distributed under the terms of the GNU Lesser General Public License.
Perst [11] is an Open Source OODBMS developed by McObject LLC. Perst stores data directly in Java objects, which boosts runtime performance. It is compact, with a core that consists of only 5000 lines of code and thus, it demands minimal resources due to this small footprint. It is reliable and it supports transactions with the ACID properties. Finally, it provides schema evolution, XML import/export, database replication, and support for large databases.
27
ObjectStore [4] is an OODBMS that supports traditional DBMS features such as persistent storage, transaction management, distributed data access, and associative queries. ObjectStore was designed to provide a programmatic interface to persistently allocated data (data that lives beyond the execution of an application program) and transiently allocated data (data that does not survive beyond an application's execution).
3. Comparison Analysis
In table 1 a comparison analysis is introduced based on our review on the two APIs and six OODBMSs that briefly presented in the previous section. In table 1, it is shown the features that every OODBMS of our review supports. The symbol “V”is used to present that the feature is supported by the OODBMS and the symbol “?” is used to present that it is not clear if the feature is supported. An empty cell shows that the OODBMS does not support the corresponding feature.
Table 1. Comparison Table of OODBMS [1
Features / OODBMS's JPA JDO db4o ObjectDB Objectivity EyeDB Perst Objestore
Support of ODMG 3.0 V V л/ ? V 9
Collections Set V V V л/ V л/ V л/
Bag л!
List V V V V V V V
Array л/ V -V V V V V
Dictionary ? ? ? ? ? ? ? ?
Complex Types л/ V V V л/ V
Multiple Inheritance V V
Concurrency Control V V V V л! V л!
Recovery V V V л/ V л/ V
Indexing V V л/ V V V
Query Facility OQL V V V V V V V
LINQ л/ V л/ V л/ V
NoSQL
XML export Internal V ? V
Third Party Program V ?
Metadata JDBC type л/ V V V
Platform Windows V V V V V V V V
Android V V
Linux л/ V л/ V л/ л/ л/ V
Mac V V V л/ V V
Client-Server Edition V V V л! л! л!
Interface GUI V
DBMS Ul V V
Data Explorer V л/ V
From the above table it concluded that the reviewed OODBMSs support most of the features but no one all of them. More particularly, ODMG 3.0 standard supported by JPA, JDO, ObjectDB and EyeDB but OQL supported also by db4o, Objectivity and Perst. The collection type supported by most of the OODBMS except of the bag type, which supported only by EyeDB, and for the dictionary type is not clear if any OODBMS supports it. In the six OODBMSs a complex type can be created except of Perst and Objectivity. Only the two APIs allows multiple inheritance when all the OODBMS limited to single inheritance. The traditional DBMS features are supported by the vast majority of the OODBMSs. No one of the reviewed OODBMS provides the possibility of defining a NoSQL query. Only db4o, Objectivity and Perst can export the object data into XML data. The JDBC type metadata can be used only from applications that use as Object-oriented persistence the two APIs or ObjectDB and EyeDB. Only, db4o and Perst are portable to the four platforms whereas the most of the OODBMS can be used in three-tier architecture. Finally, only db4o, ObjectDB, Objectivity and EyeDB supports a user-friendly interface whereas all the others only a textual one.
Conclusions
In this paper we presented a list of features that an OODBMS should support. Also, we briefly outlined two APIs that can be used by object-oriented applications for object persistence and six
28
well-known OODBMSs. Moreover, we draw a comparison analysis table where it is shown which feature supported by every OODBMS. From the comparison analysis it was concluded that no OODBMS supports all the desirable features that an OODBMS should support. In our future plans included the design and development of a prototype that will map an object-oriented database into an equivalent semi-structured XML database.
Acknowledgements
The work presented in this paper has been supported by the Research Committee of Alexander Technology Educational Institute of Thessaloniki under the Research Support Program 2009 (П.Е.Е. 2009).
References
1. Gemstone (Smalltalk). Web site: http://www.gemstone.com/. Accessed 2011.
2. Jdoinstruments (objectDB). Web site: http://www.jdoinstruments.org/. Accessed 2011.
3. Versant Object Database. Web Site: http://www.versant.com/. Accessed 2011.
4. ObjectStore. Web Site: http://web.progress.com/en/objectstore/. Accessed 2011.
5. Jade. Web Site: http://www.jadeworld.com/. Accessed 2011.
6. Matisse. Web Site: http://www.matisse.com/. Accessed 2011.
7. db4objects. Web Site: www.db4o.com/. Accessed 2011.
8. Objectivity. Web Site: http://www.objectivitv.com/. Accessed 2011.
9. Progress Software. Web Site: http://web.progress.com/en/index.html. Accessed 2011.
10. EyeDB Object Oriented Database Management System. Web Site: http://www.eyedb.org/. Accessed 2011.
11. McObject Perst. Web Site: http://www.mcobject.com/perst. Accessed 2011.
12. Cache. Web Site: http://www.intersystems.com/cache/. Accessed 2011.
13. ODABA. Web Site: http://odaba.com/content/start/. Accessed 2011.
14. Eloquera. Web site: http://eloquera.com/page/home.aspx. Accessed 2011.
15. Generic Object Oriented Database System (GOODS). Web site: http://www.garret.ru/goods.html. Accessed 2011.
16. JODB (Java Objects Database). Web site: http://www.iava-obiects-database.com/. Accessed 2011.
17. MyOODB.Web site: http://www.myoodb.org/. Accessed 2011.
18. NeoDatis ODB. Web site: http://www.neodatis.org/. Accessed 2011.
19. Orient ODBMS. Web site: http://www.orientechnologies.com/cms/. Accessed 2011.
20. Ozone Database Project. Web site: http://www.ozone-db.org/frames/home/what.html. Accessed 2011.
21. Statice. Web site: http://www.sts.tu-harburg.de/~r.f.moeller/symbolics-info/statice.html. Accessed 2011.
22. VOSS (Virtual Object Storage System). Web site: http://voss.logicarts.com/. Accessed 2011.
23. Obsidian Dynamics (DTS/S1). Web site: http://obsidiandynamics.com/dts/index.html. Accessed 2011.
24. Cattell R.G.. Barry D.K.. The Object Data Standard: ODMG 3.0 (Morgan Kaufmann Publishers) 1999.
25. Strozzi. Carlo: NoSQL - A Relational Database Management System. Web Site:
http://www.strozzi.it/cgi-bin/CSA/tw7/I/en US/nosql/Home%20Page. Accessed 2010.
26. LINQ. Web Site: http://msdn.microsoft.com/en-us/netframework/aa904594. Accessed 2011.
27. Maydene Fisher. Jon Ellis. Jonathan Bruce. JDBC™ API Tutorial and Reference (3rd Edition). The Java Series. Sun. 2003.
28. Daoqi Yang. Java(TM) Persistence with JPA. Outskirts Press. 2010.
29. Oracle Toplink. Website: http://www.oracle.com/technetwork/middleware/toplink/tl-grid-
097210.html. Accessed 2011.
30. Boss Hibernate. Web Site: http://www.hibernate.org/. Accessed 2011.
31. Brian Sam-Bodden. Beginning POJOs From Novice to Professional. Apress Media LLC.2006.
32. M.L. Fussell. Foundations of object relational mapping. White Paper. http://www.chimu.com. 1997
33. Oracle JDO. Web Site: www.oracle.com/technetwork/iava/index-isp-135919.html. Accessed 2011.
34. Java Data Objects. Web Site: http://db.apache.org/jdo/. Accessed 2011.
29