数据库:实体关系图(ER图)「建议收藏」常用的数据网站汇总

1,组成元素

元素 描述 表示形似
实体 客观存在并可以相互区别的事物 用矩形框,矩形框内写明实体名
属性 实体所具有的一个属性 用椭圆型表示,并用无向边将其与相应的实体连接起来
关系 实体和实体之间以及实体内部的关系 用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁边标上联系的类型

2,关系详解

一对一:一对一关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。

数据库:实体关系图(ER图)「建议收藏」数据库:实体关系图(ER图)「建议收藏」

一对多:一对多关系是指实体集A与实体集B中至少有NN>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

数据库:实体关系图(ER图)「建议收藏」数据库:实体关系图(ER图)「建议收藏」

多对多:多对多关系是指实体集A中的每一个实体与实体集B中至少有MM>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

数据库:实体关系图(ER图)「建议收藏」数据库:实体关系图(ER图)「建议收藏」

3,实例详解

问题描述:

  • 一个学生可选修多门课,一门课有若干学生选修;
  • 一个教师可讲授多门课,一门课只有一个教师讲授;
  • 一个学生选修一门课,仅有一个成绩。
  • 学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。

ER图:

数据库:实体关系图(ER图)「建议收藏」数据库:实体关系图(ER图)「建议收藏」

4,ER图的集成

确定公共实体类型:一般仅根据实体型名称和主键来认定公共实体型,即把同名实体型作为一个候选的公共实体型或把具有相同主键的实体型也作为一个候选的公共实体型。

合并分ER图:采用逐步合并的方式,首先将两个具有公共实体型的分E-R图进行合并,然后每次将一个新的、与前面已合并的E-R图具有公共实体型的分ER图合并起来……这样即可最终获得全局的初步E-R图。

检查并消除冲突:各个局部应用所面向的问题不同,各个子系统的E-R图之间必定会存在许多不一致的地方,称之为冲突。冲突类型:属性冲突、命名冲突、结构冲突。

属性冲突 属性域冲突,即属性值的类型、取值范围或取值集合不同 零件号,有的部门把它定义为整数,有的部门把它定义为字符型。
属性取值单位冲突 零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位
解决办法 通过讨论、协商等行政手段加以解决。
命名冲突 同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。 对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。
异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。
通过讨论、协商等行政手段加以解决
结构冲突 同一对象在不同应用中具有不同的抽象 职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性
把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象
一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同。 实体E1在ER1中三个属性,在ER2中四个属性。
使该实体的属性取各子系统的E-R图中属性的并集,再适当调整属性的次序。
实体间的联系在不同的E-R图中为不同的类型。 实体E1E2在一个E-R图中是多对多联系,在另一个E-R图中是一对多联系
是根据应用的语义对实体联系的类型进行综合或调整。

5,ER图的优化

所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。

(1)实体型的合并,以减少实体类型的个数:合并不是指前面的“公共实体型”的分E-R图的合并, 而是指两个有联系的实体型的合并。

例如:两个具有1:1联系的实体型通常可以合并成一个实体型。

对于具有相同主键的两个实体型, 如果经常需要同时处理它们, 则也可以将它们合并, 但可能产生大量的空值。

(2)尽可能消除实体中的冗余属性:通常在各个分E-R图中是不允许冗余属性存在的, 但在合并为全局的初步E-R图以后, 可能产生全局范围的冗余属性。

例如:在某大学的数据库设计中, 一个分E-R图中可能有已毕业学生数、招生数、在校学生数和即将毕业的学生数,而另一个分E-R图中可能有毕业学生数、招生数、各年级在校学生数和即将毕业学生数,则这两个分E-R图自身都没有冗余,但合并为一个全局E-R图时,“在校学生数”就成为冗余属性,因此可以考虑将其删除。

(3)尽可能消除冗余的联系:除分析的方法外, 还可应用规范化理论来发现和消除冗余的联系。

确定分E-R图实体之间的数据依赖。实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。于是有函数依赖集FL

求FL的最小覆盖GL,差集为 D=FL-GL。逐一考察D中的函数依赖,确定是否是冗余的联系,若是,就把它去掉。

例如:部门和职工之间有一个一对一的 “领导”联系和一个一对多的“属于”联系 , 其“属于”联系表示为:  职工号→部门号。而其“领导”联系则应表示为:负责人.职工号→部门号  或  部门号→负责人.职工号。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注