【问题标题】:What are the difference between OODB & oopOODB和oop有什么区别
【发布时间】:2016-11-14 18:55:22
【问题描述】:
o-o DB 和 o-o 编程语言有什么区别?
o-o DB 是否具有 o-o 编程中的所有功能,例如:
- 协会
- 多态性
- 封装
- 多重继承
我找不到直接的答案
【问题讨论】:
标签:
oop
object
object-oriented-database
【解决方案1】:
最初有过程语言,数据使用表中的外键进行关系存储。
在引入 OOP 语言后,开发人员社区观察到 OOP 语言和 DB 两个实体之间的不匹配。由于关系模型不支持 OOP 概念。它引起了很多问题,其中很少是:
-
粒度 - 因为我们可以清楚地看到类总是多于表。
-
身份 - DB 有主键之类的概念,但在 OOP 语言中不存在
-
关联 - OOP 支持 has-a 和 is-a 关系,但在关系数据库中我们缺少 is-a 关系。
为解决这种范式不匹配问题,很少有供应商想出 OODB 系统。
OODBS 更像是一个扩展而不是数据存储。这提供了与 OOPL 的无缝集成。不幸的是,这类数据库的标准并没有太多工作,而且它还不够成熟,无法在开发人员中流行。
今天流行的解决 OOPL 和关系数据库之间不匹配的解决方案称为 ORM 解决方案,就像我们有 Hibernate for Java。