实体-联系模型(ER图)
ER模型的基本组成要素
实体(Entity)
联系(Relationship)
属性(Attribution)
实体
实体:一个数据对象,指应用体中客观存在的事物
实体类:由同一类实体构成
实体类的一个实例是一个实体
实体型:对该类实体的定义,表示实体类的特征
以上三者在不引起混淆的情况下统称为实体
在ER模型中,实体用方框表示,方框内注明实体的名称
例如
学生
联系
联系:表示一个或多个实体之间的关联关系
联系类:由同一类联系构成
联系类的一个实例是一个联系
联系型:对该类联系的定义,表示联系类的特征
以上三者在不引起混淆的情况下统称为联系
在ER模型中,联系用菱形框表示,框内注明联系名;并用线段将其与相关的实体连接起来,从起读实体到联系用箭头指出
例如
工作于
联系的例子
联系:职工在部门工作
联系:学生在教室听老师讲课
职工
部门
工作于
学生
老师
听课
教室
联系中实体的角色
在联系中,实体的角色指的是该实体在该联系中所起的作用
在联系中,实体的角色具有相对性,例如
职工之间的领导联系中,职工甲是经理;而在职工之间的结婚联系中,职工甲是丈夫
职工
领导
职工
结婚
职工之间的管理联系
职工之间的结婚联系
联系的度数
联系的度数是指联系所涉及的实体数
按照联系的度数,可以把联系分成以下几类:
两实体联系:涉及两个实体的联系
单实体联系:涉及单个实体的联系
多实体联系:涉及两个以上实体的联系
两实体联系的例子
职工
部门
工作于
读者
图书
借阅
职工在部门工作
读者借阅图书
单实体联系的例子
职工
领导
职工
结婚
职工领导职工
职工与职工结婚
在单实体联系中,可是省略箭头
多实体联系的例子
学生
老师
听课
教室
供应商
原料
供应
项目
学生在教室听老师讲课
供应商给项目供应原料
联系的连接性
联系的连接性表示联系所涉及的各个实体类中,实体之间的对应情况
按照联系的连接性,可以把联系分成以下几类
一对一联系
一对多或多对一联系
多对多联系
表示方法
“1”方:在连线上方用“1”表示
“多”方:在连线上方用“M”、“N”、“P”等表示
一对一联系的例子
职工与职工结婚
职工
结婚
1
1
职工使用电脑
职工
电脑
使用
1
1
一对多联系的例子
职工在部门工作
职工
部门
工作于
M
1
职工领导职工
职工
领导
M
1
导师指导研究生
导师
研究生
指导
1
M
多对多联系的例子
职工在部门工作
职工
项目
参加
M
N
供应商给项目供应原料
M
供应商
原料
供应
项目
M
N
P
联系的基数
联系的基数是指联系所涉及的各个实体类中,对应实体数的最大值和最小值
联系的基数可以帮助对数据容量和数据冗余程度的估计
实体在联系中的存在性
一个实体在一个联系中的存在性有下列三种类型:
强制存在:如果联系一端的实体实例对于该联系的其他实体的实例必须存在,则称该实体是强制存在的,即该实体的最小基数是1
可选存在:如果联系一端的实体实例对于该联系的其他实体的实例不要求一定存在,则称该实体是可选存在的,即该实体的最小基数是0
未知存在:表示目前不知道是强制存在的还是可选存在的
实体存在性的表示方法
强制存在:在连线中划“1”
可选存在:在连线中划“0”
未知存在:在连线中既不划“1”,也不划“0”
实体强制存在的例子
职工在部门工作
职工
部门
工作于
M
1
1
1
汽车属于车主
汽车
车主
属于
M
1
1
1
实体可选存在的例子
导师指导研究生
导师
研究生
指导
1
M
1
0
职工参加项目
职工
项目
参加
M
N
1
0
属性
属性:不可分割的数据单位,用于描述实体或联系所具有的特征
标识:在一个实体的属性中,能够唯一标识实体的属性集称为标识
标识属性:属于标识的属性
非标识属性:不属于标识的属性
在ER模型中,属性用椭圆形框表示,框内注明属性名;其中标识属性在属性名下加下划线;用线段与实体或联系相连
例如
标识属性
非标识属性
工号
姓名
实体与属性的例子
学生
学号
姓名
性别
出生日期
入学时间
专业
联系与属性的例子
供应商给项目供应原料
供应商
原料
供应
项目
M
N
P
供应量
注:联系本身没有标识
有关联系的属性的处理方法
对于一对一联系,联系的属性可以放入任何一方实体中,作为实体的属性
对于一对多联系,联系的属性可以放入“多”方实体中,作为实体的属性
对于多对多联系,不能把联系的属性放入相关的实体中,否则就会产生多值属性
多值属性:在实体属性中,对应于一个标识值,某个属性的值不止一个,这个属性称为多值属性
多值属性可以另设为一个实体或联系
例子
职工
部门
工作于
M
1
1
1
工号
姓名
年龄
参加工作时间
经理
部门号
职工
部门
工作于
M
1
1
1
工号
姓名
年龄
参加工作时间
经理
部门号
职工
项目
参加
M
N
1
0
工号
姓名
年龄
参加项目时间
项目名
项目号
经理