ERD(实体关系图)和EERD(增强实体关系图)有什么区别?
3 回答
我要补充一点,ER 模型是基本模型,它拥有关系代数所需的一切(包括 ISA 层次结构 - 继承和其他我不记得的东西)。并且更抽象(因此每个框不必是数据库表,而某些框的其他方式可以多于 1 个表)
EER 模型更接近真实数据库的样子。所以每个盒子实际上都是桌子。
我认为公认的答案也是正确的,但在我看来(没有在任何地方读过这篇文章,我只是认为它是这样的)创建 EER 是为了帮助人们设计数据库,而不是基本的关系代数。带有 ER 的关系代数为您提供了建模数据库所需的一切,但您需要一些编译器,它将 ISA 层次结构和关系转换为实际的表,并使用 EER 获得您所看到的。我使用两者来设计表 - ER 更合乎逻辑,因为它使您从继承之类的东西中抽象出来,因为您只需告诉您的 ER 工具我希望它从中继承,而您不必创建 2 个表。但是 EER 更好,因为你看到你得到了什么。
结论: ER 是基本原理,EER 是用于实际工作的更好的工具,抽象程度较低。
(我的关系代数理论知识太生疏了,所以我希望我记得一切正确,如果我错了,请纠正我)
增强型 ER 模型添加的主要功能是专业化/泛化和联合。在这些 Gen-spec 中,最常出现在 Stackoverflow 问题的答案中。
Gen-spec 在 ER 建模中是对象建模中类子类的对应物。举例说明:机动车辆可以是汽车或卡车。货物空间之类的功能与卡车有关,但与汽车无关。因此,有些特征适用于泛化实体,但也有仅适用于其中一种专业的特征。
很多时候,人们来这里询问有关 gen-spec 案例的表格设计的问题。但他们并不承认这一点,因为在他们开始接受关于数据库的教育时,他们从未被介绍过 gen-spec。
另一种说法是,他们被教导如何建模和实现“具有”关系,而不是如何建模和实现“是”关系。