《关系数据库理论》PPT课件.ppt
《《关系数据库理论》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《关系数据库理论》PPT课件.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第14讲讲 关系数据库理论关系数据库理论 1 1北京林业大学北京林业大学 软件教研室软件教研室4.1 规范化问题的提出规范化问题的提出4.2 函数依赖函数依赖4.3 关系模式的分解关系模式的分解*4.4 关系模式的范式关系模式的范式4.5 关系模式的规范化关系模式的规范化 2 2北京林业大学北京林业大学 软件教研室软件教研室4.1 规范化问题的提出规范化问题的提出 4.1.1 规范化理论的主要内容规范化理论的主要内容关系数据库的规范化理论关系数据库的规范化理论 函数依赖函数依赖范式(范式(Normal Form)模式设计模式设计 核心,是模式分解和设计的基础 模式分解的标准 3 3北京林业大
2、学北京林业大学 软件教研室软件教研室4.1.2 不合理的关系模式存在的存储异常问题不合理的关系模式存在的存储异常问题 教学管理数据库教学管理数据库SCD(SNo,SN,Age,Dept,MN,CNo,Score)在此关系模式中填入一部分具体的数据在此关系模式中填入一部分具体的数据SNo SN Age Dept MN CNo Score S1 赵亦赵亦 17 计算机计算机 刘伟刘伟 C1 90S1 赵亦赵亦 17 计算机计算机 刘伟刘伟 C2 85 S2 钱尔钱尔 18 信息信息 王平王平 C557S2 钱尔钱尔 18 信息信息 王平王平 C680S2钱尔钱尔18信息信息王平王平C7 4 4北京
3、林业大学北京林业大学 软件教研室软件教研室SNo SN Age Dept MN CNo Score S1 赵亦赵亦 17 计算机计算机 刘伟刘伟 C1 90S1 赵亦赵亦 17 计算机计算机 刘伟刘伟 C2 85 S2 钱尔钱尔 18 信息信息 王平王平 C557S2 钱尔钱尔 18 信息信息 王平王平 C680S2钱尔钱尔18信息信息王平王平C7 该表出现的问题该表出现的问题 数据冗余数据冗余 插入异常插入异常 删除异常删除异常 更新异常更新异常 根本原因:属性间存根本原因:属性间存在着在着数据依赖关系数据依赖关系 包罗万象包罗万象 5 5北京林业大学北京林业大学 软件教研室软件教研室一个好
4、的关系模式应该具备以下四个条件:一个好的关系模式应该具备以下四个条件:(1)尽可能少的数据冗余;)尽可能少的数据冗余;(2)没有插入异常;)没有插入异常;(3)没有删除异常;)没有删除异常;(4)没有更新异常。)没有更新异常。SCD(SNo,SN,Age,Dept,MN,CNo,Score)S(SNo,SN,Age,Dept)SC(SNo,CNo,Score)D(Dept,MN)关系模式分解:关系模式分解:6 6北京林业大学北京林业大学 软件教研室软件教研室4.2 函数依赖函数依赖 4.2.1 函数依赖的定义函数依赖的定义定义定义4.1 SNo决定函数(决定函数(SN,Age,Dept)(SN
5、,Age,Dept)函数依赖于)函数依赖于SNo SCD(SNo,SN,Age,Dept,MN,CNo,Score)SNo一个学生一个学生SN,Age,Dept 惟一确定惟一确定 惟一确定惟一确定 7 7北京林业大学北京林业大学 软件教研室软件教研室4.2.2 函数依赖的逻辑蕴涵定义函数依赖的逻辑蕴涵定义 定义定义4.2 设设F是在关系模式是在关系模式R(U)上成立的函数依赖集合,上成立的函数依赖集合,X,Y是属性集是属性集U的子集,的子集,XY是一个函数依赖。如果从是一个函数依赖。如果从F中能够推导出中能够推导出XY,即如果对于,即如果对于R的每个满足的每个满足F的的关系关系r也满足也满足X
6、Y,则称,则称XY为为F的的逻辑蕴涵逻辑蕴涵(或(或F逻辑蕴涵逻辑蕴涵XY),记为),记为F|=XY。定义定义4.3 设设F是函数依赖集,被是函数依赖集,被F逻辑蕴涵的函数依赖的全体逻辑蕴涵的函数依赖的全体构成的集合,称为函数依赖集构成的集合,称为函数依赖集F的闭包(的闭包(Closure),),记为记为F+。即:。即:F+=XY|F|=XY 8 8北京林业大学北京林业大学 软件教研室软件教研室函数依赖的推理规则函数依赖的推理规则 Armstrong公理公理自反律:自反律:如果如果Y X U,则,则XY在在R上成立上成立 增广律增广律:若若XY在在R上成立,且上成立,且Z U,则,则XZYZ在
7、在R上也成立上也成立 传递律传递律:若若XY和和YZ在在R上成立,则上成立,则XZ在在R上也成立上也成立 9 9北京林业大学北京林业大学 软件教研室软件教研室Armstrong公理推论公理推论 合并律(合并律(Union rule)若若XY和和XZ在在R上成立,则上成立,则XYZ在在R上也成立上也成立 伪传递律(伪传递律(Pseudotransitivity rule)若若XY和和YWZ在在R上成立,则上成立,则XWZ在在R上也成立上也成立 分解律(分解律(Decomposition rule)若若XY和和ZY在在R上成立,则上成立,则XZ在在R上也成立上也成立复合律(复合律(Composit
8、ion)若若XY和和WZ在在R上成立,则上成立,则XWYZ在在R上也成立上也成立 1010北京林业大学北京林业大学 软件教研室软件教研室4.2.4 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖 设有关系模式设有关系模式R(U),U是属性全集,是属性全集,X和和Y是是U的的子集:子集:如果如果XY,并且对于,并且对于X的任何一个真子集的任何一个真子集X,都有,都有X Y,则称,则称Y对对X完全函数依赖完全函数依赖,记作,记作X Y。如果如果XY,并且对于并且对于X的某个真子集的某个真子集X,有,有XY,则称则称Y对对X部分函数依赖部分函数依赖,记作,记作X Y。在关系模式在关系模式SCD
9、中,因为中,因为SNo Score,且,且CNo Score,所以有:,所以有:(SNo,CNo)Score。而。而SNoAge,所以,所以(SNo,CNo)Age fpffp1111北京林业大学北京林业大学 软件教研室软件教研室4.2.5 传递函数依赖传递函数依赖 设有关系模式设有关系模式R(U),U是属性全集,是属性全集,X,Y,Z是是U的子集的子集 若若XY,但,但Y X,而,而YZ(Y X,Z Y),则称),则称Z对对X传递函数依赖传递函数依赖,记作:,记作:X Z。如果如果YX,则,则X Y,这时称,这时称Z对对X直接函数依赖,直接函数依赖,而不是传递函数依赖。而不是传递函数依赖。t
10、函数依赖函数依赖 完全函数依赖完全函数依赖 部分函数依赖部分函数依赖 传递函数依赖传递函数依赖 1212北京林业大学北京林业大学 软件教研室软件教研室4.2.6 属性集的闭包及其算法属性集的闭包及其算法 X+=属性属性A|XA在在F+中中 定理定理4.3 XY能用函数依赖推理规则推出的充分必要条件是能用函数依赖推理规则推出的充分必要条件是Y X+中中 算法算法4.1 result=X do if F中有某个函数依赖中有某个函数依赖YZ满足满足Y result then result=result Z while(result有所改变有所改变);1313北京林业大学北京林业大学 软件教研室软件教
11、研室4.2.7 候选键的求解理论和算法候选键的求解理论和算法 关键码的定义关键码的定义 如果如果XU在在R上成立(即上成立(即XU在在F+中),那么称中),那么称X是是R的一个超键。的一个超键。如果如果XU在在R上成立,但对上成立,但对X的任一真子集的任一真子集X都有都有XU不成立(即不成立(即XU不在不在F+中,或者中,或者X U),),那么称那么称X是是R上的一个候选键。上的一个候选键。快速求解候选键的一个充分条件快速求解候选键的一个充分条件 对于给定的关系模式对于给定的关系模式R(A1,An)和函数依赖集和函数依赖集F,可将其属性分为以下四类:可将其属性分为以下四类:fL类类R类类 N类
12、类 LR类类 1414北京林业大学北京林业大学 软件教研室软件教研室定理定理4.4 对于给定的关系模式对于给定的关系模式R及其函数依赖集及其函数依赖集F(1)若)若X(XR)是)是L类属性,则类属性,则X必为必为R的任一候选键的成员。的任一候选键的成员。(2)若)若X(XR)是)是L类属性,且类属性,且X+包含了包含了R的全部属性,则的全部属性,则X必必为为R的惟一候选键。的惟一候选键。(3)若)若X(XR)是)是R类属性,则类属性,则X不在任何候选键中。不在任何候选键中。(4)若)若X(XR)是)是N类属性,则类属性,则X包含在包含在R的任一候选键中。的任一候选键中。(5)若)若X(XR)是
13、)是R的的N类和类和L类属性组成的属性集,且类属性组成的属性集,且X+包含包含了了R的全部属性,则的全部属性,则X是是R的惟一候选键。的惟一候选键。1515北京林业大学北京林业大学 软件教研室软件教研室多属性函数依赖集候选键的求解算法多属性函数依赖集候选键的求解算法(1)属性分类()属性分类(L、R、N和和LR)(2)若)若X+包含了包含了R的全部属性,转(的全部属性,转(5);否则,转();否则,转(3)。)。(3)在)在Y中取一个属性中取一个属性A,求,求(XA)+,若它包含了,若它包含了R的全部属性,的全部属性,则转(则转(4);否则,调换一属性反复进行这一过程,直到试完所);否则,调换
14、一属性反复进行这一过程,直到试完所有有Y中的属性。中的属性。(4)如果已找出所有候选键,则转()如果已找出所有候选键,则转(5);否则在);否则在Y中依次取两中依次取两个、三个、个、三个、,求它们的属性集的闭包,直到其闭包包含,求它们的属性集的闭包,直到其闭包包含R的全的全部属性。部属性。(5)停止,输出结果。)停止,输出结果。令令X代表代表L和和N类,类,Y代表代表LR类类1616北京林业大学北京林业大学 软件教研室软件教研室4.2.8 函数依赖推理规则的完备性函数依赖推理规则的完备性 定理定理4.5 函数依赖推理规则函数依赖推理规则A1,A2,A3是完备的是完备的(1)证明)证明F中每个函
15、数依赖中每个函数依赖VW在在r上成立。上成立。(2)证明)证明XY在关系在关系r上不成立。上不成立。综合(综合(1)和()和(2)可知,只要)可知,只要XY不能用推理规则推出,那不能用推理规则推出,那么么F就不逻辑蕴涵就不逻辑蕴涵XY,也就是推理规则是完备的。,也就是推理规则是完备的。从函数依赖集从函数依赖集F使用推理规则推出的函数依赖必定在使用推理规则推出的函数依赖必定在F+中中 F+中的函数依赖都能从中的函数依赖都能从F集使用推理规则集推出集使用推理规则集推出 正确性:正确性:完备性:完备性:1717北京林业大学北京林业大学 软件教研室软件教研室4.2.9 函数依赖集的等价、覆盖和最小函数
16、依赖集函数依赖集的等价、覆盖和最小函数依赖集 等价定义等价定义4.8 关系模式关系模式R(U)的两个函数依赖集的两个函数依赖集F和和G,如果满足,如果满足F+=G+,则称,则称F和和G是等价的函数依赖集。记作:是等价的函数依赖集。记作:FG。如果。如果F和和G等价等价,就说,就说F覆盖覆盖G,或,或G覆盖覆盖F。无关定义无关定义4.9 设设F是属性集是属性集U上的函数依赖集,上的函数依赖集,XY是是F中的函数中的函数依赖。函数依赖中无关属性:依赖。函数依赖中无关属性:(1)如果)如果AX,且,且F逻辑蕴涵逻辑蕴涵(F-XY)(X-A)Y,则称属性则称属性A是是XY左部的无关属性。左部的无关属性
17、。(2)如果)如果AX,且,且(F-XY)X(Y-A)逻辑蕴涵逻辑蕴涵F,则称属性则称属性A是是XY右部的无关属性。右部的无关属性。(3)如果)如果XY的左右两边的属性都是无关属性,则函数依的左右两边的属性都是无关属性,则函数依赖赖XY称为无关函数依赖。称为无关函数依赖。1818北京林业大学北京林业大学 软件教研室软件教研室定义定义4.10 设设F是属性集是属性集U上的函数依赖集。如果上的函数依赖集。如果Fmin是是F的一个的一个最小函数依赖集,那么最小函数依赖集,那么Fmin应满足下列四个条件:应满足下列四个条件:(1)Fmin+=F+;(2)每个函数依赖的右边都是单属性;)每个函数依赖的右
18、边都是单属性;(3)Fmin中没有冗余的函数依赖(即在中没有冗余的函数依赖(即在Fmin中不存在这样的中不存在这样的函数依赖函数依赖XY,使得,使得Fmin与与Fmin-XY等价),即减少任等价),即减少任何一个函数依赖都将与原来的何一个函数依赖都将与原来的F不等价;不等价;(4)每个函数依赖的左边没有冗余的属性(即)每个函数依赖的左边没有冗余的属性(即Fmin中不存在这中不存在这样的函数依赖样的函数依赖XY,X有真子集有真子集W使得使得Fmin-XY WY与与Fmin等价),减少任何一个函数依赖左部的属性后,等价),减少任何一个函数依赖左部的属性后,都将与原来的都将与原来的F不等价。不等价。
19、1919北京林业大学北京林业大学 软件教研室软件教研室算法算法4.3 计算函数依赖集计算函数依赖集F的最小函数依赖集的最小函数依赖集G(1)对)对F中的任一函数依赖中的任一函数依赖XY,如果,如果Y=Y1,Y2,,Yk(k2)多于一个属性,就用分解律,分解为)多于一个属性,就用分解律,分解为XY1,XY2,XYk,替换,替换XY,得到一个,得到一个与与F等价的函数依赖集等价的函数依赖集G,G中每个函数依赖的右边中每个函数依赖的右边均为单属性。均为单属性。(2)去掉)去掉G中各函数依赖左部多余的属性。中各函数依赖左部多余的属性。(3)在)在G中消除冗余的函数依赖。中消除冗余的函数依赖。2020北
20、京林业大学北京林业大学 软件教研室软件教研室4.3 关系模式的分解关系模式的分解*4.3.1 模式分解问题模式分解问题 定义定义4.11 设有关系模式设有关系模式R(U),R=R1R2Rk,=R1,R2,Rk。这里。这里称为称为R的一个分解,也称为的一个分解,也称为数据库模式数据库模式。泛关系模式泛关系模式泛关系泛关系数据库模式数据库模式数据库实例数据库实例 Rr=R1,R2,Rk=模式分解示意图模式分解示意图 衡量关系模式的分解是否可取衡量关系模式的分解是否可取分解是否具有无损连接分解是否具有无损连接分解是否保持了函数依赖分解是否保持了函数依赖2121北京林业大学北京林业大学 软件教研室软件
21、教研室4.3.2 无损连接分解无损连接分解 定义定义4.12设有设有R,F是是R上的函数依赖集,上的函数依赖集,=R1,R2,Rk。如果对如果对R中满足中满足F的每一个关系的每一个关系r,有,有r=R1(r)R2(r)Rk(r),那么就称分解那么就称分解相对于相对于F是是“无损连接分解无损连接分解”;否则称为;否则称为“损失分解损失分解”。定理定理4.6 设设=R1,R2,Rk是关系模式是关系模式R的一个的一个分解,分解,r是是R的任一关系,的任一关系,ri=Ri(r)(1ik),那么有那么有下列性质:下列性质:(1)r m(r);(2)若)若s=m(r),则,则Ri(s)=ri;(3)m(m
22、(r)=m(r),这个性质称为幂等性。,这个性质称为幂等性。2222北京林业大学北京林业大学 软件教研室软件教研室4.3.3 无损分解的测试算法无损分解的测试算法(1)构造一个)构造一个k行行n列的表格列的表格R,表中每一列对应一个属性,表中每一列对应一个属性Aj(1jn),每一行对应一个模式),每一行对应一个模式Ri(1ik)。如果)。如果Aj在在Ri中,中,则在表中的第则在表中的第i行第行第j列处填上符号列处填上符号aj,否则填上,否则填上bij。(2)把表格看成模式)把表格看成模式R的一个关系,根据的一个关系,根据F中的每个函数依赖,在中的每个函数依赖,在表中寻找表中寻找X分量上相等的行
23、,分别对分量上相等的行,分别对Y分量上的每一列做修改:分量上的每一列做修改:如果列中有一个是如果列中有一个是aj,那么这一列上(,那么这一列上(X相同的行)的元素都改成相同的行)的元素都改成aj;如果列中没有如果列中没有aj,那么这一列上(,那么这一列上(X相同的行)的元素都改成相同的行)的元素都改成bij(下标(下标ij取取i最小的那个)。最小的那个)。对对F中所有的函数依赖,反复地执行上述的修改操作,一直到表格不中所有的函数依赖,反复地执行上述的修改操作,一直到表格不能再修改为止(这个过程称为能再修改为止(这个过程称为“追踪追踪”过程)。过程)。(3)若修改到最后,表中有一行全为)若修改到
24、最后,表中有一行全为a,即,即a1a2an,那么称,那么称相相对于对于F是无损连接分解。是无损连接分解。2323北京林业大学北京林业大学 软件教研室软件教研室例例4-11 设有关系模式设有关系模式R(A,B,C,D),R分解成分解成=AB,BC,CD,如果,如果R上成立的函数依赖集上成立的函数依赖集F=BA,CD,那么,那么相对于相对于F是否为无损连接分解?是否为无损连接分解?ABCDABa1a2 b13 b14 BCb21 a2 a3 b24 CDb31b32 a3 a4 BA a1CD a4修改后的表格中的第修改后的表格中的第二行为二行为a1a2a3a4,因此,因此,相对于相对于F是无是无
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系数据库理论 关系 数据库 理论 PPT 课件
限制150内