我搜索了一下OODBMS和RDBMS之间的差异。我几乎都知道它们是什么。但是,我将如何决定哪一个更适合哪些应用程序。有人可以帮我吗?
我对工厂管理的意义是:有生产瓶装,冷冻和其他食品的生产线。应用程序通过将人员分配到生产线上来管理,以将生产记录保存在系统中。哪种dbms更适合此类系统?
提前致谢。
答案 0 :(得分:3)
以下是Rick Grehan的一篇很好的文章,描述了ODBMS有用的案例: http://www.odbms.org/wp-content/uploads/2013/11/006.04-Grehan-When-to-Use-an-ODBMS-2005.pdf
答案 1 :(得分:2)
免责声明:这是一个“老问题”的答案,来自于在OOP进入主流之前编写了大量功能完善的会计,制造和其他代码的人。 有了这样说......
工厂管理是经典的关系数据库,它就是它的发明。经典关系应用程序的代码往往遵循非常可预测的模式,从表中检索到的行上的大量循环,或直接传递的东西:将数据传递到UI或向下传递到数据库。如果您的数据库设计得很好,那么您编写的业务逻辑将是这些循环或传递中的详细信息,但这两种模式将占主导地位。
另一方面,从这个“老痴迷者”的角度来看,OODMS试图将完美而有效的功能性RDBMS重新制作成可以与类/对象一起工作的东西,因为没有明显优于具有类/对象的系统。几十年来证明自己工作得非常好。类与位于关系数据库之上的经典代码模式几乎没有任何关系。事实上,它们往往会使事情变得复杂,并且很容易妨碍。我并不是说不使用OOP代码来处理数据库,只是OOP是针对不同类型的问题而发明的,这是数据库应用程序不会遇到的问题。答案 2 :(得分:1)
选择OODBMS或RDBMS的决定不依赖于工厂管理/自动化等特定应用。 这取决于许多标准,如
1)编程范例 - 如果[程序员]选择以OO编程语言可视化/实现,那么OODBMS适合将对象直接存储到数据库中,但最广泛的类型DBMS Relational,因为它在商业上已经很好地建立并具有良好的数学背景。
2)特定应用 - 对于工厂自动化/管理,响应性和快速访问非常重要。 OODBMS比RDBMS更快。如果您考虑进行Web开发,那么像MySQL这样的轻量级工具将非常适合。
3)趋势 - 现在存在从Legacy / Structural到面向对象/组件的编程的范例。因此,在这种趋势下,OODBMS最适合工厂管理等企业应用。
答案 3 :(得分:0)
这取决于使用的应用层。如果这是一种简单的方法,更倾向于程序方式[也可以有类] RDBMS更适合。否则,如果您更倾向于使用严格的面向对象系统,可以使用OODBMS。
答案 4 :(得分:0)
我通常在需要将它们集成到企业系统中时绘制有用性。如果您的项目不一定需要集成,ODBMS通常更容易或技术上更优越。如果您可以通过Web服务或“推/拉”集成到企业系统数据库中,那么您仍然可以使用ODBMS,但可能存在政治压力。 (较新的ODBMS / RDBMS复制,如dRS for db4o可能非常合适)但是如果您需要与传统或企业数据存储紧密集成,那么您通常会因某种原因被迫使用RDBMS。
也就是说,您的个人生产线可能会从ODBMS中受益匪浅,ODBMS非常适合存储不断变化的复杂对象模型和模式,而协调系统可以遵循我之前的思路。
我多年来一直在使用ODBMS,并且一直担心这个项目需要我回归纯粹的关系数据管理。虽然最近ORM工具的改进使关系更加愉快,但ORM + RDBMS解决方案仍然无法跟上几个关键领域的ODBMS系统(参见odbms.org上的previously mentioned article)。 / p>