昨天14岁的侄女跟我在QQ上哭诉昨晚与交往三周的前任分手,痛不欲生,并劝戒我:小叔,原来爱情这么伤!还感叹道:问世间情为何物,直教人生死相许!然后接着说:你33岁都没有谈恋爱实在是明智的决定啊........
实体联系模型(ER模型)是广泛被采用的概念模型设计方法,ER模型是对现实世界的一种抽象,ER模型的基本元素是:实体、联系和属性。
1、 ER模型的实体
a) 实体(Entity):是一个数据对象,指应用中可以区分的客观存在的事物;
b) 实体集(Entity Set):是指同一类实体构成的集合;
c) 实体类型(Entity Type):是对实体集中实体的定义。
d) 命名规则:在ER模型中,实体用方框表示,方框内注明实体的命名。实体名常用大写字母开头的有具体意义的名词表示。
2、 ER模型的联系
a) 联系(Relationship):表示一个或多个实体之间的关联关系;
b) 联系集(Relationship Set):是指同一类联系构成的集合;
c) 联系类型(Relationship Type):是对联系集中联系的定义。
d) 命名规则:在ER模型中,联系用菱形框表示,框内注明联系的命名,并用线段将其与相关的实体链接起来。联系是实体之间的一种行为,所以一般用动词来命名。
e) 联系的元数
i. 定义:一个联系涉及到的实体集个数,称为该联系的元数或度数
ii. 分类:
1. 一元联系:同一个实体集内部实体之间的联系
2. 二元联系:两个不同实体集、实体之间的联系
3. 三元联系:三个不同实体集实体之间的联系
4. 多元联系:多个不同实体集实体之间的联系
f) 联系类型的约束
i. 定义:联系类型的约束限制了参与联系的实体的数目
ii. 分类:
1. 基数约束:实体集E1和E2之间有二元联系,则参与一个联系中的实体数目称为映射基数(Mapping Cardinalities)。
2. 参与约束:如果实体集E中的每个实体都参与联系集R的至少一个联系中,我们称为实体集E完全参与联系集R<双线边表示>;如果实体集E中只有部分实体参与联系集R的联系,我们称实体集E部分参与联系集R<单线边表示>。
3、 ER模型的属性
a) 属性(Attribute):实体的某一特性称为属性;
b) 实体标识符:在一个实体中,能够唯一标识实体的属性或属性集称为实体标识符;
c) 属性域:属性的可能取值范围称为属性域,也称为值域。
d) 命名规则:在ER模型中,属性用椭圆形框表示,加下划线的属性为标识符。
4、 ER模型属性的分类
a) 根据属性类别分类
i. 简单属性(Simple Attribute):是不可再分割的属性,如年龄、性别
ii. 复合属性(Composite Attribute):是可再分解为其他属性的属性,如地址属性可分为省、市、区等。
b) 根据取值特点分类
i. 单值属性(Single-Valued Attribute):指的是同一实体只能取一个值,如一个学生只能有一个年龄;
ii. 多值属性(Multi-Valued Attribute):指的是同一个实体的某些属性可能取多个值,如一个学生的学位可以是学士、硕士、博士。<用双线椭圆形表示>
iii. 为了防止数据冗余,多值属性的变换方法有:
1. 将原来的多值属性用几个新的单值属性来表示
2. 将原来的多值属性用一个新的实体类型来表示,
c) 根据存储特点分类
i. 派生属性(Derived Attribute):有时候,两个或两个以上的属性值是相关的,此时可以从其他属性值推导出值的属性,不必存储在数据库内,如职工中实发工资可以从基本工资、奖金推导出来<虚线椭圆形表示>
ii. 存储属性(Stored Attribute):需要存储值的属性,如年龄
d) 根据是否允许为空特点分类
i. 空值:当实体在某个属性上没有值时应使用空值(Null Value),如是否婚配
ii. 非空值:不能为空的属性值,如身份证号。
5、 ER模型的操作
a) 定义:在数据库设计过程中,常常要对ER图进行种种变化,这种变化称为ER模型的操作,包括实体类型、联系类型和属性的分裂、合并、增删等等。
b) 分类:
i. 分裂:如把教师实体分裂成男教师和女教师
ii. 合并:如把男教师和女教师合并成教师
iii. 增加:如增加校长这个实体
iv. 删除:如删除校长这个实体
零测试