是否有适用于C ++的开源面向对象数据库?
我查看了面向对象的关系映射(ORM)库,如下所示: https://stackoverflow.com/questions/74141/good-orm-for-c-solutions
这些也是相互关联的: Object-oriented-like structures in relational databases http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#C.2B.2B
到目前为止,我的经历一直很痛苦。解决方案似乎并不成熟,我甚至难以编译其中的一些,文档和支持可能很少。
我想在某种程度上我试图避免学习SQL(我不是数据库开发人员)。另一方面,我的直觉是ORM是一种架构“解决方法”,因为它们在数据库系统之上创建了一个本质上不支持对象的层。
我理想的数据库库允许以下内容:
我曾经使用过具有这样一个自定义数据库和api的嵌入式系统。
我差不多就要创建自己的开源了。
只是想知道我可以使用现成的任何东西。
我看到了这个: http://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems
我想弄清楚这可能有用:
http://www.fastdb.org/fastdb.html
提前致谢。
答案 0 :(得分:3)
我不打算提出任何建议,因为我不知道高质量的FOSS OO数据库。不过,我会提出以下意见:
OO数据库不是一种避免SQL的方法 - 你需要两者。坦率地说,如果你不熟悉SQL,你作为一名专业程序员的生活可能会让你感到不快。
OO数据库已经成熟 - 它们已经存在了20多年。 15年前,我个人首先在金融行业的一个大型项目中使用了一个。
OO数据库最适用于关系数据库失败的地方 - 我在复杂的金融工具建模,石油管道优化和电信公司工作中使用它们。
ORM数据库采用OO和关系模型的不良部分,使其更糟糕。
我最喜欢的商业OODB是ObjectStore,但我现在还没有完成任何工作。
希望这有点模糊。
答案 1 :(得分:1)
老实说,除非你进入“前沿”,否则我会远离OO数据库。几乎在所有情况下,它们都没有得到很好的支持,不成熟,并且在客户端有各种支持问题。
问题是,只有关系数据库(以及某些非关系数据库)获得99%的关注,因此最终会更加成熟。 ORM可能是一种解决方法,但如果您需要可靠性,那么它就是您所需要的。
更新:
为了澄清,我确信有一些非常可靠的开源OODB,但我对“可靠性”的要求不仅仅是它不会崩溃而且不会破坏数据。它包括客户端连接器的可靠性,与流行语言的对象模型集成的可靠性等等。
这是关于开源的OODB,而不是商业的。