[MUD-Dev] Object-Oriented Databases

Sean Kelly sean at ffwd.cx
Mon May 26 11:55:26 New Zealand Standard Time 2003

John A. Bertoglio wrote:
> The problem is what kind of database? RDBMS are extremely fast
> when working with a few heavily indexed tables. However, they
> choke on complex object data using arcane and complex methods to
> flatten multi-dimensional object data into rows and
> tables. Standard object-oriented databases can handle objects but
> typically are very poor in terms of speed and scalability. What is
> needed is a database that is industrial strength, fast and capable
> of storing objects (and other like XML) in a native format.

In my experience, Object Databases are extremely fast, provided you
use them correctly.  They are much less flexible than Relational
Databases and not as fast for arbitrary searches, but for object
retrieval they beat out RDBs.  I've seen OODBs that stored Java
objects natively (heck, Oracle can do this and has a JRE built-in)
and I believe there are some that can store C++ objects, though I
imagine it's really just a fancy serialization mechanism.  Also,
Microsoft SQL Server allows for doing insertion and query operations
via XML datasets.  They do impose some format restrictions on the
dataset, but if you can live with that it's pretty not bad.

One idea I've suggested to people before is to use an OODB as
middleware for an RDB.  It essentially acts as a fancy persistent
cache for application data, speeding operations because classes are
read and written in pretty much a native format rather than
involving complex joins.  You can still fake this in memory in your
application, but it can be quite handy to have the translation layer
separate.  This way you still have all the power of an RDB for
unexpected queries and all the convenience and speed of an ODB for
application integration.  Some ODB packages even have features that
allow them to integrate with an RDB fairly automatically.

I personally haven't encountered any design issues that I couldn't
map fairly clearly and easily into an RDB (even very dynamix
XML-oriented structures) but not all of these applications had
millisecond-level response needs.  It's these cases where I might
have considered an ODB middle-layer.


MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list