第 2 章 关系数据库基本理论

22
第2第 第第第第第第第第第 本本本本 本本本本本 本本本本本本本本本本本本本本 本本本本本本 、、 本本本本本本本 本本本本本本本本本本 本本本本本本本 本本本本本本本本本本本本本 传统 本本本本本本本本本本本本

Upload: acton-buck

Post on 01-Jan-2016

68 views

Category:

Documents


10 download

DESCRIPTION

第 2 章 关系数据库基本理论. 本章要点:  关系与模式、关系数据库与关系数据库模式、视图等的概念  关系的数学定义  关系的三类完整性约束  关系代数,包括传统的集合运算和专门的关系运算  范式的概念与关系的规范化. 2.1 关系数据库的基本概念. 2.1.1 关系与关系模式 在关系模型中,实体和实体之间的联系都由单一的数据结构 —— 关系来描述,关系型数据库都是由一张或多张相关联的表(关系)组成。对关系数据库中每一关系的结构的描述,称为该关系的关系模式,也就是一个关系的型。 2.1.2 关系数据库与关系数据库模式 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 2 章 关系数据库基本理论

第 2 章 关系数据库基本理论 本章要点: 关系与模式、关系数据库与关系数据库模式、视图等的概念

关系的数学定义 关系的三类完整性约束 关系代数,包括传统的集合运算和专门的关系运算

范式的概念与关系的规范化

Page 2: 第 2 章 关系数据库基本理论

2.1 关系数据库的基本概念 2.1.1 关系与关系模式 在关系模型中,实体和实体之间的联系都由单一的数据结构——关

系来描述,关系型数据库都是由一张或多张相关联的表(关系)组成。对关系数据库中每一关系的结构的描述,称为该关系的关系模式,也就是一个关系的型。

2.1.2 关系数据库与关系数据库模式 关系数据库模式中所有的关系模式的具体关系的集合称之为关系数

据库。图示 2.1.3 视图 视图通常是由关系数据库模式的某个关系中满足用户给定条件的若

干属性列或元组组成,也可以是对若干个不同关系进行关系运算的结果,它反映的是局部逻辑结构。

Page 3: 第 2 章 关系数据库基本理论

教师编号 姓名 性别 学位 工作日期 单位 职称

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 章 关系数据库基本理论

2.1.4 关键字 1 .超关键字 2 .候选关键字 3 .主关键字 4 .外部关键字 5 .主属性和非主属性

基表 1 基表 2 基表 3 基表 4

视图 1 视图 2

视图 3 视图与表的关系示意图

Page 5: 第 2 章 关系数据库基本理论

2.2 关系的完整性 关系的完整性包括三类: (1) 实体完整性 实体完整性是指在关系中的任何一个元组,主关键字值

的任一分量都不允许为空。 (2) 参照完整性外键字段要么为空 , 要么为另一个表中的主键值 (3) 用户定义完整性 由用户针对数据的具体语义约束条件,来定义的完整性,

称用户自定义完整性。如人的年龄可以规定在 0~150 之间取值,考试成绩只能在 0~100 之间等。

Page 6: 第 2 章 关系数据库基本理论

2.3 关系的数学定义 2.3.1 一个日常生活中的关系 某小区有 2 名男同志和 3 名女同志,把男人看成一个集合 M ,

把女人看成一个集合 W ,如下: M={ 赵和平 , 李振华 } ; W={ 李小丽 , 张小琴 , 王丽娅 } 。

若 M 集合和 W 集合存在着夫妻关系,则可能的夫妻关系如下: { (赵和平 , 李小丽),(赵和平 , 张小琴),(赵和平 , 王丽娅),(李振华 , 李小丽),(李振华 , 张小琴),(李振华 , 王丽娅) }

在数学上把这种由两个或多个集合中的值的所有可能组合称“笛卡尔积”,本题的“笛卡尔积”可记为: M×W 。

Page 7: 第 2 章 关系数据库基本理论

2.3.2 关系的数学定义 1 .域 域( Domain )是值的集合。如: {1 到 100 之间的整

数 } , { 男 , 女 } , {Mary,Tom} 等都是域。域中元素的个数称为域的基数,如有下列集合:

