Newletter Sign Up
Posts on the
Design Decomposition Blog
Iridium Satellite Collision in Space
You might have seen the recent news reports about the collision between U.S. and Russian communication satellites. The U.S. satellite was one of the Iridium satellites. What wasn’t reported and you probably don’t know is that an object database management system (ODBMS) is an important part of the Iridium system. Even though ODBMSs are a [...]
February 13, 2009
(The Acronym) SOA is (Perhaps) Dead (at Some Companies); Long Live Services
I am now also posting on the Cutter Blog. My initial posting is (The Acronym) SOA is (Perhaps) Dead (at Some Companies); Long Live Services. It is a response to Anne Thomas Manes’ SOA is Dead; Long Live Services on her blog at the Burton Group.
January 9, 2009
Atomicity
The typical definition of an atomic task or process is one that cannot be decomposed further. This is vague and subject to interpretation. The Decomposition Matrix on this site uses a specific definition: A task (for business process diagrams) or a process (for data flow diagrams) is atomic if every input relates to every output [...]
December 3, 2008
Well-Formed Business Process Diagrams
My last posting referenced the criteria for a well-formed business process diagram mentioned in Business Process Driven SOA using BPMN and BPEL by Matjaz B. Juric and Kapil Pant. I am going to expand on their criteria to create a more comprehensive definition of a well-formed business process diagram. To start, here are three criteria from [...]
November 18, 2008
Recent Business Process Modeling Books
I recently received two new books on business process modeling. Both books looked interesting because they had great titles. As it turns out, one book is great and the other not so good. The not so good book is Business Process Driven SOA using BPMN and BPEL by Matjaz B. Juric and Kapil Pant. There are [...]
October 9, 2008
The Design Decomposition Blog
is written by Doug Barry.

Here are answers to frequently asked questions about object database management systems (ODBMSs):

>>
Want to know more? Check out the ODBMS Articles on this site.

Q. What are the benefits of using an object database management system (ODBMS)?

A. From my perspective, there are two primary benefits in using this technology. Both benefits reflect a basic idea -- when you use an ODBMS, the way you use your data is the way you store it. The first benefit can be found in development. When you use an ODBMS, you will write less code than if you were writing to an RDBMS. The reason for the smaller amount of code is simple -- when you are using Java or C++ -- you won't have to translate into a database sub-language such as SQL, ODBC, or JDBC. You will be writing in the programming language. The result is less code. In many cases, this code be as much as 40 percent less. The corollary to this is that any data structure that you can imagine in Java or C++ can be stored directly without translation in an ODBMS. This is an important thought. You can store very complex data structures directly in an ODBMS.

The second benefit, which is related, occurs in production. If you are working with complex data, an ODBMS can give you performance that is ten to a thousand times faster than an RDBMS. That's because when the data is read off the disk, it is already in the format that Java or C++ uses. No translation is needed. The range in performance gain depends on the complexity of your data.


Q. When should you use an ODBMS?

A. The advice that I give my clients is really pretty simple. Use an ODBMS when you have a business need for high performance on complex data. But, what does that mean exactly? Briefly, when you meet a business need, you either make or save some money. High performance, in the context of an ODBMS, means that you literally could see a performance improvement of between ten to a thousand times in comparison with an RDBMS. And finally, you can be sure that you have complex data if your data looks like a connected graph, such as a bill of materials or a schema that has many intersection entities. For example, let’s say you have an automated stock trading application. The application receives a live feed of stock data. It uses that information with a historical database (trust me, this database has complex data) and applies an algorithm that determines if any action should occur based on the live feed. The faster the database search is, the shorter the elapsed time between receiving data from the live feed and determining the appropriate action. Assuming the algorithm is correct, this means the stock trading application will either be making more money or losing less money. In other words, this is an example where there is a business need for high performance on complex data. 


Q. Can you provide examples where ODBMSs are used production applications?

A. Here are a few examples of ODBMSs in use in production applications:

These are just some examples. Many more exist.


Q. Can ODBMSs handle large databases?

