第九章 关系模型的规范化设计理论

一、关系模式的函数依赖

1.函数依赖:设R(U)是属性集U={A1,A2,…,An}上的关系模式,X和Y是U的子集。若对R(U)的任一具体关系r中的任意两个元组t1和t2,只要t1[X]=t2[X]就有 t1[Y]=t2[Y],则称“X函数确定Y”或“Y函数依赖于X” (Founctional Dependence),记作X→Y。  小写字母r表示关系模式R(U)的对应的具体关系 (当前基本表的状态)  注意:R(U)的一切具体关系r都要满足函数依赖的约束条件。
2.几个常用的术语和记号: 若X→Y,则称X为这个函数依赖的决定因素,简称X是决定因素。  若X→Y且Y→X,则称X与Y相互函数依赖,记作X Y。  若X→Y,但Y属于X,则称X→Y是平凡函数依赖。  若X→Y,但Y不属于X ,则称X→Y是非平凡函数依赖。
3.完全函数依赖:⑴如果X→Y,且对于X的任何一个真子集X’,都有X’→Y ,则称Y对X 完全函数依赖或者X完全决定Y,记作:
4,部分函数依赖:如果X→Y,但Y不是完全函数依赖于X,则称Y对X部分函数依赖,记作:
5.传递函数依赖:
6.主属性和非主属性:对关系模式R(U),包含在任何一个候选键中的属性称为主属性,不包含在任何候选键中的属性称为非主属性或非码属性。

二、关系模式的规范化

1.范式:即正规公式,是符合某一种级别的关系模式的集合。

5𝑁𝐹 ⊂4𝑁𝐹 ⊂𝐵𝐶𝑁𝐹 ⊂3𝑁𝐹 ⊂2𝑁𝐹 ⊂1𝑁F

2.规范化:一个低一级范式的关系模式,通过模式分解可以转换为若干个高 一级范式的关系模式的集合,这种过程就叫规范化。

3.1NF:如果一个关系模式R(U)的所有属性都是不可再分的基本数据项,则称 R(U)为第一范式,即R(U)∈1NF。(一般而言,每一个关系模式都必须满足1NF)
3.2NF:若R(U)∈1NF,且每一个非主属性完全函数依赖于每个候选键,称R(U) 为第二范式,即R(U)∈2NF。(目的:消除非主属性的部分依赖)
4.非2NF关系模式的转换方法:将关系模式进行分解。用投影分解把原关系模式R分解为两个或 多个关系模式。
5.3NF:设关系模式R(U)∈2NF,且每一个非主属性不传递函数依赖于R(U)的候选键,则称R(U)为第三范式,即R(U)∈3NF。(目的:消除非主属性的 传递依赖)
6.BCNF:若关系模式R(U)∈1NF,对于R(U)的任意一个函数依赖X→Y,若 Y不属于X, 则X必含有候选键,那么称R(U)为BC范式,即R(U)∈BCNF。  若关系模式R(U)∈1NF,且R(U)的每个属性都不传递依赖于R的候选键, 则称R(U)为BC范式,即R(U)∈BCNF。

若关系模式R(U)∈BCNF,则以下结论成立。  R(U)的所有非主属性都完全函数依赖于每一个候选键,因此R(U)∈2NF。  R(U)的所有主属性都完全函数依赖于不包含它的候选键。  R(U)中没有属性完全函数依赖于任何一组非候选键属性

7.定理1:若R(U)∈BCNF,则R(U) ∈3NF。3NF可能违反BCNF的两种情况 :关系中包含两个(或更多)联合候选键  候选键有重叠,通常至少有一个重叠的属性。 例:(学号,课程号),(学号,教师姓名)
8.定理2:如果R(U)∈3NF且R(U)有唯一候选键X,则必有R(U)∈BCNF  BCNF是在函数依赖条件下对模式分解所能达到的最高分离程度。
9.3NF与BCNF的区别 :对一个函数依赖A→B,3NF允许B是主属性,而A不是候选键。而BCNF 则要求在这个依赖中,A必须是候选键。  当3NF消除了主属性对候选键的部分和传递函数依赖时,则成为BCNF。
10.多值依赖*:设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,并且Z=U-X-Y。若对于R(U)的任一具体关系r,r在属性(X,Z)上的每一个值, 就有属性Y上的一组值与之对应,且这组值仅仅决定于X上的值而与Z上的值无关,则称Y多值依赖于X,记作X→→Y。
11.关系模式规范化步骤

12.判断最高满足第几范式:1先确定候选键K  2判断是否属于BC  3判断是否属于第二范式  4判断是否属于第三范式  特殊的:不存在非主属性时,R至少属于第三范式

三、函数依赖的推理规则

1.函数依赖的逻辑蕴涵:对于满足函数依赖集F的关系模式R(U,F)的任意一个具体关系r,若函数依赖X→Y都成立(即对于r中的任意两个元组t,s,若t[X]=s[X],则有 t[Y]=s[Y]),则称F逻辑蕴涵X→Y, 记为 F X→Y。(注意:X→Y不一定属于F)
2.F的闭包:

3.Armstrong公理系统:

4.属性的闭包:

5.函数依赖集的等价和覆盖

6.最小函数依赖集

  • 28
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值