5第五章第1讲函数依赖新
25
四、候选键的形式化定义 ,A 设 有 关 系 模 式 R(A1,A2,…,An) 和 属 性 集 的函数依赖集。 U={A1,A2,…,An} 的子集 X, F是 R的函数依赖集 。 ,A 的子集X 如果: 如果: ①X→∪属于F+; X→∪属于F ②不存在X的真子集X’,使X’→∪∈F+。 不存在X的真子集X 则称X是R的一个候选键。 则称X 的一个候选键。
2
教学内容
函数依赖 函数依赖的公理体系 关系模式的分解 关系模式的规范化
3
第5章 关系数据库模式设计
第1讲 函数依赖
主要内容
规范化设计的必要性 函数依赖(FD) 函数依赖( ) 函数依赖的逻辑蕴涵 候选键的形式化定义
5
一、规范化设计的必要性
关系模型1 R(教师 住址,课程号,课程名) 关系模型1:R(教师,住址,课程号,课程名) 教师,
主属性:包含在任何一个候选键中的属性。 主属性:包含在任何一个候选键中的属性。 非主属性或非键属性:不属于任何键中的属性。 非主属性或非键属性:不属于任何键中的属性。 全键:由全部属性组成主键。 全键:由全部属性组成主键。
26
小结
完全FD 完全FD 非平凡FD 非平凡FD 函数依赖 平凡FD 平凡FD 侯选键 F=X→Y 能从F 能从F导出的所有 X→Y F+ X→Y在 X→Y在R 中是否成立 部分FD 部分FD 传递FD 传递FD
27
分解
关系模型2 R1(教师 住址) 关系模型2:R1(教师,住址), 教师, R2(教师 课程号,课程名) R2(教师, 课程号,课程名) 教师,பைடு நூலகம்
9
续4
不合理的关系模式会引起数据冗余和操作异 常的问题,需要对关系模式进行规范化设计。 常的问题,需要对关系模式进行规范化设计。
10
二、函数依赖(FD) 函数依赖( )
17
思考: 思考:
是不是所有的函数依赖都会引起数据冗余 和操作异常呢?显然不是,函数依赖是现实世 和操作异常呢?显然不是, 界施加在关系上的语义约束条件, 界施加在关系上的语义约束条件,只是某些函 数依赖会造成数据冗余和操作异常。 数依赖会造成数据冗余和操作异常。究竟是什 么样的函数依赖会造成数据冗余和操作异常? 么样的函数依赖会造成数据冗余和操作异常?
12
举例1 举例
例:R(教师,住址,课程号,课程名) R(教师 住址,课程号,课程名) 教师,
X
教师
Y
住址 a1 a1 a1 课程号 c1 c2 c3 课程名 n1 n2 n3
u v
t1 t1 t1 t2 t3
u[X]=v[X]c4 ⇒ a2
a3 c6
u[Y]=v[Y] n4
n4
教师→ 教师→住址
24
2、函数依赖集的闭包
所有被F逻辑蕴涵的函数依赖组成的依赖集 所有被F 称为F的闭包,记为F 称为F的闭包,记为F+。 F+={X→Y|F|=X→Y} ={X→Y|F|=X→ ① F+中的元素是函数依赖; 中的元素是函数依赖; ② 一个 FD 能够成为 F + 中的元素的条件是 : 能 一个FD 能够成为F 中的元素的条件是: FD能够成为 够从F中推导出该FD FD; 够从F中推导出该FD; ③ 一般地有F⊆F+。 一般地有F
教师 徐浩 徐浩 张国庆 张国庆 宋歌 住址 a1 a1 a2 a2 a3 课程号 c1 c2 c2 c3 c6 课程名 数据库 网络 网络 VFP设计 VFP设计 通信原理
8
原因: 原因:
数据依赖
续3
关系模型1 R(教师 住址,课程号,课程名) 关系模型1:R(教师,住址,课程号,课程名) 教师,
18
2、非平凡函数依赖与平凡函数依赖 为非平凡FD ①若有X→Y,且 Y ⊆ X ,称X→Y为非平凡FD 若有X ②若有X→Y,且Y⊆X,称X→Y为平凡函数依赖 若有X
19
3、完全依赖
设有关系模式R(A 设有关系模式R(A1,A2,…,An)和属性集U= ,A 和属性集U= {A1,A2,…,An}的子集X、Y。如果X→Y,并且对 如果X ,A 的子集X 于X的任何真子集X’,都有X’→Y不成立,则称Y 的任何真子集X ,都有X → 不成立,则称Y 完全依赖于X,记为X 记为X 完全依赖于 Y。 → Y。
14
几点说明
①为什么称为函数依赖呢? 为什么称为函数依赖呢? 函数依赖是一种语义范畴的概念, ② 函数依赖是一种语义范畴的概念 , 反映的是 语义完整性约束, 所以最初要从语义的角度 语义完整性约束 , 来确定一个关系的函数依赖, 来确定一个关系的函数依赖 , 它一般是隐藏 在客观现实和我们的经验当中的。 在客观现实和我们的经验当中的。 S# → SNAME
11
1、定义
设 有 关 系 模 式 R(A1,A2,…,An) 和 属 性 集 ,A 如果对于具体关系r U={A1,A2,…,An}的子集X、Y。如果对于具体关系r ,A 的子集X 的 任 何 两 个 元 组 u 和 v , 只 要 u[X]=v[X] , 就 有 u[Y]=v[Y],则称X函数决定Y 函数依赖X u[Y]=v[Y],则称X函数决定Y,或Y函数依赖X,记 为 X →Y 。
22
三、函数依赖的逻辑蕴涵
23
1、逻辑蕴涵
是关系模式R的函数依赖集合, 设F是关系模式R的函数依赖集合,X、Y是属 性集U={A 性集 U={A1,A2,…,An} 的子集 , 如果从 F 中的函数 ,A 的子集,如果从F 依赖能够推导出X 则称F逻辑蕴涵X 依赖能够推导出 X→Y, 则称 F逻辑蕴涵 X→Y, 或 的逻辑蕴涵。记为F|=X 称X→Y是F的逻辑蕴涵。记为F|=X→Y
21
5、传递依赖
设 有 关 系 模 式 R(A1,A2,…,An) 和 属 性 集 ,A 如果有X U={A1,A2,…,An} 的子集 X 、 Y 、 Z 。 如果有 X→Y 、 ,A 的子集X Y≠φ, X≠φ和 则称Z Y→Z、 Z-Y≠φ,Z-X≠φ和Y → X,则称Z传 / t 递依赖于X 记为X 递依赖于X,记为X → Z。
15
几点说明(续一) 几点说明(续一)
③函数依赖与属性之间的联系类型有关。 函数依赖与属性之间的联系类型有关。 属性X与Y有1:1的联系,X→Y,Y→X。 的联系,X→Y,Y→X。 属性X 公司名→总裁 , 总裁 → 公司名 , 即 : 公司名 ↔ 总 公司名↔ 公司名 → 总裁,总裁→公司名, 裁 属性X与Y有m:1的联系,则只存在X→Y。 的联系,则只存在X→Y X→Y。 属性X 学号与专业之间是m:1,则:学号→专业 学号→ 学号与专业之间是m 属性X 与 Y 有 m : n 的联系, 则 X 与 Y 之间不存在 属性 X 的联系 , 函数依赖关系。 函数依赖关系。
f
20
4、部分依赖 、
设有关系模式R(A 设有关系模式R(A1,A2,…,An)和属性集U= ,A 和属性集U= {A1,A2,…,An}的子集X、Y。如果X→Y,但Y不 如果X ,A 的子集X 完全依赖于X,则称Y部分依赖于X,记为 完全依赖于X 则称Y部分依赖于
X Y。 Y。 →
p
存在X的真子集X , 存在X的真子集X’,有X’→Y →
数据库原理及应用
第5章 关系数据库模式设计 章
本章主要问题
在一个关系数据库应用系统中, 在一个关系数据库应用系统中,构成该系统 的关系数据库的全局逻辑模式的基本表的全体, 的关系数据库的全局逻辑模式的基本表的全体, 称为该系统的数据库模式。 称为该系统的数据库模式。 数据库模式 问题:面对一个现实问题,如何有效地设计一 问题:面对一个现实问题, •方案1 R (教师,住址,课程号,课程名) 方案1 (教师 住址,课程号,课程名) 教师, 方案 个好的关系数据库模式? 个好的关系数据库模式? •方案2 R1(教师,住址) 方案2 R1(教师 住址) 教师, 方案 R2(教师,课程号,课程名) R2(教师,课程号,课程名) 教师
教师 徐浩 张国庆 宋歌 住址 a1 a2 a3 教师 徐浩 徐浩 课程号 c1 c2 c2 c3 c6 课程名 数据库 网络 网络 VFP设计 VFP设计 通信原理
关系模式R1和R2的设计是合适的 关系模式R1和R2的设计是合适的 R1
张国庆 张国庆 宋歌
r1
r2
7
续2
关系模型1 R(教师 住址,课程号,课程名) 关系模型1:R(教师,住址,课程号,课程名) 教师,
13
举例2 举例
例:R(教师,住址,课程号,课程名) R(教师 住址,课程号,课程名) 教师,
X
教师 住址 a1 a1 a1 课程号 c1 c2 c3
Y
课程名 n1 n2 n3
u v
t1 t1 t1 t2 t3
u[X]=v[X] c4 u[Y] ≠ v[Y] 但 a2 n4
a3 c6 n4
教师 → 课程名 /
16
几点说明(续二) 几点说明(续二
函数依赖不是指关系模式R ④函数依赖不是指关系模式R的某个或某些关系 关系模式R 实例满足的约束条件,而是指关系模式 实例满足的约束条件,而是指关系模式R的所 有实例均要满足的约束条件。 有实例均要满足的约束条件。 ⑤当X→Y时,Y值由X值决定,X也称为决定因素 值由X值决定,
教师 徐浩 徐浩 张国庆 张国庆 宋歌 住址 a1 a1 a2 课程号 c1 c2 c2 课程名 数据库 网络 网络
存在问题: 存在问题: 数据冗余 更新异常 插入异常 删除异常
关系模式R 关系模式R的设计是不合适的 a2 c3 VFP设计 VFP设计
a3 c6 通信原理
6
续1
关系模型2 R1(教师 住址) 关系模型2:R1(教师,住址), 教师, R2(教师 课程号,课程名) R2(教师, 课程号,课程名) 教师,