对象角色建模和对象关系映射之间的区别是什么?

Coo*_*uke -1 orm database-design object role object-role-modeling

我已经了解了对象角色建模,但没有了解对象关系映射,我想知道它们是否有两种方法可以做同样的事情,有哪些优点和缺点?对我来说,对象角色建模更有意义.如果可以比较它们,你能做一个简短但易于理解的比较.干杯

Jor*_*bot 7

对象角色建模:软件建模符号,特别是定义域模型.您可以将此语言视为使用UML类图来设计数据库的替代方法.更多信息:http://www.orm.net/

对象关系映射:一组弥合面向对象程序和关系数据库之间差距的策略.它旨在允许在关系数据库结构中持久存储对象


cli*_*ath 5

对象角色建模由Control Data的一个团队在1973年左右发明,并由Falkenberg命名。它是一种基于语言分析的建模方法,由Terry Halpin正式定义为一阶逻辑,请参阅http://orm.net。因此,ORM是该缩写的原始用户。ORM和相关的建模语言的区别在于没有属性。这些语言仅包含对象和对象类型(事物的种类),事实和事实类型(个体事物之间的关系)和约束(关于事物和关系可能存在的规则)。没有一种关系具有像实体属性这样的主从特性-这是一个仅在物理映射期间出现的概念,因为它与域的底层语义无关。

对象关系映射(我总是写O / RM)是一种方法或一系列工具的名称,这些方法或工具可以帮助在关系形式和面向对象形式之间转换数据。这两种形式都使用基于属性(实体/属性或对象/属性)的聚合或复合事物,但是两种方法之间的聚合原理不同,因此相同的基础语义导致不同的数据结构。因此需要工具来帮助自动化翻译。此外,在ER或OO分析中,迫切需要对哪些事物是对象/实体以及哪些属性进行早期决策,这引起了一整类建模错误,而ORM根本不会发生。

当然,关系模型和oo模型都可以从ORM模型中自动导出,并且导出形式之间的映射也是自动且轻松的。我想这不是经常做的事情,因为这会使生活变得很轻松。