ER图和EER图之间的区别

时间:2012-03-28 10:55:06

标签: database entity-relationship erd eer-model

ERD(实体关系图)和EERD(增强实体关系图)之间有什么区别?

3 个答案:

答案 0 :(得分:28)

实体 - 关系模型

您有关系(image source

example for an relationship

和属性(image source

example for an attribute

也可以是主键(image source

example for an primary key

增强的实体关系模型

您与ER型号相同

专业化

enter image description here

分区(多个专业化)

概括

聚合

键的注释不同:

enter image description here

答案 1 :(得分:4)

我想补充一点,ER模型是基本模型,它具有关系代数所需的一切(包括ISA层次结构 - 吸入和其他我不记得的东西)。并且更抽象(所以每个框都不一定是数据库表,而另一些方法可以超过1个表)

EER模型更接近真实数据库的样子。所以每个盒子实际上都是桌子。

我认为接受的答案也是正确的,但在我看来(没有在任何地方读过这些我认为是这样的)EER的创建是为了帮助人们设计数据库甚至更多的基本关系代数。使用ER的关系代数为您提供了建模数据库所需的一切,但是您需要一些编译器将ISA层次结构和关系转换为实际表格,并使用EER获得您所看到的内容。我正在使用它们来设计表格 - ER更合乎逻辑,因为它从继承的东西中抽象出来,因为你只是告诉你的ER工具我想要继承它,你不必创建2个表。但是EER更好,因为你看到了你得到的东西。

结论:ER是基本原则,EER是实际工作中较少抽象的一点工具。

(关于关系代数的我的理论知识太生疏了,所以我希望我记得一切正确,如果我错了,请纠正我)

答案 2 :(得分:4)

增强型ER模型添加的主要功能是专业化/概括和联合。其中Gen-spec是最常出现在Stackoverflow问题答案中的。

Gen-spec是ER建模中对象建模中类 - 子类的对应物。举例说明:汽车可以是汽车或卡车。像货物空间这样的功能属于卡车但不属于汽车。因此,有一些功能适用于广义实体,但这些功能也只适用于其中一个专业化。

很多时候,人们都会来到这里,询问有关gen-spec案例的表设计问题。但是他们并没有认识到这一点,因为他们在开始的数据库教育中从未被引入过gen-spec。

另一种说法是,他们被教导如何建模和实施"有一个"关系,但不是如何建模和实施"是一个"关系。