E-R 模型
实体与属性
实体(Entity): 是指客观存在可以相互区别的事物。实体可以是具体的对象,如:一个工大职工,一辆汽车等;也可以是抽象的事件,如:一次借书、一场足球赛等。
实体用矩形表示。
属性(Attribute):实体有很多特性,每一个特性称为属性。每个属性有一值域,其类型可以是整数型、实数型、字符串型。比如,学生(实体)有学号、姓名、年龄、性别等属性,相应值域为字符、字符串、整数和字符串型。
属性用椭圆形表示,如:
联系(Relationship)
一对一联系
一对多联系
如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。
多对多联系
如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。
一个完整的ER图
ER模型转换成关系模式的规则
规则
超键
超键:在关系模型中,能惟一标识元组的属性集。
是一个集合
候选键
候选键:在关系模型中,能惟一标识元组并且不含多余属性的属性集称为候选键。值得注意的是,超键与候选键的区别是,超键可能包含多余属性,而候选属性不能。
是一个集合
主键
主键:在一个关系的若干候选键中随意指定一个作为关键字,该关键字为主键。
外键
外键:如果关系模式R1中的某属性集不是R1的候选键,而是关系模式R2的候选键,则这个属性集对模式R1而言是外键。注意,这不是对于R2而言的。
例题
例一
学生(学号、姓名、性别)
其中:(学号,姓名)为超键;(学号)为候选键,同时也为主键。
例二
请指出下面两个关系模式的主键以及外键:
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
答:
学生:主键为学号,外键为专业号。
专业:主键为专业号,外键无。
学生关系的“专业号”属性与专业关系的主键“专业号”对应,因此“专业号”属性为学生关系的外键。这里专业关系是被参照关系,学生关系为参照关系。
主属性
主属性:候选码中的诸属性称为主属性。
非主属性
例题
例三
请指出关系模式中的主属性和非主属性:
成绩(学号,姓名,课程号,成绩)注:学生无同名。
分析:
候选键:(学号,课程号)、(姓名,课程号)
主属性:学号,姓名,课程号
如何区分超键、候选键和主键?
- 三个键的功能是一致的,都是唯一标识一个元组
- 超键中可能有无关的属性,而主键和候选键中属性都是必要的属性
- 主键和候选键的区别在于主键是被数据库设计者选中的。主键是候选键中的一个。
函数依赖
三个基本定义
完全函数依赖
在
R(U)
中,如果,并且对于
的任何真子集
,都有
,则称
对
完全函数依赖,记作:
部分函数依赖![07.png](/uploads/projects/limaoquan@hgt31f/7f535cc394d0792b2f56204c9589f1d2.png)
传递函数依赖
范式
第一范式
第二范式
第二范式:当且仅当实体Entity是第一范式(1NF),且每一个非键属性完全依赖主键(没有不完全依赖)时,则称实体Entity是第二范式。
第三范式
第三范式:当且仅当实体Entity是第二范式(2NF),且Entity中没有非主属性传递依赖于码时,则称实体Entity是第三范式。
无损联接分解
所谓无损联接分解是指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等