Object-oriented databases

The topic of this month's New York Web Standards Meetup is MongoDB, 10gen's object-oriented DBMS. While I've heard of OODBMSes, I've only worked with relational DBMSes and wanted to find out more about them prior to the meetup.

This post contains a few notes on OODBMSes and links to further resources.

Notes

According to Wikipedia:

[Object-oriented databases] have made little impact on mainstream commercial data processing, though there is some usage in specialized areas of financial services. It is also worth noting that object databases held the record for the World's largest database (being the first to hold over 1000 terabytes at Stanford Linear Accelerator Center) and the highest ingest rate ever recorded for a commercial database at over one Terabyte per hour.

From Dare Obasanjo:

A primary feature of an OODBMS is that accessing objects in the database is done in a transparent manner such that interaction with persistent objects is no different from interacting with in-memory objects. This is very different from using an RDBMSs in that there is no need to interact via a query sub-language like SQL nor is there a reason to use a Call Level Interface such as ODBC, ADO or JDBC.

Dare lists the following advantages of an OODBMS compared to an RDBMS (more detail is available in his article):

  1. Composite objects and relationships
  2. Class hierarchy
  3. Circumventing the need for a query language
  4. No impedance mismatch
  5. No primary keys
  6. One data model

Dare also lists the following disadvantages of an OODBMS compared to an RDBMS (more detail is available in his article):

  1. Schema changes
  2. Language dependence
  3. Lack of ad-hoc queries

Dare concludes, "In my opinion, there is little reason to pick an RDBMS over an OODBMS system for new application development unless there are legacy issues that have to be dealt with."

Links