北京工业大学研究生数据库复试笔试课件chap3 关系数据模型与关系代数_120
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
010801
c02
c04
B
C
010801
010901
c01
c02
A
D
010901 键=(学号,课程号)
c03
B
15
学生(学号,姓名,年龄,班级)
键=学号
影片(片名,年份,片长,体裁)
键=(片名,年份)
16
主键: 关系可以有多个键,选一个作为主键。
例:学生(学号,姓名,性别,年龄,身份证号) 学号 和 身份证号 都是键,选一个作主键。
键=(课程,教师,参考书)
供应(供应商,超市,商品) 键=(供应商,超市,商品)
19
3.1.3 关系模型的完整性规则
①实体完整性 ②参照完整性 一般性规则DBMS自动支持
③用户定义完整性 DBMS提供定义与校验机制
20
实体完整性: 关系R中,任意一个键属性不能取空值。
解释:键唯一决定元组 描述实体时,键唯一地标识实体值 例: 影片(片名,年份,片长,体裁) 键属性? 主属性 有空值无法标识元组 键 唯一性
9
关系是随时间变化的
学号 010801 010802 010803 010901
刘影退学 学号 010801 010802 010803 姓名 张雨 李新 陈辰 年龄 20 19 19 班级 0108 0108 0108
姓名 张雨 李新 陈辰 刘影
年龄 20 19 19 20
班级 0108 0108 0108 0109
genre
Movies
voice
isa
iisa
weapon
Cartoons
MurderMysteris
凶杀片
47
超类实体集 :
建立一个与之同名
具有相同属性集的关系模式。
超类实体集Movies:
Movies(title, year, length, genre)
48
子类实体集:
除原有属性外,包含超类实体集的键
C
A
010901
010901
c02
c03
D
B
3
属性:关系中的各列。属性名即列名.
如:学生关系中有学号 姓名 年龄 班级 4个属性 (属性组/属性集合)
学号 010801 010802 010803 010901
姓名 张雨 李新 陈辰 刘影
年龄 20 19 19 20
班级 0108 0108 0108 0109
4
域: 属性的取值范围
如:
长〈 20的字符串 10~1000间整数 日期在1900/1/1 ---2020/1/1 之间
5
元组:关系中的各行。 上面的学生关系有4个元组 其中一个是: 元组集合
(„010801‟ ,„张雨’ ,20 , „0108‟)
元组的分量: 元组中与属性相对应的值 如: 张雨 ----------第1个元组,对应属性:姓名
例: Employees(Eno,Ename,Sex,Age,Dno) Departments(Dno,Dname,Location,Phone) 外键是将DB中各关系粘连在一起的“粘结剂”。
25
Employees
Eno
E1 E2 E3 E4
Ename
张.. 王… 赵.. 李..
Age
32 45 28 36
班级(班号,人数,入学年份,班主任职工号)
或: 班主任(职工号,姓名,年龄,经验,班号)
39
一元递归联系转换为关系模式 多对多 必须单独建关系模式
多对一 或 一对一 独立建关系模式 或 在实体集对应的关系模式中表达 例如:
职工(职工号,姓名,工龄,直接上级)
40
3.1.4.3 处理弱实体集 例:P95 图4-28
第3章
关系数据模型与关系代数
几种主要的数据模型: 层Fra Baidu bibliotek、网状、关系、面向对象、对象关系等
关系数据模型的DBMS: ORACLE SYBASE INFORMIX DB2 SQL-SERVER(微软) 关系数据库是采用关系模型建立的数据库。
1
3.1.1 基本概念 关系是命名的二维表, 用来描述事物及事物间的联系。
例:学生
学号 010801 010802 010803 010901
姓名 张雨 李新 陈辰 刘影
年龄 20 19 19 20
班级 0108 0108 0108 0109
2
学生选课
学号 010802 课程号 c01 成绩 A
010802
010801
c03
c02
B
B
010801
010801
c04
c01
SP中 Sno 是外键
SP参照关系
Suppliers被参照关系
Parts(Pno,Pname,Color,Weight) SP(Sno,Pno,Quantity)
SP中 Pno是外键
SP参照关系
Parts被参照关系
24
参照完整性: 若关系R包含一个与另一个关系S的主键匹配的外键, 则关系R中的该外键的每一非空值必须: 等于S 某元组的主键。
即通过相同键描述isa联系
子类实体集Cartoons
Cartoons (title,year) 子类实体集Murder-Mysteries Murder-Mysteries(title,year,weapon)
49
对联系Voice
13
3.1.2 关于键(Key) 键 (码/候选码/关键字):
关系中某一属性组能够唯一地标识元组, 并且从中去掉任一属性则不能唯一地标识元组, 称该属性组为键。 唯一性 最小性
#E-R图中键只涉及实体集
14
学生选课 学号 010802 010802 课程号 c01 c03 成绩 A B
010801
Dno
D1 D1 D2 D2
E5
Departments Dno
陈..
37
D3
Dname
Location
Phone
D1
D2
管理
经营
1号楼
5号楼
3002
2114
26
用户定义的完整性:
与具体应用问题相关的特定的完整性要求
如:
年龄:16-24
下属的薪金不得高于上司的
不得在周末更新数据…….
出现特殊情况,做一系列操作
供应商数据库 SP(Sno,Pno,Quantity) “供应商”键,“零件”键,联系的属性
*多对多 或 带联系的属性 一定单独设计关系模式
35
P93 例4.27 图4-25
Stars Movies
Contracts
Studios 四路联系
36
多路联系Contacts转换为关系模式:
Contacts(starName,title,year,
studioOfStar,producingStudio)
影星所属公司 电影制作公司
注意:属性不能重名
*多元(路)联系一定单独设计关系模式
37
“一对一”联系转换为关系模式
班级
负责
班主任
班级(班号,人数,入学年份)
班主任(职工号,姓名,年龄,经验)
方案一:将联系独立建表: 负责(班号,职工号)
38
方案二:一方的“键”存入另一方的关系模式
33
多的一方 外键
Movies
Starts-In
Stars
多对多联系Stars_In 对应关系模式:
Stars_In(title,year,starName)
此关系模式可合并到其他模式中吗?
34
转换多对多联系的其他例:
学生数据库 SC(Sno,Cno,Grade) “学生”键,“课程”键,联系的属性
确保唯一标识影片
21
外键: 若关系R的一个属性(或属性组)X, 不是R的主键, 而是(/对应)另一个关系S的主键, 则称X为关系R的外键;
称R为参照关系、称 S 为被参照关系。
主键?键?
22
例: 外键不是主键的组成部分(一对多) Employees(Eno,Ename,Sex,Age,Dno )
27
3.1.4 从E/R图到关系数据库模式的转换
数据库模式: 一组相关的关系模式
关系模式 R(A1,A2,…,An)
28
3.1.4.1 实体集到关系模式的转换
对于每一个非弱实体集:
建立一个与之同名具有相同属性集的关系模式。
Students
Students( Sno, Sname, Sage, Sdept )
Crews
Unitof
Studios
number
name
addr
41
几点考虑:
1. 建立关系模式,包含弱实体集的属性及弱实体集 所附属的实体集的键。
实体集Studios
Studios(name, addr)
弱实体集Crews
Crews(number,studioName)
42
2.建立关系模式
描述“双菱形”联系
多对多
多对一?
31
例:
Movies
Owns
Studios
其中联系Owns 对应关系模式: Owns(title,year,studioName) 这方法好吗? 其他方法?
32
转换多对一联系的另一种方法:
Movies(title,year,length,genre,studioName)
类似: Employees(Eno,Ename,Eage,Dno) Departments(Dno,Dname,Phone) 注意:此方法,当外键非空 或 很少出现空值时可取
不必建立Unit-of
44
结论
对于弱实体集:
建立关系模式,包含弱实体集的属性
及弱实体集所附属的实体集的键。
对于“双菱形”联系: 无须构造关系模式。
45
3.1.4.4 子类到关系模式的转换 # 关系模型中表示“isa”
P98 例4.31 图4-31 有关卡通片 谋杀片
46
length
title
year
6
关系有如下性质: 1) 同属性(列)各分量取自同一域 2) 不同属性(列)可以取自同一域
3) 按属性名引用时,属性左右无序
4) 元组上下无序 5) 没有重复的元组 6)元组分量不可再分
7
等价的关系 学号 010801 010802 010803 010901 学号 010801 010803 010802 010901 姓名 张雨 李新 陈辰 刘影 姓名 张雨 陈辰 李新 刘影 年龄 20 19 19 20 年龄 20 19 19 20 班级 0108 0108 0108 0109 班级 0108 0108 0108 0109
29
例:P75 图4-2
其中3个实体集对应如下关系模式:
Movies(title, year, length, genre)
Stars(name, address)
Studios(name, address)
30
3.1.4.2 联系到关系模式的转换
对联系建立关系模式
联系涉及的每一个实体集的键作为该关系模式 的属性, 联系的属性作为该关系模式的属性。 避免属性重名
Departments(Dno,Dname,Location,Phone)
Employees中Dno是外键 Employees参照关系 Departments被参照关系
23
例:外键是主键的组成部分(多对多)
Suppliers(Sno,Sname,State,City) SP(Sno,Pno,Quantity)
17
超键: 关系中某一属性组能够唯一地标识元组
只满足唯一性
本质:其中包含键
例: 供应商关系 Suppliers(Sno,Sname,State,City) (Sno,Sname) 不是键, 是超键。
还有哪些超键?键一定是超键?超键一定是键?
18
#关系中全部属性作键: C_T_B (课程,教师,参考书)
关系数据库就是相关关系组成的集合。 关系模型中,数据库设计就是设计一组关系模式 -------数据库模式
例:供应商-零件数据库 有如下3个关系模式 Suppliers(Sno,Sname,State,City)
Parts(Pno,Pname,Color,Weight)
SP(Sno,Pno,Quantity)
10
关系的实例: 给定的 (某一时刻的) 关系中元组的集合
关系模式:关系名和关系的属性集合
如: 学生(学号,姓名,年龄,班级) 影片(片名,年份,片长,体裁)
关系模式是相对 稳定的
11
关系模式与关系实例
关系由表头、表体组成
表头 表体 各属性 各元组
关系模式
非时变
DB当前状态 时变的 关系实例
12
包含弱实体集的键
及弱实体集所附属的实体集的键。
“双菱形”联系Unit-of Unit-of(number,studioName, name)
43
3. 由2所得是弱实体集对应关系模式的子集。
2 可以不做。 studioName就是 name Unit-of(number,studioName, name) 就是Crews(number,studioName)
8
等价的关系 学号 010801 010802 010803 010901 学号 010801 010802 010803 010901 姓名 张雨 李新 陈辰 刘影 姓名 张雨 李新 陈辰 刘影 年龄 20 19 19 20 班级 0108 0108 0108 0109 班级 0108 0108 0108 0109 年龄 20 19 19 20
c02
c04
B
C
010801
010901
c01
c02
A
D
010901 键=(学号,课程号)
c03
B
15
学生(学号,姓名,年龄,班级)
键=学号
影片(片名,年份,片长,体裁)
键=(片名,年份)
16
主键: 关系可以有多个键,选一个作为主键。
例:学生(学号,姓名,性别,年龄,身份证号) 学号 和 身份证号 都是键,选一个作主键。
键=(课程,教师,参考书)
供应(供应商,超市,商品) 键=(供应商,超市,商品)
19
3.1.3 关系模型的完整性规则
①实体完整性 ②参照完整性 一般性规则DBMS自动支持
③用户定义完整性 DBMS提供定义与校验机制
20
实体完整性: 关系R中,任意一个键属性不能取空值。
解释:键唯一决定元组 描述实体时,键唯一地标识实体值 例: 影片(片名,年份,片长,体裁) 键属性? 主属性 有空值无法标识元组 键 唯一性
9
关系是随时间变化的
学号 010801 010802 010803 010901
刘影退学 学号 010801 010802 010803 姓名 张雨 李新 陈辰 年龄 20 19 19 班级 0108 0108 0108
姓名 张雨 李新 陈辰 刘影
年龄 20 19 19 20
班级 0108 0108 0108 0109
genre
Movies
voice
isa
iisa
weapon
Cartoons
MurderMysteris
凶杀片
47
超类实体集 :
建立一个与之同名
具有相同属性集的关系模式。
超类实体集Movies:
Movies(title, year, length, genre)
48
子类实体集:
除原有属性外,包含超类实体集的键
C
A
010901
010901
c02
c03
D
B
3
属性:关系中的各列。属性名即列名.
如:学生关系中有学号 姓名 年龄 班级 4个属性 (属性组/属性集合)
学号 010801 010802 010803 010901
姓名 张雨 李新 陈辰 刘影
年龄 20 19 19 20
班级 0108 0108 0108 0109
4
域: 属性的取值范围
如:
长〈 20的字符串 10~1000间整数 日期在1900/1/1 ---2020/1/1 之间
5
元组:关系中的各行。 上面的学生关系有4个元组 其中一个是: 元组集合
(„010801‟ ,„张雨’ ,20 , „0108‟)
元组的分量: 元组中与属性相对应的值 如: 张雨 ----------第1个元组,对应属性:姓名
例: Employees(Eno,Ename,Sex,Age,Dno) Departments(Dno,Dname,Location,Phone) 外键是将DB中各关系粘连在一起的“粘结剂”。
25
Employees
Eno
E1 E2 E3 E4
Ename
张.. 王… 赵.. 李..
Age
32 45 28 36
班级(班号,人数,入学年份,班主任职工号)
或: 班主任(职工号,姓名,年龄,经验,班号)
39
一元递归联系转换为关系模式 多对多 必须单独建关系模式
多对一 或 一对一 独立建关系模式 或 在实体集对应的关系模式中表达 例如:
职工(职工号,姓名,工龄,直接上级)
40
3.1.4.3 处理弱实体集 例:P95 图4-28
第3章
关系数据模型与关系代数
几种主要的数据模型: 层Fra Baidu bibliotek、网状、关系、面向对象、对象关系等
关系数据模型的DBMS: ORACLE SYBASE INFORMIX DB2 SQL-SERVER(微软) 关系数据库是采用关系模型建立的数据库。
1
3.1.1 基本概念 关系是命名的二维表, 用来描述事物及事物间的联系。
例:学生
学号 010801 010802 010803 010901
姓名 张雨 李新 陈辰 刘影
年龄 20 19 19 20
班级 0108 0108 0108 0109
2
学生选课
学号 010802 课程号 c01 成绩 A
010802
010801
c03
c02
B
B
010801
010801
c04
c01
SP中 Sno 是外键
SP参照关系
Suppliers被参照关系
Parts(Pno,Pname,Color,Weight) SP(Sno,Pno,Quantity)
SP中 Pno是外键
SP参照关系
Parts被参照关系
24
参照完整性: 若关系R包含一个与另一个关系S的主键匹配的外键, 则关系R中的该外键的每一非空值必须: 等于S 某元组的主键。
即通过相同键描述isa联系
子类实体集Cartoons
Cartoons (title,year) 子类实体集Murder-Mysteries Murder-Mysteries(title,year,weapon)
49
对联系Voice
13
3.1.2 关于键(Key) 键 (码/候选码/关键字):
关系中某一属性组能够唯一地标识元组, 并且从中去掉任一属性则不能唯一地标识元组, 称该属性组为键。 唯一性 最小性
#E-R图中键只涉及实体集
14
学生选课 学号 010802 010802 课程号 c01 c03 成绩 A B
010801
Dno
D1 D1 D2 D2
E5
Departments Dno
陈..
37
D3
Dname
Location
Phone
D1
D2
管理
经营
1号楼
5号楼
3002
2114
26
用户定义的完整性:
与具体应用问题相关的特定的完整性要求
如:
年龄:16-24
下属的薪金不得高于上司的
不得在周末更新数据…….
出现特殊情况,做一系列操作
供应商数据库 SP(Sno,Pno,Quantity) “供应商”键,“零件”键,联系的属性
*多对多 或 带联系的属性 一定单独设计关系模式
35
P93 例4.27 图4-25
Stars Movies
Contracts
Studios 四路联系
36
多路联系Contacts转换为关系模式:
Contacts(starName,title,year,
studioOfStar,producingStudio)
影星所属公司 电影制作公司
注意:属性不能重名
*多元(路)联系一定单独设计关系模式
37
“一对一”联系转换为关系模式
班级
负责
班主任
班级(班号,人数,入学年份)
班主任(职工号,姓名,年龄,经验)
方案一:将联系独立建表: 负责(班号,职工号)
38
方案二:一方的“键”存入另一方的关系模式
33
多的一方 外键
Movies
Starts-In
Stars
多对多联系Stars_In 对应关系模式:
Stars_In(title,year,starName)
此关系模式可合并到其他模式中吗?
34
转换多对多联系的其他例:
学生数据库 SC(Sno,Cno,Grade) “学生”键,“课程”键,联系的属性
确保唯一标识影片
21
外键: 若关系R的一个属性(或属性组)X, 不是R的主键, 而是(/对应)另一个关系S的主键, 则称X为关系R的外键;
称R为参照关系、称 S 为被参照关系。
主键?键?
22
例: 外键不是主键的组成部分(一对多) Employees(Eno,Ename,Sex,Age,Dno )
27
3.1.4 从E/R图到关系数据库模式的转换
数据库模式: 一组相关的关系模式
关系模式 R(A1,A2,…,An)
28
3.1.4.1 实体集到关系模式的转换
对于每一个非弱实体集:
建立一个与之同名具有相同属性集的关系模式。
Students
Students( Sno, Sname, Sage, Sdept )
Crews
Unitof
Studios
number
name
addr
41
几点考虑:
1. 建立关系模式,包含弱实体集的属性及弱实体集 所附属的实体集的键。
实体集Studios
Studios(name, addr)
弱实体集Crews
Crews(number,studioName)
42
2.建立关系模式
描述“双菱形”联系
多对多
多对一?
31
例:
Movies
Owns
Studios
其中联系Owns 对应关系模式: Owns(title,year,studioName) 这方法好吗? 其他方法?
32
转换多对一联系的另一种方法:
Movies(title,year,length,genre,studioName)
类似: Employees(Eno,Ename,Eage,Dno) Departments(Dno,Dname,Phone) 注意:此方法,当外键非空 或 很少出现空值时可取
不必建立Unit-of
44
结论
对于弱实体集:
建立关系模式,包含弱实体集的属性
及弱实体集所附属的实体集的键。
对于“双菱形”联系: 无须构造关系模式。
45
3.1.4.4 子类到关系模式的转换 # 关系模型中表示“isa”
P98 例4.31 图4-31 有关卡通片 谋杀片
46
length
title
year
6
关系有如下性质: 1) 同属性(列)各分量取自同一域 2) 不同属性(列)可以取自同一域
3) 按属性名引用时,属性左右无序
4) 元组上下无序 5) 没有重复的元组 6)元组分量不可再分
7
等价的关系 学号 010801 010802 010803 010901 学号 010801 010803 010802 010901 姓名 张雨 李新 陈辰 刘影 姓名 张雨 陈辰 李新 刘影 年龄 20 19 19 20 年龄 20 19 19 20 班级 0108 0108 0108 0109 班级 0108 0108 0108 0109
29
例:P75 图4-2
其中3个实体集对应如下关系模式:
Movies(title, year, length, genre)
Stars(name, address)
Studios(name, address)
30
3.1.4.2 联系到关系模式的转换
对联系建立关系模式
联系涉及的每一个实体集的键作为该关系模式 的属性, 联系的属性作为该关系模式的属性。 避免属性重名
Departments(Dno,Dname,Location,Phone)
Employees中Dno是外键 Employees参照关系 Departments被参照关系
23
例:外键是主键的组成部分(多对多)
Suppliers(Sno,Sname,State,City) SP(Sno,Pno,Quantity)
17
超键: 关系中某一属性组能够唯一地标识元组
只满足唯一性
本质:其中包含键
例: 供应商关系 Suppliers(Sno,Sname,State,City) (Sno,Sname) 不是键, 是超键。
还有哪些超键?键一定是超键?超键一定是键?
18
#关系中全部属性作键: C_T_B (课程,教师,参考书)
关系数据库就是相关关系组成的集合。 关系模型中,数据库设计就是设计一组关系模式 -------数据库模式
例:供应商-零件数据库 有如下3个关系模式 Suppliers(Sno,Sname,State,City)
Parts(Pno,Pname,Color,Weight)
SP(Sno,Pno,Quantity)
10
关系的实例: 给定的 (某一时刻的) 关系中元组的集合
关系模式:关系名和关系的属性集合
如: 学生(学号,姓名,年龄,班级) 影片(片名,年份,片长,体裁)
关系模式是相对 稳定的
11
关系模式与关系实例
关系由表头、表体组成
表头 表体 各属性 各元组
关系模式
非时变
DB当前状态 时变的 关系实例
12
包含弱实体集的键
及弱实体集所附属的实体集的键。
“双菱形”联系Unit-of Unit-of(number,studioName, name)
43
3. 由2所得是弱实体集对应关系模式的子集。
2 可以不做。 studioName就是 name Unit-of(number,studioName, name) 就是Crews(number,studioName)
8
等价的关系 学号 010801 010802 010803 010901 学号 010801 010802 010803 010901 姓名 张雨 李新 陈辰 刘影 姓名 张雨 李新 陈辰 刘影 年龄 20 19 19 20 班级 0108 0108 0108 0109 班级 0108 0108 0108 0109 年龄 20 19 19 20