Ask Slashdot: Pure Object Databases in Linux?
ramkal asks:
"I would like to know if there are any good "pure" object
databases (free or commerical) for Linux. No I don't have
Oracle 8 (or Informix IDS) in mind. I would hear from those
who have succesfully implemented ODs in a decent project
(100k + lines of c++ code). True, ODs are no longer as hot
as they used to be a couple of years ago but they have
their own advantages as I have seen in a financial
industry setting."
An RDBMS defines tables, ie field definitions, and stores data instances as rows in a table.
When you write an application if you want to manipulate that data you have to read a relational row into datastructures available in your programming language.
In an OODBMS you build up the object model for your system, the OODBMS stores your objects for you, and they appear to you as native objects in your programming language. i.e you don't have to map from your programming languages data structures to relational structures.
When you have complicated object heirarchies, the time spent mapping between the object structures and the realtion structures, can take up allot of programmer time, (at least that's what the OODBMS vendors want you to believe)
--dan the person
To my mind there were 4 groups of people doing fairly dissimilar things. They all called their research "oodbms" work.
1) relational people wanting to support structured fields (break 1st normal form)
2) persistent programming people wanting transaction / query facilities
3) AI expert systems people wanting a persistent rulebase
4) functional data modelling people experimenting with polymorphism
The outcome are two major strands: persistent object stores and object relational systems. In principle they can do the same, but in practice they excel in different areas: if you let the DBMS know about your data types (ADTs - abstract data types) then the query optimiser can make use of that information. That's the great strength of ObRel systems. On the other hand, if you look at how rel systems are used, you find that many introduce lots of surrogate keys (simplistically: serial numbers with no meaning in reality). An OODB would be able to replresent those by object references, which cuts down on the pointer indirections by a factor 2 or three. If all you ever do is chasing pointers that may be a great help. Look at CAD software.
There are two papers that I can highly recommend: the oo database manifesto and the (empire strikes back) 3rd generation database manifesto. Look over at dblp.uni-trier.de and type in manifesto.