use*_*664 0 erd relational-model
当我问起关于EER模型的问题时,当有人谈到关系模型时,我感到困惑.我已经了解了ER和EER图之间的区别,但我想了解整个建模过程......我知道EER是增强型ER模型,即具有专业化/泛化的ER模型.
当有人说ER建模时他也暗示了EER建模吗?
那么数据库规范化呢?这只适用于关系图吗?
ER模型最初由Peter Chen于1976年推出,尽管它受到早期工作的影响.在20世纪80年代早期,它几乎专门用于在概念层面对数据进行建模,其主要价值在于它在实施方面是公正的.尽管将ER模型转换为关系模型已经并且仍然非常容易,但在最终实现是某种类似IMS的关系前DBMS的情况下,ER模型也被认为是有用的.它也被用于项目的初步阶段,最终的实现是在某种非结构化或后关系型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建模中存在一个很容易产生的建模错误,它几乎总是与逻辑层面的规范化错误相关联:它将属性与错误的实体相关联,或者将两个不同的属性合并为一个属性.
我可以继续,但这已经太久了.