A. Yes. In fact, one of the largest database that I have ever heard of is in production using an Objectivity ODBMS at Stanford Linear Accelerator Center (SLAC). As of March, 2002, SLAC stored 500 terabytes of production data using Objectivity/DB. The production data is distributed across 100 on-line servers. SLAC uses Objectivity/DB for its flagship research project named B Factory, which includes the PEP II accelerator and the BaBar particle detector. More information.


Q. Are there any barriers to using ODBMSs?

A. Here are some possible barriers:

I am sure some of these barriers might make sense to you. Nevertheless, if they incapacitate you, it is difficult to try new things. Sometimes new things are good things. So my suggestion is that you should become familiar with the technology if your business could benefit from high performance on complex data.


Q. Will ODBMSs replace RDBMSs?

A. That is highly unlikely. Someone once told me that, "Data tends to stick where it lands." There are many applications built on existing RDBMSs. It's difficult, if not impossible, to move off those databases. That would be unrealistic. Where you primarily see ODBMSs is in new development. In these cases, someone has figured out how to use high performance on complex data to meet a business need. And you often see ODBMSs working side by side with RDBMSs.


Q. Can object databases and relational databases co-exist?

A. Absolutely and this is what you usually see. Typically, people using object databases carve out the part of their IT systems that need high performance on complex data. They then will do other processing, such as back office analysis, using an RDBMS. Often the object database data is transferred to the relational database during quieter processing  times. I like to characterize this as database diversity -- using the right tool for the right purpose. For some examples, take a look at Architectures using databases in the middle tier.


Q. How do ODBMSs compare to object-relational mapping products?

A. First, let's look at the similarities. Object database management system products and most object-relational mapping (OR mapping) products let you program in Java or C++ without the use of a database sublanguage such as embedded SQL, ODBC, or JDBC. That part of the development cost is comparable. The main difference between the two occurs in the use and storage of the data. OR mapping products require you to map the object model to a relational model, which requires additional development and can sometimes be a significant performance hit in production. That's because the way the data is stored is different from how it is used. The term for translating data from storage format to application format and back is "impedance mismatch." This may be familiar to you. In situations where high performance on complex data is required, impedance mismatch can create performance problems. Also see Object-relational mapping articles (new window).


Q. Does it make sense to use an ODBMS in a web server?

A. Yes, many websites are currently using ODBMSs. With the projected growth in XML use, it will become more compelling to consider an ODBMS for a website. The reason is that XML is basically an object model. So, for storing and getting object data, you can't beat an ODBMS on performance. In addition, you will have reduced development costs because you won't need to translate the XML into some other storage model. That means that XML plus an ODBMS will make for a high performance website. Add to this the plans for using XML as a means for business to business transactions and you can see why some people see XML as the killer application use for ODBMSs. Also see XML database articles (new window).


Q. What are some good sources of information on ODBMS technology?

A. There are several good books. They include:


Q. I hear that it's hard to get people with sufficient skills to work on ODBMS projects.

A. Finding good people is an industry-wide problem and should not be a reason not to use any particular technology.

The primary skill needed to work on an ODBMS is the ability to develop an object model and to program in an object programming languages. Those skills, however, are not unique to using an ODBMS. You need them for an O-R Mapping project as well or even to write an object program.


Q. Why aren't there any public ODBMS benchmarks?

A. The fact is that there aren't any useful public benchmarks for and type of database product. The reason has to do with the licensing of database products which usually prohibits publishing any benchmarks. 

For some background on the problems with creating useful comparison benchmarks, take a look at the August 1999 issue of PC Magazine, "The Test That Wasn't," on page 29.  The column also explains why even the public TPC-C benchmarks are not useful in selecting a database product.  The column ends with advice that is similar to what I tell my clients:  "If performance is important to your database application, we strongly encourage you to run you own tests to help you choose the most suitable product."

Related content for: ODBMS FAQ

More on the general topic: Object database articles

Read more free articles on this site

There are nearly 400 pages of articles on this site with over 50 pages on object-oriented database management systems.

Search this site for more articles

Custom Search

Browse this site for more articles

Click on the topics below to browse the articles on this site. You can see more detail by clicking on the arrows. This highlights the location of the current article: ODBMS FAQ.

Related recent articles from Google News

