第 2 章 关系数据库基本理论
DESCRIPTION
第 2 章 关系数据库基本理论. 本章要点: 关系与模式、关系数据库与关系数据库模式、视图等的概念 关系的数学定义 关系的三类完整性约束 关系代数,包括传统的集合运算和专门的关系运算 范式的概念与关系的规范化. 2.1 关系数据库的基本概念. 2.1.1 关系与关系模式 在关系模型中,实体和实体之间的联系都由单一的数据结构 —— 关系来描述,关系型数据库都是由一张或多张相关联的表(关系)组成。对关系数据库中每一关系的结构的描述,称为该关系的关系模式,也就是一个关系的型。 2.1.2 关系数据库与关系数据库模式 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/1.jpg)
第 2 章 关系数据库基本理论 本章要点: 关系与模式、关系数据库与关系数据库模式、视图等的概念
关系的数学定义 关系的三类完整性约束 关系代数,包括传统的集合运算和专门的关系运算
范式的概念与关系的规范化
![Page 2: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/2.jpg)
2.1 关系数据库的基本概念 2.1.1 关系与关系模式 在关系模型中,实体和实体之间的联系都由单一的数据结构——关
系来描述,关系型数据库都是由一张或多张相关联的表(关系)组成。对关系数据库中每一关系的结构的描述,称为该关系的关系模式,也就是一个关系的型。
2.1.2 关系数据库与关系数据库模式 关系数据库模式中所有的关系模式的具体关系的集合称之为关系数
据库。图示 2.1.3 视图 视图通常是由关系数据库模式的某个关系中满足用户给定条件的若
干属性列或元组组成,也可以是对若干个不同关系进行关系运算的结果,它反映的是局部逻辑结构。
![Page 3: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/3.jpg)
教师编号 姓名 性别 学位 工作日期 单位 职称
0001 王宁军 男 学士 94/07/15 计算机 讲师
1006 陈平 男 硕士 72/09/01 力学 副教授
2008 周华俊 女 硕士 95/08/01 电 子 电工
讲师
教师信息表
课号 课名 班级 学时 教师编号
00001 C 语言程序 97 计算机 40 0001
00003 汇编语言 97 计算机 70 0001
10002 工程力学 96 工民建 80 1006
10006 基础力学 98 建工 80 1006
20004 模拟电路 97 无线电通信 70 2008
授课信息表
![Page 4: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/4.jpg)
2.1.4 关键字 1 .超关键字 2 .候选关键字 3 .主关键字 4 .外部关键字 5 .主属性和非主属性
基表 1 基表 2 基表 3 基表 4
视图 1 视图 2
视图 3 视图与表的关系示意图
![Page 5: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/5.jpg)
2.2 关系的完整性 关系的完整性包括三类: (1) 实体完整性 实体完整性是指在关系中的任何一个元组,主关键字值
的任一分量都不允许为空。 (2) 参照完整性外键字段要么为空 , 要么为另一个表中的主键值 (3) 用户定义完整性 由用户针对数据的具体语义约束条件,来定义的完整性,
称用户自定义完整性。如人的年龄可以规定在 0~150 之间取值,考试成绩只能在 0~100 之间等。
![Page 6: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/6.jpg)
2.3 关系的数学定义 2.3.1 一个日常生活中的关系 某小区有 2 名男同志和 3 名女同志,把男人看成一个集合 M ,
把女人看成一个集合 W ,如下: M={ 赵和平 , 李振华 } ; W={ 李小丽 , 张小琴 , 王丽娅 } 。
若 M 集合和 W 集合存在着夫妻关系,则可能的夫妻关系如下: { (赵和平 , 李小丽),(赵和平 , 张小琴),(赵和平 , 王丽娅),(李振华 , 李小丽),(李振华 , 张小琴),(李振华 , 王丽娅) }
在数学上把这种由两个或多个集合中的值的所有可能组合称“笛卡尔积”,本题的“笛卡尔积”可记为: M×W 。
![Page 7: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/7.jpg)
2.3.2 关系的数学定义 1 .域 域( Domain )是值的集合。如: {1 到 100 之间的整
数 } , { 男 , 女 } , {Mary,Tom} 等都是域。域中元素的个数称为域的基数,如有下列集合:
D1={ 王小平 , 张亚 , 李军 } ,表示单位人员的集合;D2={ 教授 , 副教授 , 讲师 , 助教 } ,表示职称的集合;D3={35,27,18} ,表示工龄的集合。其中 D1 的基数是 3 , D2 的基数是 4 , D3 的基数是 3 。
![Page 8: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/8.jpg)
2 .笛卡尔积 给定一组域 , ,…, ,这些域中可以有相同的域,则 , ,…,
的笛卡尔积为: × ×…× ={( , ,…, )| ∈ , i=1,2,…,n}其中每一个元素 ( , ,…, ) 称为一个元组,元素中的每一个 称为分量。
当 n 的值为 1 时称为单元组,当 n 的值为 2 时,称为二元组,以此类推。
若 ( i=1,2,…,n )的基数是 mi ,则笛卡尔积 × ×…× 的基数 M为:
1D 2D nD
nD1D 2D1D 2D nD
nD2D1DiD
n
iimM
1
1d 2d nd
nd2d1did
id
![Page 9: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/9.jpg)
3 .关系 笛卡尔积的子集称为关系 , 记作 R(D1 , D2, D3,...,Dn) 【例】教师关系例。有以下三个域: D1={ 张正义 , 姚小丽 } ,教师姓名
集合; D2={ 男 , 女 } ,教师性别集合; D3={21,24} ,教师年龄集合。求 D1 × D2 × D3 。
解:笛卡尔 D1 × D2 × D3 的值可用左表表示:实际的教师信息可能如右表
D1 D2 D3张正义 男 21张正义 男 24张正义 女 21张正义 女 24姚小丽 男 21姚小丽 男 24姚小丽 女 21姚小丽 女 24
D1 D2 D3
张正义 男 21
姚小丽 女 24
![Page 10: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/10.jpg)
2.4 关系代数 2.4.1 传统的集合运算 1 .并运算 (UNION) 例 2-2 2 .交运算( INTERSECTION ) 例 2-3 3 .差运算( DIFFERENCE ) 例 2-4 4 .关系的笛卡尔积 例 2-5
![Page 11: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/11.jpg)
2.4 关系代数 2.4.2 专门的关系运算 1 .选择( SELECT )运算 例 2-6 2 .投影( PROJECTION )运算 例 2-7 3 .联接运算( JOIN )JOIN R1 and R2 where F
例 2-8( 1 )内部联接( Inner Join ) 例 2-9( 2 )自然联接运算( Natural join ) 例 2-10( 3 )左外联接( Left outer join ) 例 2-11( 4 )右外联接( Right outer join ) 例 2-12 ( 5 )全外联接( Full outer join ) 例 2-13
![Page 12: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/12.jpg)
2.5 关系的规范化 2.5.1 存储异常 【例】某校教务部要建立一个数据库来描述教师与教研室的情况,面临的对象有:教师编号 (TNO) 、教师姓名(TNAME) 、教师主讲的课程名( KNAME )、教师主讲课程的次数( KTIME )、教研室代号( JNO )、教研室主任( JMN )等。
通过分析可知上述对象之间有如下对应关系: ( 1 )一个教研室有若干教师,但一个教师只属于一个教研室; ( 2 )一个教研室只有一个主任; ( 3 )一名教师可以主讲多门课程,每门课程可由多名教师主讲; ( 4 )每名教师主讲每门课程有一定的次数。
根据上述分析,我们可以考虑以下两种数据库模式的选择方案。方案 1 :采用一个总的关系模式:方案 2 :采用三个关系模式:
![Page 13: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/13.jpg)
2.5.2 函数依赖的基本概念 1 .函数依赖 函数依赖根据其性质可分为完全函数依赖、部分函数依赖和传递函数
依赖。 2 .完全函数依赖 设R 为任一给定关系, X , Y 为其属性或属性组,若 XY ,且对 X
中的任何真子集 X 都有 X Y ,则称 Y 完全函数依赖于 X 。记作:
3 .部分函数依赖 设R 为任一给定关系, X , Y 为其属性或属性组,若 XY ,且在 X
中存在一个真子集 X ,满足 XY ,则称 Y 部分函数依赖于 X 。记作:
yx f
yx p
![Page 14: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/14.jpg)
4 .传递函数依赖 设R 为任一给定关系, X , Y , Z 为其不同属性子集,
若 XY , Y X , YZ ,则称 Z 传递函数依赖于 X , yx t
![Page 15: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/15.jpg)
2.5.3 关系规范化的过程 1 .第一范式 任给关系 R ,如果 R 中每一属性的值域中的每一个值都是不可分解
的,则 R 为第一范式 , 记作 R∈1NF 。 教师编号 所教课程
0001 程序设计0002 程序设计,操作系统
非规范化关系
教师编号 所教课程0001 程序设计0002 程序设计0002 操作系统
规范化的关系
![Page 16: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/16.jpg)
2 .第二范式 任给关系 R ,若 R∈1NF ,且其所有非主属性都完全函数依赖于关
键字,则 R 为第二范式,记作 R∈2NF 。 3 .第三范式 任给关系 R ,若 R∈2NF ,且它的每一个非主属性都不传递依赖于
主关键字,则 R 属性第三范式,记作 R∈3NF 。 4 . BCNF范式 BCNF ( Boyce Codd Normal Form )是 Boyce 与 Codd 为解决
3NF 有时出现的插入与删除操作异常问题而提出的
![Page 17: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/17.jpg)
2.5.4 关系分解的正确性
把组合属性分解为不可再分的属性
非规范化关系
1NF
2NF
3NF
BCNF
消去非主属性对主关键字的部分函数依赖
消去非主属性对主关键字的传递函数依赖
消去所有部分函数依赖,包括主属性对候选关键字的部分函数依赖
使每一个决定因素都包含候选码
关系分解的过程
![Page 18: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/18.jpg)
通过一个实例来说明关系分解的正确性。 在某学校中,一个学生(学号属性名为 S# )只在一个系(系号属性
名为 DEPT )学习,一个系只有一名系主任(姓名属性名为 MN ),下表是该学校的一个实际关系,其关系模式为 R ( S# , DEPT , MN )。
可见在该关系中, MN传递函数依赖于 S# ,故需对之进行关系分解。可有三种方法:
S# DEPT MN
S1 D1 张五S2 D1 张五S3 D2 李四S4 D3 王一
![Page 19: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/19.jpg)
1 .分解成三个关系: R1 ( S# ) ,R2(DEPT),R3(MN) S#
S1
S2
S3
S4
关系 R1
DEPT
D1
D2
D3
关系 R2
MN
张五
李四
王一
关系 R3
![Page 20: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/20.jpg)
2 .分解成两个关系: R1 ( S# , DEPT ), R2 ( S# ,MN )
S# DEPT
S1 D1
S2 D1
S3 D2
S4 D3
关系 R1
S# MN
S1 张五
S1 张五
S2 李四
S3 王三
关系 R2
![Page 21: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/21.jpg)
3 .分解成两个关系: R1 ( S# , DEPT )和 R2 ( DEPT , MN )
S# DEPT
S1 D1
S2 D1
S3 D2
S4 D3
关系 R1
DEPT
MN
S1 张五
S2 李四
S3 王三
关系 R2
![Page 22: 第 2 章 关系数据库基本理论](https://reader031.vdocuments.net/reader031/viewer/2022012321/5681313f550346895d97b7dc/html5/thumbnails/22.jpg)
小结 本课主要讲解关系数据库的理论基础,为
进一步深入学习关系数据库的原理与应用打下基础。本课在讨论关系数据库的基本概念的基础上,探讨了关系的数字定义、关系的完整性、关系代数的一些基本操作、函数依赖与关系的规范化等学习关系数据库必须要了解的理论基础。关系代数与关系的规范化是本章的重点。