第 4 章 关系数据库基本概念
DESCRIPTION
第 4 章 关系数据库基本概念. 本 章 要 点. 基 本 概 念. 函 数 依 赖. 候选关键字与主属性. 关 系 规 范 化. 函数依赖理论. 退 出. 学习目标. 掌握函数的依赖关系(完全函数依赖、部分函数依赖和传递函数依赖) 候选关键字,关键字和主属性的基本定义 关系规范化的理论,掌握范式的基本概念和分解方法. 关系数据库基本概念. 关系数据库 : 按关系数据模型组织的数据库。 关系模式 : 关系名及其属性序列 , 也称为关系的型。 - PowerPoint PPT PresentationTRANSCRIPT
2
基 本 概 念基 本 概 念
函 数 依 赖函 数 依 赖
候选关键字与主属性候选关键字与主属性
关 系 规 范 化关 系 规 范 化
本 章 要 点
退 出退 出
函数依赖理论 函数依赖理论
3
掌握函数的依赖关系(完全函数依赖、部分函数依赖和传递函数依赖)
候选关键字,关键字和主属性的基本定义 关系规范化的理论,掌握范式的基本概念和分
解方法
学习目标
4
关系数据库 : 按关系数据模型组织的数据库。关系模式 : 关系名及其属性序列 , 也称为关系的
型。域:是一组具有相同数据类型的值的集合。笛卡尔积:各域各取一值的完全组合称为这些域
的笛卡尔积。
关系数据库基本概念
域 D1 和域 D2 的笛卡尔积是一个表,其属性为原 D1 域和 D2 域所有属性的集合,其行数为 D1 域值的个数和 D2 域值个数的乘积,每一行由 D1 和
D2 各取一值组成,所有各行均不重复。
5
如果给定一组域 D1 , D2 ,… D n
则 D1 D2 ……. Dn╳ ╳ ╳
={ ( d1,d2,…dn )︱ di Di,I=1,2,…n}∈
其中每一个元素( d1,d2,…dn )叫做一个 N 元元组,或简称为元组。
元素中的每一个值叫作元组的一个分量,也是它所对应实体或联系的那个属性的一个值。
6
基数:域中数值(元素)的个数。笛卡尔积的基数:构成该积所有域的基数
累乘积, 称为这些域的笛卡尔积。笛卡尔积的目数:元组中每个分量的列数
7
例:设有 D1 、 D2 二个域,求 D1×D2 。已知:
D1={(X1,Y1),(X2,Y2),(X3,Y3)}
D2={(M1,W1,Z1),(M2,W2,Z2)}
则: D1×D2={(X1,Y1,M1,W1,Z1),(X1,Y1,M2,W2,Z2),
(X2,Y2,M1,W1,Z1),(X2,Y2,M2,W2,Z2),(X3,Y3,M1,W1,Z1),(X3,Y3,M2,W2,Z2)}
D1×D2 的基数 =3×2=6, 目数 =2+3=5
8
又例如: D1={(X1,Y1),(X2,Y2),(X3,Y3)}
D3={P1,P2,P3}
则: D1×D3={(X1,Y1,P1),(X1,Y1,P2),
(X1,Y1,P3),(X2,Y2,P1),(X2,Y2,P2),(X2,Y2,P3),(X3,Y3,P1),(X3,Y3,P2),(X3,Y3,P3)}
D1×D3 的基数 =3×3=9, 目数 =2+1=3
9
多个属性构成的关系是这些属性所属域的笛
卡尔积的子集。一般说来只有其真子集才有意义。
图 3.1 的 C 关系中只有一半元组是有意义的。
10
图 3.1 关系的笛卡尔积
11
思考题:设有两个域,名为 D1 和 D2 。
D1={A , B , C , D , E} 是 5 个大写英文字母
集合;
D2={65 , 66 , 67 , 68 , 69} 是 5 个大写英文
字母对应的 ASCII 码集合;
请列出笛卡儿积 D1 D2╳ 对应的二维表。
关系数据库基本概念 ____课堂练习
12
所有关系模式的集合(包括关系名,属性名,关键字,完整性约束和安全性要求)称为关系数据库模式,它表示一个关系数据库的逻辑结构。
关系数据库模式中所有关系模式的具体关系的集合称关系数据库。
关系数据库模式是数据的型的表示,而关系数据库则是数据的值的表示。
13R
数据库中的关系应具备如下性质: 每一列中的分量来自于同一个域,是同一类型的数据。 不同的列可来自于同一个域,每一列称为属性,要给予不同的属性名。 列的顺序的改变不改变关系。在一个关系中任意两个元组不能全同。 元组次序可以任意交换而不改变关系。 每一分量必须是不可再分的数据项,即具有原子性。
14
现实世界 信息世界 关系 表 计算机世界
事物类 实体集合 关系 二维表 数据库文件
事物 实体 元组 行 记录
性质 属性 域(属性)
列 数据项
不同领域不同术语对应关系
15
一、函数依赖概念
关系理论中函数依赖是指关系中属性间的对应关系。
如关系中对于属性(组) X 的每一个值,属性(组) Y 只有唯一的值与之对应,则称 Y 函数依赖于 X ,或称 X 函数决定 Y 。记作 X→Y ,否则,如 果 X 不 能 函 数 决 定 Y , 记 作 X→Y 。 若X→Y , Y→X ,则记作 X Y 。
4.2 函数依赖
16
例如第 1 章中表 1.3 所示“系” 关系中:系代码→系名,系代码→系地址,系代码→系电话,系代码→系专业设置如果系名值是惟一的,即各系名均不相同,那么还
有函数依赖集:系名→系代码,系名→系地址,系名→系电话,系
名→系专业设置
17
A B A B
A B C D A B C D
a1 b1 c1 D1 a1 b1 c1 d1
a1 b1 c2 D2 a1 b2 c2 d2
a2 b2 c3 d3 a2 b2 c3 d3
a3 b1 c4 d4 a3 b2 c4 d4
思考
18
决定因素可能为两个以上属性构成的属性组。
在一个关系中,如果一个属性(组)值不唯一,则这个属性(组)与任何属性(组)的函数依赖关系中,它都不是决定因素。
19
1. 函数依赖不是指关系模式 R 的某个或某些关系实例满足的约束条件,而是指 R 的所有关系实例均要满足的约束条件。(函数依赖关系的存在与时间无关 )
2. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖 , 而不能按照其形式化定义来证明一个函数依赖是否成立。
例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立
说 明
20
3. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。
21
4 . 函数依赖与属性间的联系类型有关 ① 在一个关系模式中,如果属性 X 与 Y 有 1:1 联
系时,则存在函数依赖 X→Y,Y→X ,即 X ←→ Y 。 例如,当员工没有重名时, Eno ←→ Ename 。
② 如果属性 X 与 Y 有 m:1 的联系时,则只存在函数依赖 X→Y 。例如, Eno 与 Eage , Dname 之间均为 m:1 联系,所以有 Eno → Eage , Eno → Dname 。
③ 如果属性 X 与 Y 有 m:n 的联系时,则 X 与 Y之间不存在任何函数依赖关系。例如,一个员工可以参与多个工程,一个工程可以为多个员工参与,所以 Eno 与 Pno 之间不存在函数依赖关系。
5. 函数依赖可以保证关系分解的无损连接性
22
二、部分函数依赖
若 X,Y 为关系 R 中的属性 ( 组 ) ,如 X→Y
且 X 中存在真子集 X’(X’≠X X’ X)∧ ∈ ,满足
X’→Y ,则称 Y 部分函数依赖于 X ,记作
图 3.2 部分函数依赖示意
23
三、完全函数依赖 如 X,Y 是关系 R 中属性 ( 组 ) , X→Y且对于X 的任何真子集 X’ ( X’≠X X’ X∧ ∈ ),都有 X’ Y ,则称 Y 完全函数依赖于 X ,记作 X → Y
24
四、传递函数依赖
一般说来,如 X 、 Y 为关系 R 中属性( 组)( Y X∈ )有 X→Y , Y X 但 Y → Z ,则称 Z 传递函数依赖于 X, 记作 X Z 。
25
以上关系中,课程名→职工号、职工号 课程名,但职工号→老师名、职工号→性别,则有:
课程名 性别;课程名 老师名。
26
一、候选关键字
在关系 R 中如记录完全函数依赖于属性 ( 组 )X ,则称 X 为关系 R 中的一个候选关键字。它具有如下性
质:
在一个关系中,候选关键字可以有多个。
任何两个候选关键字值都是不相同的,因为若有两条记录的候选关键字值相同,它和记录的关系就不是决定因素。
4.3 候选关键字与主属性
27
关键字可能由一个属性构成,也可能由多
个属性构成。关键字不可能再与其他的属性构成
新的候选关键字。
28
在任何关系中至少有一个关键字。
根据关系的基本要求,在一个关系中任何二个元组不全同。因而在一个 N 元关系中,如果: 单个属性都不是关键字 任何两个属性的属性组也不是关键字 任何 K (K<N) 个属性的属性组都不是关键字
则该关系全部属性构成的属性组是其关键字。
29
二、主属性
在一个关系中,如一个属性是构成某一个候选关键字的属性集中的一个属性,则称它为主属性。
如一个属性不是构成该关系任何一个候选关键字的属性集的成员,就称它为非主属性。
30
一、问题的提出
数据冗余:是指同一数据在多个不同的地方存放。
数据冗余不仅导致数据量的增加,使系统处理速
度变慢,效率降低,而且易发生错误,影响全系统
的性能。
4.4 关系规范化
31
操作异常包括插入操作异常和删除操作异常两类。
插入操作异常指欲录入的数据因缺少关键字或关键字数据不完整而不能被录入的现象。
删除操作异常指不应当被删除的数据因部分主属性删除而被删除的现象。
32
操作异常与数据冗余通常是相伴而生的,
因此可通过检查数据冗余来发现是否存在操作
异常的可能。
33
关系规范化:将一个低一级范式的关系模
式,通过模式分解可以转换为若干个高一级范
式的关系模式集合,这种过程就叫关系模式的
规范化。
34
二、范式 范式来自英文 Normal form ,简称 NF ,是符合某个级别的关系模式的集合。 关系数据库中的关系必须满足最低的关系要求 满足不同程度要求的为不同范式。 目 前 主 要 有 六 种 范 式 :1NF 、 2NF 、 3NF 、 BCNF 、 4NF 、 5NF 。 满足最低要求的称第一范式,简称为 1NF 。
35
1 、第一范式( 1NF )
任给关系 R ,如果 R 中每个列与行的交点处
的取值都是不可再分的基本元素,则 R达到第一
范式,简称 1NF, 记为 R 1NF∈ 。
根据关系的基本性质可见,符合关系基本性
质的关系均达到第一范式。
36
例如:将人事卡片关系分解为三个关系,从而达到第一范式。
37
38R
2 、第二范式( 2NF )
如果一个关系达到第一范式,且不存在任何非主属性对候选关键字的部分函数依赖,则称此关系达到第二范式,简称 2NF ,记为 R 2NF∈ 。
或者表示为如果一个关系达到第一范式,且不存在非主属性对构成候选关键字的部分主属性的完全函数依赖,则该关系达到第二范式。
39
关系从 1NF优化到 2NF 的方法是 :
将有关非主属性与其完全函数依赖的那些部分主属性分解建立新的关系。
40
图 3.3 不到第二范式的关系示意
在如图 3.3 示意图中,关系即使达到第一范式,也未达到第二范式。
分解的方法是:将p3 、 p4 、 p6等函数依赖于 k3 的非主属性抽出来,加上k3 组合成新的关系,k3 是其关键字;剩余非主属性、主属性包括 k3 维持原有
各关系不变。
41
42
3 、第三范式( 3NF )
如果一个关系达到第二范式且不存在非主属性对候选关键字的传递函数依赖,则称为达到第三范式,简称 3NF 。
3NF 还可表述为 : 如果一个关系达到第二范式且不存在非主属性对非主属性的完全函数依赖,则称之达到第三范式。
43
44
关系从 2NF优化到 3NF 的方法是 :
将对关键字存在传递函数依赖的那些属性与其完全函数依赖的非主属性分解出来建立新的关系,而它们所依赖的那个非主属性作为关联属性要存在于原关系中。
45
46
4.BCNF 如果一个关系中每个决定因素都是关键字,则该
关系达到 BCNF 。
图 3.5 不到 BCNF 的关系示意
47
分解的方法是:• 将 k4等函数依赖于 k3 的主属性抽出来,• 加上 k3 组合成新的关系, k3 是其关键字;• 剩余主属性包括 k3 维持原有各关系不变。
48
表 3.9 不到 BCNF 的关系实例
客户名 密码王平 1
李宾 2
张玲 3
银行名 客户名中 1 王平商 1 王平中 1 李宾商 1 张玲
可分解为:
49
四、关系分解的正确性
关系分解的方案是多样的,但要注意保证分解的正确性,即:要保证分解后所形成的关系与原关系等价。
分解的等价性是指 :
分解的无损连接性 保持函数依赖性
50
无损连接性是指通过对分解后形成关系的
某种连接运算能使之还原到分解前的关系。
保持函数依赖性是指分解过程中不能丢失
或破坏原有关系的函数依赖关系。
51
利用函数依赖进行系统推理可以帮助我们快速优化设计。
一、推理规则 1 、自反律 如果某一属性 X 包含在属性集 Y 之中,那么, Y→X 。 2 、增补律 如果 X 、 Y 为属性或属性集且有 X→Y , Z 为其他属性
或属性集那么, XZ→Y ,其中, XZ 表示 X 与 Z 的集合。
4.5 函数依赖理论
52
3 、传递律 如果 X 、 Y 、 Z 均是属性,且已知 X→Y 、 Y→Z ,那么
X→Z 。 4 、合并律 如果 X 、 Y 、 Z 、 P 均是属性,且已知 X→Y 、 Z→P ,那
么 XZ→YP 。 5 、分解律 如果 X 、 Y 、 Z 均是属性,且已知 X→YZ ,那么
X→Y 、 X→Z ; 6 、伪传递律 如果 X 、 Y 、 Z 、 P 均是属性,且已知 X→Y 、 YZ→P ,
那么 XZ→P ;
53
二、属性集的闭包 如果 A 、 B 、 C 、…… K 均函数依赖于属性集
F ( A 、 B 、 C 、…… K 、…… Z ),那么我们用 ABC……K 表示 F 的闭包,记作 F+ 。
【例 4.1】已知有关系 R ( A , B , C , D , E, G ),有函数依赖集: A→B 、 A→C 、 A→E、 CE→G 。求 R 所有属性集合的闭包 F+ 。
54
解 : 根据自反律, A→A ,因此 F→A ,可将 A加入 F+
中; 因为 A→B 、 A→C 、 A→E ,根据传递律, F→B 、 F→C 、 F→E ,可将 B 、 C 、 E加入到F+ 中;
根据合并律, F→CE ; 因为 CE→G ,根据传递律, F→G ,可判定 F+ 包括
G ;因此, F+=ABCEG 。
55
三、属性集的闭包可用于帮助确定候选关键字。 如果属性或属性集 F 的闭包为 F+ ,且 F+ 包括数据
表中全部属性,则 F 为该数据表的一个候选关键字。【例 4.2】已知有关系
R ( A , B , C , D , E , G ),有函数依赖集: A→B 、 A→C 、 A→E 、 CE→G 。求判断属性集( A , D )为 R 的候选关键字。
由例 4.2 可知, A+=ABCEG ,由增补律,( A , D )+= ABCDEG ,因此,( A , D )为 R 的候选关键字。
56
小结
函数依赖是指关系中一个属性集和另一个属性集间的对应关系。函数依赖有部分函数依赖、完全函数依赖和传递函数依赖。
第一范式( 1NF ) 第二范式( 2NF ) 第三范式( 3NF ) BC 范式( BCNF )
57
作 业 1 、解释下列术语: 实体,函数依赖,候选关键字,主属
性, 1NF , 2NF , 3NF 。 2 、在关系数据模型中,什么是关系的原子性?若关系不
具有原子性,应如何处理? 3 、现要建立一个关于系、学生、班级的关系数据库,假
设一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
描述学生的属性有:学号、姓名、性别、出生年月、系名、班级号
描述班级的属性有:班号、专业名、系号、人数 描述系的属性有:系号、系名、系地址、系电话号码 请写出关系模式,并写出每个关系模式的函数依赖集,
指出是否存在传递函数依赖。
58
5 、一个订货系统数据库中包括顾客、存货和订单等内容,以下是该数据库所应包含的内容:顾客 (顾客号、收货地址、余额、赊购限额、折扣 ) ,订单包括订单头信息 (顾客号、收货地址、订货时间 ) 以及订单主要内容 (货物编号、订货数量 ) ,货物 (货物编号、制造厂商、每个厂商的实际存货量、每个厂商规定的最低存货量、货物的详细描述 ) 。
给出你认为合适的函数依赖。
59
6 、什么是操作异常?产生操作异常的原因和类型有哪些?如何解决?
7 、关系规范化指的是什么?它在关系数据库的设计过程中与函数依赖所考虑的问题有什么不同?
8 、假设顾客是关于顾客地址的一个关系模式,它包含属性有:姓名、街道、城市、省和邮政编码。在该关系模式设计中,对于任意一个邮政编码,只有一个城市和省与之对应;同样对于任意一个街道、城市和省也只有一个邮政编码和它对应,那么这个关系模式属于第几范式?你能设计出更好的结构吗?
9 、如果一个关系包括老师名、学生名、课程名三个字段,每个老师只上一门课,学生与课程确定后就唯一确定老师。那么这个关系模式属于第几范式?
10 、什么是关系分解的正确性?如何保证关系分解的正确性?