3

We are planning to use OO databases to store configuration objects. The options are:

  1. Create 300+ relational tables.
  2. Create a generic structure with few tables. We think this would make object relation mapping more complex to build and maintain.
  3. Use a OO database. We are testing this now.

What do you think ?

  • The obvious question here is "what do the configuration objects look like?" –  May 06 '09 at 11:54
  • Depends a lot of programming language you are using. Which language is that? Smalltalk, Java, C something? – Janko Mivšek May 06 '09 at 12:35
  • Some reading for you: http://stackoverflow.com/questions/353258/are-object-oriented-databases-still-in-use http://stackoverflow.com/questions/52144/object-oriented-database-experiences http://stackoverflow.com/questions/246499/database-guy-asks-object-oriented-design-theory – Mark Ingram May 06 '09 at 11:49
  • I´ve already read that. Reading it makes me think that OO databases are good choices. – Marcelo Paes May 07 '09 at 00:41

2 Answers2

1

Object DB

  • High performance
  • Faster as no joins required
  • Inherent versioning mechanism
  • Navigational interface for operations (like graph traversal)
  • Object Query Language retrieve objects declaratively
  • complex data types
  • object identity ie. equals() in which object identity is independent of value and updates
  • facilitates object sharing
  • classes and hierarchies (inheritance and encapsulation)
  • support for relationships
  • integrated with a persistence language like ODL
  • support for atomicity
  • support for nested relationships
  • semantic modelling

Cons

  • No mathematical foundation as RDB (refer Codd)
  • cons of object orientation
  • persistence difficult for complex structures, some data must be transient

Object-Relational databases (You might have seen UDTs!)

  • support for complex data types like collection, multisets etc
  • object oriented data modelling
  • extended SQL and rich types
  • support for UDT inhertance
  • powerful query language

Different approaches (OO, Relational DB or OODB) may be necessary for different applications

References

OODMS manifesto

ODMG

The Object-Oriented Database System Manifesto

Object Oriented Database Systems

Object Relational Databases in DBMS

Completeness Criteria for Object-Relational Database Systems

Comparisons

http://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems

http://en.wikipedia.org/wiki/Comparison_of_object-relational_database_management_systems

zudokod
  • 3,984
  • 2
  • 19
  • 23
0

Read mostly (or single user); simple relations; constrained object graph depth; constraint management non-requirement; and relaxed object identity use cases favor the oo db.

alphazero
  • 26,728
  • 3
  • 28
  • 26
  • I think this is the case. And the size of the database will be small too. Just lots of attributes/fields and classes/tables depending on the choice – Marcelo Paes May 07 '09 at 00:44
  • In that case you can use an object db or one of the new trendy persistent key-value "db"s. Google Redis and (plug ;) JRedis on github and see if that works for you. (Also for a complete left field approach [;)], take a look at Lua. It was invented specifically to address configuration management in complex systems. Its claimed to be the fastest scripting language out there.) – alphazero May 07 '09 at 17:41