10 Hot Software Platforms And Applications For Health Care
ChannelWeb
... systems: Ensemble, integration software for connecting systems, services and business processes, and Cache, its object database management system. ...

6 Mar 2010 at 11:31am
Holland Hospital Moves to InterSystems Ensemble for Enterprise-Wide Integration
Earthtimes (press release)
InterSystems CACHÉ® is a high performance object database that makes applications faster and more scalable. InterSystems Ensemble® is a seamless platform ...
and more »
15 Mar 2010 at 7:49am
CliniComp Tasked With Managing Military's Massive Patient Data
San Diego Business Journal
“Because the Essentris system uses an object-oriented database within a redundant server architecture, it allows multiple users at the same time to look at ...
and more »
22 Feb 2010 at 11:33am
Create flexible, agile web applications using Grok with new book from Packt
PRLog.Org (press release)
They will also be able to understand how the Zope Object Database works and how easily it could be connected to other relational databases. ...

9 Mar 2010 at 5:48am
SCALE 8x: Relational vs. non-relational
LWN.net
Another alternative is to use a hybrid, like MySQL NDB, which puts a distributed object database as a back-end to MySQL, or HadoopDB which puts PostgreSQL ...

3 Mar 2010 at 8:58pm
More related news on: "object database" OR "object-oriented database"

Related books at Amazon.com

Data Access Patterns: Database Interactions in Object-Oriented Applications (paperback)
Data Access Patterns: Database Interactions in Object-Oriented Applications (paperback)
by Clifton Nock
Average Customer Review: 4 stars based on 7 reviews.
Customer Review: I have to disagree with the previous review. I will try to explain why I think 'b88zhou' review is inadequate after presenting my overview of this book. After reading numerous pattern books, it is nice to see a pattern book with very good organization. Each pattern is presented with the following subsections. * Description * Context ...
Object-Oriented Application Development Using the Cache Postrelational Database
Object-Oriented Application Development Using the Cache Postrelational Database
by Wolfgang Kirsten, Michael Ihringer, Peter Schulte
Average Customer Review: 2.5 stars based on 7 reviews.
Customer Review: Have gotten extensive use out of this book from my time as a cache developer. Good guide for a programmer who's new to cache, and then later on as a reference guide for an intermediate to experienced developer. Everyone in the dev team got some use out of this as a reference - good to have in the team.
Learning PHP Data Objects: A Beginner's Guide to PHP Data Objects, Database Connection Abstraction Library for PHP 5
Learning PHP Data Objects: A Beginner's Guide to PHP Data Objects, Database Connection Abstraction Library for PHP 5
by Dennis Popel
Average Customer Review: 4 stars based on 5 reviews.
Customer Review: I like the book's erudite methodology. The methodology of this book is based on the two tenets of sound education: Informing Demonstrating In this books after the information I found lots of exercises, step by step, with plenty of pictures and screen shots that lead me through and demonstrated a process of task. These exercises are f...
The Object Data Standard: ODMG 3.0 (The Morgan Kaufmann Series in Data Management Systems)
The Object Data Standard: ODMG 3.0 (The Morgan Kaufmann Series in Data Management Systems)
by R. G. Cattell, Douglas K. Barry, Mark Berler, Jeff Eastman, David Jordan, Craig Russell, Olaf Schadow, Torsten Stanienda, Fernando Velez
Average Customer Review: 4 stars based on 2 reviews.
Customer Review: A well-written, concise reference covering a diverse range of topics that will be of interest to all who know the frustration of cramming complex OO systems into relational tables. From a complete design pattern for Object and Object Relational database systems, to design patterns for declarative language symantics; from C++ and Java...
Building Scalable Database Applications: Object-Oriented Design, Architectures and Implementations
Building Scalable Database Applications: Object-Oriented Design, Architectures and Implementations
by Peter Heinckiens
Average Customer Review: 3.5 stars based on 6 reviews.
Customer Review: I think some of the other reviewers might forget this book is at the time of this review writing is 5 years old. At the time of .NET's official non beta release it was just over 3 years old. Truly, this book is as relevant today as it was when it was written. Perhaps some of the concepts of persistence are missed by the first reviewe...
More related books: Search Amazon.com for object database