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

时间:2009-10-05 09:54:19

标签: object orm role database-design object-role-modeling

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

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:4)

对象角色建模是由控制数据团队于1973年左右发明的,由Falkenberg命名。它是一种植根于语言分析的建模方法,并由Terry Halpin形式化为一阶逻辑,见http://orm.net。因此,ORM是首字母缩略词的原始用户。 ORM和相关的建模语言通过无属性来区分。这些语言仅包含对象和对象类型(事物种类),事实和事实类型(单个事物之间的关系)和约束(关于可能存在的事物和关系的规则)。没有关系具有像entity-attribute这样的主从属性 - 这是一种只在物理映射期间出现的概念,因为它与域的底层语义无关。

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

当然,关系模型和o-o模型都可以从ORM模型自动派生,派生形式之间的映射也是自动且无痛的。我想这不是经常做的,因为它会让生活变得简单。

答案 2 :(得分:3)

您正在将苹果公司与橘子公司合作。 对象关系映射就是试图克服对象世界和关系数据库之间的阻抗msimatch。

例如,Activerecord是一个包装数据库中一行的ORM。 Hibernate是另一种流行的ORM

只是google for ORM wikipedia解释得更好

http://en.wikipedia.org/wiki/Object-relational_impedance_mismatch