第六章 关系数据库理论
6.1 关系模式设计
关系的外延和内涵
外延:关系模型的值,即关系模型中的数据。是动态的
内涵:是对关系、属性、域的定义和说明,即关系模型的型的定义。
R(U,D,dom(),F)
关系的内涵称为关系模式,是静态的,通常简记为R<U,F>等
6.2 规范化
规范化是指定义关系模式应该符合的条件,确保关系模式不出现某些操作异常,并减少数据冗余
函数依赖(FD)
定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对R(U)的任意一个可能的实例r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或者Y函数依赖于X,记作X→Y。X称为这个函数依赖的决定因素
1.函数依赖是指R的所有关系实例均要满足的约束条件
2.函数依赖由语义决定,如果语义规定不允许有同名学生,则函数依赖“姓名→年龄”成立,如果允许同名则不成立
函数依赖的分类
平凡的函数依赖/非平凡的函数依赖
X→Y
1.Y是X的子集,👉平凡的函数依赖
2.Y不是X的子集,👉非平凡的函数依赖
完全函数依赖/部分函数依赖
X→Y
1.对于X的任意一个真子集X1,都有X1不决定Y,则Y完全函数依赖于X (F)
2.不满足上述条件,部分函数依赖 (P)
直接依赖/传递函数依赖
在关系模式R(U)中,如果存在非平凡的函数依赖X→Y(Y不决定X),和Y→Z,则X→Z一定成立。Z传递函数依赖于X (T)
如果Y→X,则Z直接依赖于X,而非传递依赖(可能会有判断)
多值依赖(MVD)
定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。如果对R(U)的任一关系r,r中任意在X上值相同的元组s,t,交换s,t在Y上的分量而得到的元组仍在关系r中,则称Y多值依赖于X,或X多值决定Y,记为X→→Y
平凡的多值依赖/非平凡的多值依赖
平凡:XUY=U,X→→Y必然成立
非平凡:XUY != U
多值依赖的性质
1.对称性
2.传递性
3.XUY=U,X→→Y必然成立
4.(放图)
多值依赖与函数依赖的区别
1.有效性
2.包含性
码
定义:设K为关系模式R<U,F>中的属性或属性组。若K完全函数依赖于U,则称K为R的一个候选码。若关系模式R有多个候选码,则选定其中的一个作为主码。候选码常简称为码
对于一个具体的关系模式,每个候选码都要查看是否是完全函数依赖
码的2个性质
1.决定性
2.极小型
概念区分
候选码:码
主码:候选码的一个
主属性:所有候选码中出现的属性
非主属性:不出现在任何候选码中的属性
全码:由关系模式的所有属性构成码
外部码:关系模式R中属性或属性组X并非R的码,X参照了一个关系模式的码
范式
1NF
所有属性满足原子性,不可再分
定义:一个关系模式R的所有属性都是不可分的基本数据项
2NF
1NF+不存在非主属性对码的部分函数依赖
定义:关系模式R属于1NF,每一个非主属性都完全函数依赖于R的码(候选码,主属性)
不存在非主属性对主属性的部分函数依赖
可能存在非主属性对主属性的传递函数依赖,A→B,B→C,A→C,A、B是主属性,C是非主属性
3NF
2NF+ 不存在非主属性对码的传递函数依赖
定义:关系模式R<U,F>属于1NF,若R中不存在这样的码(主属性)X,属性组Y,非主属性A(A不属于Y),有X→Y(Y不决定X),Y→A成立。
不存在非主属性对主属性的传递函数依赖
定义中没有提及Y与X的关系,
当Y是X的子集的时候,X→Y,Y→A,则A部分函数依赖于X(2NF中已排除)
当Y不是X的子集的时候,X→Y,Y→A,A传递函数依赖于X
BCNF
3NF + 不存在主属性对码的部分或传递函数依赖
定义:关系模式R<U,F>属于1NF,如果对于R的每个非平凡的函数依赖X→Y,X必包含码
即:每个非平凡函数依赖的决定因素都包含码
定理
1.R中所有非主属性对每一个码都完全函数依赖
2.所有主属性对每个不包含它的码都完全函数依赖
3.BCNF属于3NF
4.R中无传递函数依赖
BCNF消除了主属性对码的部分依赖和传递依赖
4NF
4NF消除了非平凡且非函数依赖的多值依赖
定义:系模式R<U,F>属于1NF,如果对于R的每个非平凡多值依赖X→→Y(Y不是X的子集),X都包含码
可能出现的题型
证明题(可考虑反证法)
判断某一关系最高是几范式
6.3 数据依赖的公理系统
公理系统(推导系统/证明系统)
一种形式化方法,根据一组公理(公式)和推理规则,进行形式化的公式推导和证明。
公理、推理规则都是语法上的概念,公式的推导仅仅是按照推理规则做形式化的符号变换,不涉及语义。形式推导
公理系统配备有一定的语义,定义公式的含义。语义上主要概念为逻辑蕴含
公理系统具有有效性(可靠性)、完备性:在推理时,可以根据需要在语法推导和语义推导间进行转化
Armstrong公理系统
可能考证明题
三条基本的推理规则
1.自反律
2.增广律
3.传递律
使用方法:形式推导
导出规则
1.合并规则
2.分解规则
3.伪传递规则
4.广义分解/合并规则
Beeri,Fagin,Howard提出的推理规则
(图)
函数依赖集的闭包(语义上的概念)
属性集的闭包(语法上的概念)
求属性的闭包的算法
极小函数依赖集
定义:
(图)
极小函数依赖集求解算法
函数依赖集等价的判定方法
候选码求解算法
6.4 模式分解
如果关系模式中仅有函数依赖,分解到BCNF最佳,如果存在多值依赖,则分解到4NF最佳。
定义:
(图)
模式分解的无损连接性
判定算法
模式分解的保持函数依赖性
函数依赖集的投影求解算法
Q:如何判断分解p是否保持函数依赖
等我找到例题再来补充各算法