你有倒退。
ER模型中的关系是显式定义的,而在关系模型中则是隐式的。
否。每个关系模型(RM)数据库基表和查询结果都代表一个应用程序关系。实体关系建模(E-RM)模式只是一种组织(但使用不足和指定不足)(但存在误解)关系表和约束的方式。
关系模型需要一个中间表(通常称为“连接表”)来保存两个实现多对多关系的外键。
不会。对象关系映射(ORM)方法掩盖了其潜在的直接关系应用程序关系,表和约束。“连接表”的概念源于ORM对E-RM的混淆表示的误解,而E-RM本身却误解了RM。
正如CJ Date所说的,《数据库系统简介》,第8版:
对[Chen的原始论文]的慈善阅读会表明E / R模型确实是一种数据模型,但实际上它只是基本关系模型之上的一薄层 [p 426]
对于IT领域的现状,令人遗憾的是,即使简单的解决方案也太过流行,它们仍然很受欢迎。[p 427]
关系模型
每个关系表都代表一个应用程序关系。
-- employee EID has name NAME and ...
E(EID,NAME,...)
这种事物以及代表一个事物的数学有序元组的数学术语是“关系”。因此是“ 关系模型”(和“实体关系模型”)。在数学中,关系经常通过参数化语句模板来描述,其中一个数学术语是“特征谓词”。谓词的参数是表的列。在RM中,DBA为每个基表提供了一个谓词,用户将根据列值和谓词构成真实语句的行放入表中,而将构成错误语句的行排除在外。
/* now also employee 717 has name 'Smith' and ...
AND employee 202 has name 'Doodle' and ...
*/
INSERT INTO E VALUES (EID,NAME,...)
(717,'Smith',...),(202,'Doodle',...)
查询表达式还具有从关系运算符和逻辑运算符(在条件中)构建的谓词。它的值还包含使谓词为true的行,并保留使谓词为false的行。
/* rows where
FOR SOME E.*, M.*,
EID = E.EID AND ... AND MID = M.MID
AND employee E.EID has name E.NAME and ...
AND manager M.MID has
AND E.DEPT = M.DEPT AND E.NAME = 'Smith'
/*
SELECT E.*, M.MID
FROM E JOIN M ON E.DEPT = M.DEPT
WHERE E.NAME = 'Smith'
现在的表行构成真实的语句,而缺少的行构成虚假的语句,这是我们记录数据库中应用程序情况的方式,以及我们如何解释数据库对应用程序情况的看法。如果没有和理解谓词即应用程序关系,就无法使用或解释数据库。
实体关系建模
E-RM(并不真正理解RM)本质上是一种(不需要的,受限制的和限制性的)图解表示法,用于描述关系数据库(的某些部分)(受限形式)。最初有“实体(类)”图标/关系,其中候选键(CK)值与应用程序实体加上其他列(“实体”的“属性”)为1:1,并且有“关系(类)”图标/ tables具有指向实体表的外键(FK)的外键(FK),这些表代表多个实体上的应用程序关系以及其他内容(“关联”的“属性”)。应用程序关系由带有线的图标表示,该线与参与其中的各种实体图标相关。(即,这些行代表FK。
E-RM不了解关系模型。它在应用程序实体和关系之间做出了毫无意义的误导性区分。毕竟,每个基本表或查询结果的每个超键(唯一列集)与某个应用程序实体1:1对应,而不仅仅是具有实体表的那些。例如,人们可以通过结婚而结伴;但是每个这样的关联与称为婚姻的实体都是1:1。这导致不适当的标准化和约束,因此导致冗余和完整性损失。或者,当这些步骤适当完成时,将导致ER图没有实际描述应用程序,而该关系图实际上是由关系数据库谓词,表和约束条件描述的。然后,ER图既模糊,又多余又是错误的。
速记E-RM和ORM
许多声称是E-RM的演示文稿和产品扭曲了E-RM,更不用说RM。他们使用“关系”一词来表示FK约束。这产生如下。当E-RM关系为二进制时,它是一个符号,其FK带有两行。因此,这三件事可以用FK之间的一行代替。这种线的表示特定的二元关系和FKS,但现在虽然ER关系是手写版本明确的,它是由表中反映了ER关系并没有在图中明确哪些图是图片,即在他们描述的关系数据库。这称为“连接表”。人们谈论该行/表是/表示“ X:Y关系”却没有真正注意到这是一种特殊的应用程序关系。在相同的两个实体和/或关联之间可以有许多这样的应用程序关系。
ORM也这样做,但也仅用其FK替换n元关联,以便进一步模糊关联的应用程序关系和表。Active Records通过一次定义几个速记关系及其表而变得更进一步,这等效于F-K线和速记E-RM图中的关联图标链。许多建模技术(包括E-RM和ORM的版本)都加剧了这种情况,他们还认为应用程序关系只能是二进制的。同样,这是历史上由于对RM缺乏了解而引起的。
本文探讨了实体关系模型(ER模型)与关系模型之间的差异。ER模型中的关系是显式的,而关系模型的关系是隐式的。ER模型有时会导致不适当的标准化和约束,而关系模型则更直接地反映应用程序关系。ORM方法常常混淆了ER模型和关系模型的表示,导致误解。关系模型中的每个表都代表一个应用程序关系,而ER模型则被批评为在理解和表示关系模型时存在局限性。
490

被折叠的 条评论
为什么被折叠?



