Can there be a wide open source object oriented database for C++ available?

I'd checked out Object oriented Relationship Mapping (ORM) libraries like individuals published here: http://stackoverflow.com/questions/74141/good-orm-for-c-solutions

which were intereting too: http://stackoverflow.com/questions/600684/object-oriented-like-structures-in-relational-databases http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#C.2B.2B

My experience to date continues to be painful. The solutions don't seem to be mature and I have struggled even producing a number of them, and also the documentation and support could be sparse.

I guess at some level I am attempting to avoid learning SQL (I am not really a database developer). However, my stomach feeling is the fact that ORMs are an architectural 'workaround' for the reason that they're developing a layer over a database system that naturally does not support objects.

My ideal database library allows the next:

  1. Allow someone to specify the item hierarchy tree according to class names, possibly in XML or simply in C++.
  2. Allow someone to specify which fields of individuals classes ought to be persistent.
  3. Offer an API to produce, update, remove, retreive the hierarchy of objects.
  4. Ideally, offer an API for that in-memory tree itself, including concurrent use of tree nodes.

I'd done embedded system which had this type of custom database and api.

I am almost at the stage where I am just likely to create my very own and free it.

Just wondering if there's anything out of the box I'm able to use.

I saw this: http://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems

and am trying to puzzle out this may work:

http://www.fastdb.org/fastdb.html

Thanks ahead of time.

I am not will make any recommendations, because I'm not sure of the high-quality FOSS OO database. I'd however result in the following findings:

  • OO database are absolutely no way of staying away from SQL - you'll need both. Frankly, If you do not know SQL pretty much, your existence like a professional programmer iis apt to be unhappy.

  • OO databases are mature - they have been in existence for more than two decades. Personally, i first used one on the large project within the finance industry fifteen years ago.

  • OO database would be best used where relational databases fail - I have used them in complex financial instrument modeling, oil-pipeline optimisation and telco work.

  • ORM databases go ahead and take bad areas of the OO and also the relational models making something a whole lot worse of these.

  • The best commercial OODB is ObjectStore, however i haven't done any use it for quite while now.

Hope that's vaguely useful.

Honestly, unless of course you are into "bleeding edge", I'd avoid OO databases. The, they are not well supported, immature, and also have various support issues client side.

The issue is, just the relational databases (and certain non-relational ones) get 99% from the attention, and therefore finish up much more mature. ORM might be a workaround, but when you would like reliability, it is the thing you need.

UPDATE:

To explain, I am sure you will find some very reliable free OODB's available, but my needs for "realiability" are not only whether or not this does not crash and does not corrupt data. It offers toughness for the customer fittings, toughness for the integration using the object types of popular languages, etc...

This really is about free OODB's, not commercial ones.