ER模型学习
1.实体(entity)就是具有公共性质的可区别的现实世界对象的集合。例如CAP数据库
中的客户,代理商、产品都为实体。分别表示不同对象的集合。数学表述中通常用一个
大写字母代表实体,一个实体E由一个现实世界对象的集合构成,使用小写字母加下标
表示这些对象:E={e1,e2,....,en}.
2.属性(attribute)是描述实体或者联系的性质的数据项,在实体的定义中说,属于一个实体
的所有实体实例具有共同性质,这些性质就是属性。在一个实体中,能够唯一标识实体的实例
的属性或属性集合称为实体标识符(主键)。属性域是属性的可能取值范围,也称为属性的值域。
属性的分类:
基本属性和复合属性
基本属性石不可再分割的属性,复合属性石可再分解为其他属性的属性。例如性别,年龄,为基本属性;
地址属性为复合属性,因为地址可以分解为邮编、省(市)、县(区)、街道等子属性。
单值属性和多值属性
单值属性指的是同一实体的属性只能取一个值,多值属性指同一实体的某些属性可能取多个值,例如
年龄属性只能取一个值,是单值属性;学位是多值属性,可以去学士、硕士、博士多个值,爱好也是多
值属性。
导出属性和空值属性
通过具有相互依赖的属性推导而产生的属性称为导出属性,例如:年龄可以由出生年份导出;当实体的实例
在某个属性上没有值时,应使用空值(NULL),NULL还可以用以值未知,可以使用null的属性称为空值属性;
3.联系(relationship):给定m个实体的有序列表:E1,E2,.....Em(列表中同一实体可以出现多次),
一个联系R定义了这些实体实例之间的对应规则。联系表示一个或多个实体之间的关联关系,联系是实体之间的
一种行为,一般用动词(英语用动名词)来命名联系。
联系的元数
一个联系涉及到的实体个数,称为该联系的元数或度数。同一个实体的实例之间的联系称为一元联系,也称为递归联系;
两个不同实体的实例之间的联系称为二元联系;三个不同实体实例之间的联系称为三元联系;以此类推。
联系的属性
联系也可以有附加的属性。经常先不考虑ER图中的的联系的属性。集中精力考虑实体的联系、
联系中实体的基数
两个有联系R的实体E和F,E中每个实例可能与F中的实例联系,(联系实例数目大于0),也可能没有与F中的实例联系(联系实例数目等于0)
E中每个实例与F中有联系实例数目的最小值和最大值,称为E的基数。记作mincard(E,R)和maxcard(E,R)。同理有mincard(F,R)和
maxcard(F,R)。
联系中实体的基数
例如学生实体E和课程实体F有选修联系R,每位学生至少选1门课,最多选10门课;每门课程最多100人选,至少可以没人选。则有:
mincard(E,R)=1,maxcard(E,R)=10。
mincard(E,R)=0,maxcard(F,R) = 100。
一个实体E参与联系R,并且mincard(E,R)=x,maxcard(E,R)=y,那么在ER图中,E和R之间的连接线可以用标记:card(E,R)=(x,y)表示
实体的基数。
联系的方式
联系涉及到实体之间实例的对应方式,二元联系的联系方式有四种:1:1,1:N,M:N,M:1。由于M:1是1:N的反面,通常不单独提及。
如果实体E和F在联系R中有maxcard(E,R)=1,maxcard(F,R)=1,那么E和F联系是1:1的。
如果实体E和F在联系R中有maxcard(E,R)=N,maxcard(F,R)=1,那么E和F联系是1:N的。
如果实体E和F在联系R中有maxcard(E,R)=M,maxcard(F,R)=N,那么E和F联系是M:N的。
当一个联系R中的实体E具有mincard(E,R)=1时,E称为强制参与R(mandatory participation),或简称E在R中
是强制的,一个实体F在R中不是强制的,则称为可选的(optional participation)。
类似地,可以给出一元联系,三元联系的一对一,一对多,多对多定义,特别注意多元联系的多对多联系方式。
例子: