When To Use an Embedded ODBMS By Rick Grehen

Rick Grehen

Though relational database systems comprise the majority of back-end databases employed by applications, object databases continue to capture database developers’ interest. In fact, object database technology has seen a recent resurgence in popularity (since their beginnings in the 1970s), particularly now that object-oriented languages offer well-matured platforms for creating such database systems. Numerous commercial and open-source ODBMSes exist, including Objectivity, ObjectStore, Versant, Matisse (all commercial) and db4o, Prevayler, Ozone, Perst, and JDOInstruments (all open-source). A list of object databases can be found at: http://www.service-architecture.com/products/object-oriented_databases.html.

A particularly interesting variant of the ODBMS is referred to as an “embedded” object database. An embedded object database system is one whose database code executes within the application. That is, the code for the database runs in the same address space as the application. An application that uses an embedded database is monolithic; it is not built along client/server architectural lines.

Implied in that last sentence is an important question: when should an application use an embedded object database? Or, more precisely, when should a developer consider an embedded object database as an alternative to the more popular (and, probably, more familiar) relational database?

This question is really two questions combined. The first is: when is it appropriate to use an ODBMS? The second is: assuming that you have determined to use an ODBMS, when is it appropriate to use an embedded one? (Many of the ODBMS systems mentioned above are available in both client/server and embedded forms.) In this article, I will deal with the individual, component questions separately. The combined answers will be the reply to the original question.

In addition, I’m going to assume throughout the article that the only alternatives to an ODBMS are either a purely relational database (accessed via, for example, JDBC) or an object/relational database (along the lines of Hibernate). This is certainly not always the case. Sometimes, a flat-file pseudo-database, or even a well-crafted XML file, is all that an application really needs. I do not want you leaving the article with the idea that an ODBMS is the only answer to all persistence needs.
阅读全文 When To Use an Embedded ODBMS By Rick Grehen