Объектная база данных с открытым исходным кодом C ++ - PullRequest
5 голосов
/ 20 июня 2009

Существует ли объектно-ориентированная база данных с открытым исходным кодом для C ++?

Я смотрел на библиотеки объектно-ориентированного отображения отношений (ORM), подобные тем, которые размещены здесь: https://stackoverflow.com/questions/74141/good-orm-for-c-solutions

и это тоже было интересно: Объектно-ориентированные структуры в реляционных базах данных http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#C.2B.2B

Мой опыт до сих пор был болезненным. Решения не кажутся зрелыми, и у меня были трудности даже с компиляцией некоторых из них, а документация и поддержка могут быть скудными.

Я полагаю, что на каком-то уровне я пытаюсь избежать изучения SQL (я не разработчик базы данных). С другой стороны, мое внутреннее чувство заключается в том, что ORM - это архитектурный «обходной путь», поскольку они создают слой над системой баз данных, которая по своей природе не поддерживает объекты.

Моя идеальная библиотека баз данных позволит:

  1. Разрешить указывать дерево иерархии объектов на основе имен классов, возможно, в XML или просто в C ++.
  2. Разрешить указывать, какие поля этих классов должны быть постоянными.
  3. Предоставляет API для создания, обновления, удаления, получения иерархии объектов.
  4. В идеале, обеспечить API для самого дерева в памяти, включая параллельный доступ к узлам дерева.

Я работал над встроенной системой, в которой была такая пользовательская база данных и API.

Я почти на том этапе, когда просто собираюсь создать свой собственный и открытый исходный код.

Просто интересно, есть ли что-нибудь с полки, что я могу использовать.

Я видел это: http://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems

и пытаюсь выяснить, может ли это сработать:

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

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 20 июня 2009

Я не собираюсь давать никаких рекомендаций, потому что я не знаю о высококачественной базе данных FOSS OO. Однако я бы сделал следующие замечания:

  • OO базы данных не способ избежать SQL - вам нужно и то, и другое. Честно говоря, если вы не очень хорошо знаете SQL, ваша жизнь профессионального программиста, вероятно, будет несчастной.

  • Базы данных OO являются зрелыми - они существуют уже более 20 лет. Лично я впервые использовал его для крупного проекта в финансовой сфере 15 лет назад.

  • Базы данных OO лучше всего использовать там, где реляционные базы данных не работают - я использовал их при моделировании сложных финансовых инструментов, оптимизации нефтепровода и работе телекоммуникационных компаний.

  • Базы данных ORM берут плохие части ОО и реляционных моделей и делают их еще хуже.

  • Мой любимый коммерческий OODB - это ObjectStore, но я уже давно не работал с ним.

Надеюсь, что это немного полезно.

1 голос
/ 20 июня 2009

Честно говоря, если вы не в "кровоточащем краю", я бы держался подальше от баз данных ОО. Почти во всех случаях они недостаточно хорошо поддерживаются, являются незрелыми и имеют различные проблемы поддержки на стороне клиента.

Проблема в том, что только реляционные базы данных (и некоторые нереляционные) получают 99% внимания и, таким образом, оказываются гораздо более зрелыми. ORM может быть обходным путем, но если вам нужна надежность, это действительно то, что вам нужно.

UPDATE:

Чтобы уточнить, я уверен, что есть несколько очень надежных OODB с открытым исходным кодом, но мои требования к "реалистичности" не ограничиваются только тем, не разрушается ли он и не портит ли данные. Включает в себя надежность клиентских коннекторов, надежность интеграции с объектными моделями популярных языков и т. Д ...

Это OODB с открытым исходным кодом, а не коммерческие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...