面向对象和面向对象关系型数据库的区别

13

我一直在阅读有关数据库模型的资料,但仍不明白面向对象和面向对象关系模型之间的根本区别。

到目前为止,我了解到面向对象关系数据库也是支持对象的关系数据库。那么面向对象数据库有何不同?(除了不支持关系模型外)

面向对象数据库是否还在于赋予对象方法-行为(就像OO编程语言中一样),而面向对象关系数据库只将其视为具有属性和对其他对象的引用的结构?如果是这样的话,如何在OO数据库中使用这些对象方法呢?

2个回答

12

这两种模型非常相似:类映射到表格,列映射到字段,实例映射到行,对象引用映射到外键。实际上,ORM试图尽可能地接近这两种模型,而它们在这方面相当成功。

区别主要在于数据库的使用方式,它们的不同在于“风格”和所使用的模式。

对象数据库基本上就像您使用关系数据库上的ORM一样。您可以直接将对象(或对象图)存储到数据库中,而无需编写INSERT语句。其接口通常不是SQL。

它们如此相似,以至于很难区分它们。如果您对某些(具体)方面感兴趣,请留下评论。


问题1:在面向对象模型中,数据库仍然使用表的概念吗? 问题2:对于具有某些方法的对象,是否存在访问器和修改器方法(我读到所有属性都被封装),以及像getPricer()这样的方法,它首先计算价格,然后返回它? 问题3:OO数据库的接口示例是什么? - ps-aux
在面向对象模型中,它不称之为表格而是类。并非每个面向对象数据库都有这种概念;数据库存储数据,而不是代码。如果您检索到一个恰好定义了方法的对象实例,则这些方法将在该对象上可用。如果通过重新编译更改可用的方法,则新方法将在下一次程序运行时可用。db4o是我使用过的一个示例项目。http://www.db4o.com/ - usr

4
在面向对象的模型中,我们会直接将对象存储到数据库中,通过这种方法,我们可以将图像、视频和音频存储到数据库中。但在对象关系型数据库中,我们会以关系的形式存储数据,并且也是间接地进行存储。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接