它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用"矩形框"表示实体型,矩形框内写明实体名称;用"椭圆图框"表示实体的属性,并用"实心线段"将其与相应关系的"实体型"连接起来;
一个"方框与箭头"的绘图工具,帮助用户建立ER图来描绘数据。
在ER图中氢商导皮诗指保名连有如下四个成分:
矩电危空均扬经理气凯形框:表示实体,在量罗克剂皮采息历负背框中记入实体名。
椭圆形框:表示实体或联系的属性济州攻拉步编航,将属性名记入框中。对于宪主属性名,则在其名称下划一下划线。
连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系很补油温凯等充志秋念,要在两个实体连线持目送味院真积信玉方向各写1;对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)
实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。如果是多值属性的话,在椭圆形外面再套实线椭圆。如果是派生属性则用虚线椭圆表示。
实体-联系数据模型中的联系型,存在3种一般性约束:一对一约束(联系)、一对多约束(联系)和多对多约束(联系),它们用来描述实体集之间的数量约束:
(1)一对一联系(1∶1)
头对于两个实体集A日套磁况还息和B,若A中的每一个值在B中至多有一个实体值与之对应,反之亦然,则称实体集A和B具有一对一的联系。
一个学校只有一个正校长,而一个校长只在一个学校中任职,则学校与校长之间具有一对一联系。
对于两个实体集A和B,若A中的每一个值在B中有多个实体值与之对应,反之B中每一个实体值在A中至多有一个实体值与之对应,则称实体集A和B具有一对多的师者测执剂广联系。
例如,某校教师与敌革诗样失格丝外课程之间存在一对多的联系"教",即每位教师可以教多门课倍余国陆即他仍松程,但是每门课程只能由一位教师来教。一个专业中有若干名学生,而每个学生只在一个专业中学习,则专业与学生之间具有一对多联系
(3斤岩六他精巴进下教)多对多联系(M∶N)
对于两个实体集A和B,若A中每一个实体值在B中有多个实体值与之对应,反之亦然,则称实体集A与实体集B具江地临斗扬乱推事说它有多对多联系
实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。效稳担铁甲联系是随着数据库语义而改变的,假如有如下3种语义规定:
例如,一个部门有一个经理,而每个经理只在一个部门任职,则部门与经理的联系是一对一的。
一个员工可以同时是多个部门的经理,而一个部门只能有一个经理,则这种规定下"员工"与"部门"之间的"管理"联系就是1:n的联系了。
一个员工可以同时在多个抓尼称皇火候龙新革甚督部门工作,而一个部门有多个员工在其中工作,则"员工"与"部门"的"工作"联系为m:n联系。
(1)确定所有的实体集合;
(2)选择实体集应包含的属性;
(3)确定实体集图站之间的联系;
(4)确定实体集的关键字,用下划线在属性上表明关键字的属性组合;
(5)确定联系的类型,再用线将表示联系的菱形框联系到实体集时,在线旁注明是1或n(多)来表示联系的类型。
(1)选择局部应用在需求分析阶段,通过对应用环境和要求进行详尽的调查分析,用多层数据流图和数据字典描述了整个系统。
设计分E-R图的第一步,就是要根据系统的具体情况,在多层的数据流图中选择一个适当层次的(经验很重要)数据流图,让这组图中每一部分对应一个局部应用,我们即可以以这一层次的数据流图为出发点,设计分E-R图。一般而言,中层的数据流图能较好地反映系统中各局部应用的子系统组成,因此人们往往以中层数据流图作为设计分E-R图的依据。
(2)逐一设计分E-R图每个局部应用都对应了一组数据流图,局部应用涉及的数据都已经收集在数据字典中了。现就是要将这些数据从数据字典中抽取出来,参照数据流图,<1>标定局部应用中的实体,<2>实体的属性、标识实体的码,<3>确定实体之间的联系及其类型(1:1、1:n、m:n)。
下面是对<1>、<2>和<3>步骤的具体说明:
<1>标定局部应用中的实体现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象和实体之间是"ismemberof"的关系。例如在学校环境中,可以把张三、李四、王五等对象抽象为学生实体。对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型之间是"ispartof"的关系。例如学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码。
各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。
1.属性冲突。
(1)属性域冲突,即属性值的类型、取值范围或取值集合不同。例如:属性"零件号"有的定义为字符型,有的为数值型;
(2)属性取值单位冲突。例如:属性"重量"有的以克为单位,有的以公斤为单位。
2.命名冲突。
(1)同名异义。不同意义对象相同名称;
(2)异名同义(一义多名)。同意义对象不相同名称。例如:"项目"和"课题"。
3.结构冲突。
(1)同一对象在不同应用中具有不同的抽象。例如"课程"在某一局部应用中被当作实体,而在另一局部应用中则被当作属性;
(2)同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同;
(3)实体之间的联系在不同局部视图中呈现不同的类型。例如实体E1与E2在局部应用A中是多对多联系,而在局部应用B中是一对多联系;又如在局部应用X中E1与E2发生联系,而在局部应用Y中E1、E2、E3三者之间有联系。解决方法是根据应用的语义对实体联系的类型进行综合或调整。