Open Source C ++ Object Oriented Database

Is there an open source object oriented database for C ++?

I looked at Object Oriented Link Mapping (ORM) libraries, such as the ones posted here: https://stackoverflow.com/questions/74141/good-orm-for-c-solutions

and they were also interesting: Object-oriented structures in relational databases http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#C.2B.2B

My experience so far has been painful. The solutions do not look mature, and it’s hard for me to compile some of them, and the documentation and support can be sparse.

I assume that at some level I'm trying to avoid learning SQL (I'm not a database developer). On the other hand, my gut feeling is that ORMs are an architectural "workaround" because they create a layer over the database system, which inherently does not support objects.

My ideal database library will allow the following:

  • Allow specifying a hierarchy tree of objects based on class names, possibly in XML or only in C ++.
  • Let me indicate which fields of these classes should be constant.
  • Provide an API for creating, updating, deleting, and returning a hierarchy of objects.
  • Ideally, provide an API for the memory tree itself, including simultaneous access to tree nodes.

I was working on an embedded system having such a custom database and api.

I am almost at the point where I am going to create my own and open source.

Just wondering if there is anything off the shelf that I can use.

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

and I'm trying to figure out that this might work:

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

Thanks in advance.

+4
source share
2 answers

I will not give any recommendations because I do not know the high-quality FOSS OO database. However, I would make the following observations:

  • The OO database is not a way to escape SQL - you need both. Honestly, if you do not know much about SQL, your life as a professional programmer can be unhappy.

  • OO databases are mature - they have been around for over 20 years. I personally first used one project in a major project in the financial industry 15 years ago.

  • The OO database is best used when relational databases fail - I used them in complex modeling of financial instruments, optimizing oil pipelines and working in the telecommunications industry.

  • ORM databases take the bad parts of OO and relational models and make things worse.

  • My favorite commercial OODB is ObjectStore, but I haven't worked with it for quite some time.

Hope this is dimly useful.

+3
source

Honestly, if you didn't bleed, I would stay away from OO databases. In almost all cases, they are poorly supported, immature, and have various support problems.

The problem is that only relational databases (and some non-relational ones) get 99% of the attention and thus become much more mature. ORM can be a workaround, but if you want reliability, this is really what you need.

UPDATE:

To clarify, I'm sure there is a very reliable open source OODB, but my requirements for "realism" are more than just not crashing or corrupting data. It includes the reliability of client connectors, the reliability of integration with object models of popular languages, etc.

This applies to open source OODB, not commercial.

+1
source

Source: https://habr.com/ru/post/1286521/


All Articles