2014-09-12 633 views
0

当我问一个关于EER模型的问题时,当有人谈到关系模型时,我感到困惑。我了解了ER和EER图之间的区别,但我想了解整个建模过程......我知道EER是增强的ER模型,即具有专业化/泛化的ER模型。关系图,ER图和EER图之间有什么区别

当有人说ER模型时,他是否也意味着EER建模?

那么数据库规范化呢?这只适用于关系图吗?

回答

5

ER模型最初由Peter Chen在1976年引入,尽管它受到了早期工作的影响。在20世纪80年代早期,它几乎完全用于概念层面的数据建模,其主要价值在于它在实施方面没有偏见。虽然将ER模型转换为关系模型并非易事,但在某些情况下,ER模型也被认为是有用的,在某些情况下,最终实现将成为像IMS这样的预关系数据库管理系统。它也被用于初步阶段,其最终实现将在某种非结构化或后关系DBMS或对象数据库中。

许多从业者将ER建模和关系建模合并在一起,并提出了一个兼顾两种用途的单一模型。虽然这两种模式有很多重叠,但是这些差异足够重要,因此合并它们两者会使它们都流失。当涉及ER图时,这种合并最为明显。即使他们使用ER图表约定,许多(也许大部分)所谓的ER图表都是真正的关系模型。

在关于ER的维基百科文章中,它提到了经典的三层:概念性,逻辑性和物理性,并将它们视为ER模型中的所有变体。这不是20世纪80年代的情况。 ER模型是概念性的。逻辑模型是关系型的,前提是最终目标是成为关系数据库。物理层面是DBMS特有的,并试图满足性能和容量目标以及逻辑和概念层面的更抽象的目标。

所有这些都可能是古老的历史,甚至是永远年轻的IT世界中的前期历史。

最大的区别在于外键在ER模型中不存在。关系在ER模型中是可见的,但ER没有说明如何实施。外键只是实现关系的一种方式。在关系数据库中,它们是唯一有意义的方法。 ER还可以直接模拟多对多关系,而不会将另一个实体置于中间。关系模型需要一个中间表(通常称为“接线盒”)来容纳两个实现多对多关系的外键。

EER中包含的增强功能主要包括在建模约定中添加gen-spec(超类/子类)和联合。到目前为止,这些几乎是ER的一部分,所以EER这个术语真的是一个历史性的事故。

最初开发的规范化是关系数据库设计的适当部分。它不能真正应用于非关系情况下,而不会大幅混淆正常形式(1NF到5NF和DKNF)。恰当地说,归一化在ER建模中是不相关的。但是,有一个建模错误易于进行。在ER建模中,几乎总是与逻辑级别的规范化错误相关联:它将属性与错误的实体相关联,或将两个不同的属性合并为一个。

我可以继续,但这已经太长了。

+0

谢谢,这真的清除了一些混乱。我印象中你仍然以1980年的方式来看待这些概念,即ER模型=概念性的,关系模型=逻辑的,物理的= RDBMS特定的。你是否建议我仍然以这种方式来看待它,还是应该使用维基百科,将ER模型视为概念,逻辑和物理模式的超集? – user1534664 2014-09-13 12:46:14

+0

让我问一个和我以前的评论类似的问题:如果我的教科书中有一个任务说“创建一个ERD来模拟这个业务场景”,这是否意味着他们想要我创建一个概念模型或逻辑模型? 另外,让我只说一次,我不能强调我多么感激。你回答了我以前关于ERD的4个问题。我终于开始理解数据库建模的全貌了,感谢你和我的时间花费了几个小时的时间试图了解维基百科:) – user1534664 2014-09-13 13:26:31

+0

我仍然认为我在思维方式,概念,逻辑和物理方面的思维方式。我不再专业建立数据库。我会把它留给其他人来提出是否遵循维基百科在这方面的领先地位的建议。我肯定会推荐一件事。了解分析和设计之间的区别,如果您还没有学习它的话。在尝试提出解决方案之前,花费适当的时间分析问题。这是大多数IT专业人员必须努力学习的东西,许多人必须学习不止一次。 – 2014-09-13 13:40:47

相关问题