D1={ 王小平 , 张亚 , 李军 } ,表示单位人员的集合;D2={ 教授 , 副教授 , 讲师 , 助教 } ,表示职称的集合;D3={35,27,18} ,表示工龄的集合。其中 D1 的基数是 3 , D2 的基数是 4 , D3 的基数是 3 。

Page 8: 第 2 章 关系数据库基本理论

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 章 关系数据库基本理论

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 章 关系数据库基本理论

2.4 关系代数 2.4.1 传统的集合运算 1 .并运算 (UNION) 例 2-2 2 .交运算( INTERSECTION ) 例 2-3 3 .差运算( DIFFERENCE ) 例 2-4 4 .关系的笛卡尔积 例 2-5

Page 11: 第 2 章 关系数据库基本理论

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 章 关系数据库基本理论

2.5 关系的规范化 2.5.1 存储异常 【例】某校教务部要建立一个数据库来描述教师与教研室的情况,面临的对象有:教师编号 (TNO) 、教师姓名(TNAME) 、教师主讲的课程名( KNAME )、教师主讲课程的次数( KTIME )、教研室代号( JNO )、教研室主任( JMN )等。

通过分析可知上述对象之间有如下对应关系: ( 1 )一个教研室有若干教师,但一个教师只属于一个教研室; ( 2 )一个教研室只有一个主任; ( 3 )一名教师可以主讲多门课程,每门课程可由多名教师主讲; ( 4 )每名教师主讲每门课程有一定的次数。

根据上述分析,我们可以考虑以下两种数据库模式的选择方案。方案 1 :采用一个总的关系模式:方案 2 :采用三个关系模式:

Page 13: 第 2 章 关系数据库基本理论

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 章 关系数据库基本理论

4 .传递函数依赖 设R 为任一给定关系, X , Y , Z 为其不同属性子集,

若 XY , Y X , YZ ,则称 Z 传递函数依赖于 X , yx t

Page 15: 第 2 章 关系数据库基本理论

2.5.3 关系规范化的过程 1 .第一范式 任给关系 R ,如果 R 中每一属性的值域中的每一个值都是不可分解

的,则 R 为第一范式 , 记作 R∈1NF 。 教师编号 所教课程

0001 程序设计0002 程序设计,操作系统

非规范化关系

教师编号 所教课程0001 程序设计0002 程序设计0002 操作系统

规范化的关系

Page 16: 第 2 章 关系数据库基本理论

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 章 关系数据库基本理论

2.5.4 关系分解的正确性

把组合属性分解为不可再分的属性

非规范化关系

1NF

2NF

3NF

BCNF

消去非主属性对主关键字的部分函数依赖

消去非主属性对主关键字的传递函数依赖

消去所有部分函数依赖,包括主属性对候选关键字的部分函数依赖

使每一个决定因素都包含候选码

关系分解的过程

Page 18: 第 2 章 关系数据库基本理论

通过一个实例来说明关系分解的正确性。 在某学校中,一个学生(学号属性名为 S# )只在一个系(系号属性

名为 DEPT )学习,一个系只有一名系主任(姓名属性名为 MN ),下表是该学校的一个实际关系,其关系模式为 R ( S# , DEPT , MN )。

可见在该关系中, MN传递函数依赖于 S# ,故需对之进行关系分解。可有三种方法:

S# DEPT MN

S1 D1 张五S2 D1 张五S3 D2 李四S4 D3 王一

Page 19: 第 2 章 关系数据库基本理论

1 .分解成三个关系: R1 ( S# ) ,R2(DEPT),R3(MN) S#

S1

S2

S3

S4

关系 R1

DEPT

D1

D2

D3

关系 R2

MN

张五

李四

王一

关系 R3

Page 20: 第 2 章 关系数据库基本理论

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 章 关系数据库基本理论

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 章 关系数据库基本理论

小结 本课主要讲解关系数据库的理论基础,为

进一步深入学习关系数据库的原理与应用打下基础。本课在讨论关系数据库的基本概念的基础上,探讨了关系的数字定义、关系的完整性、关系代数的一些基本操作、函数依赖与关系的规范化等学习关系数据库必须要了解的理论基础。关系代数与关系的规范化是本章的重点。