E-R 模型

实体与属性

实体(Entity): 是指客观存在可以相互区别的事物。实体可以是具体的对象,如:一个工大职工,一辆汽车等;也可以是抽象的事件,如:一次借书、一场足球赛等。
实体用矩形表示。
属性(Attribute):实体有很多特性,每一个特性称为属性。每个属性有一值域,其类型可以是整数型、实数型、字符串型。比如,学生(实体)有学号、姓名、年龄、性别等属性,相应值域为字符、字符串、整数和字符串型。
属性用椭圆形表示,如:
01.属性.png

联系(Relationship)

数据库核心考点 - 图3

一对一联系

02.png

一对多联系

如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。
03.png

多对多联系

如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。
04.png

一个完整的ER图

05.png

ER模型转换成关系模式的规则

规则

超键

超键:在关系模型中,能惟一标识元组的属性集。
是一个集合

候选键

候选键:在关系模型中,能惟一标识元组并且不含多余属性的属性集称为候选键。值得注意的是,超键与候选键的区别是,超键可能包含多余属性,而候选属性不能。
是一个集合

主键

主键:在一个关系的若干候选键中随意指定一个作为关键字,该关键字为主键。

外键

外键:如果关系模式R1中的某属性集不是R1的候选键,而是关系模式R2的候选键,则这个属性集对模式R1而言是外键。注意,这不是对于R2而言的。

例题

例一

学生(学号、姓名、性别)
其中:(学号,姓名)为超键;(学号)为候选键,同时也为主键。

例二

请指出下面两个关系模式的主键以及外键:
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
答:
学生:主键为学号,外键为专业号。
专业:主键为专业号,外键无。
学生关系的“专业号”属性与专业关系的主键“专业号”对应,因此“专业号”属性为学生关系的外键。这里专业关系是被参照关系,学生关系为参照关系。

主属性

主属性:候选码中的诸属性称为主属性。

非主属性

非主属性:不包含在任何候选码中的属性称为非主属性。

例题

例三

请指出关系模式中的主属性和非主属性:
成绩(学号,姓名,课程号,成绩)注:学生无同名。
分析:
候选键:(学号,课程号)、(姓名,课程号)
主属性:学号,姓名,课程号

如何区分超键、候选键和主键?

  • 三个键的功能是一致的,都是唯一标识一个元组
  • 超键中可能有无关的属性,而主键和候选键中属性都是必要的属性
  • 主键和候选键的区别在于主键是被数据库设计者选中的。主键是候选键中的一个。


函数依赖

三个基本定义

完全函数依赖

R(U) 中,如果 数据库核心考点 - 图8,并且对于数据库核心考点 - 图9 的任何真子集 数据库核心考点 - 图10,都有数据库核心考点 - 图11 ,则称 数据库核心考点 - 图12数据库核心考点 - 图13 完全函数依赖,记作: 数据库核心考点 - 图14

06.png

部分函数依赖07.png

传递函数依赖

08.png

范式

第一范式

第二范式

第二范式:当且仅当实体Entity是第一范式(1NF),且每一个非键属性完全依赖主键(没有不完全依赖)时,则称实体Entity是第二范式。

第三范式

第三范式:当且仅当实体Entity是第二范式(2NF),且Entity中没有非主属性传递依赖于码时,则称实体Entity是第三范式。


无损联接分解

所谓无损联接分解是指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等

09.png