第13讲模式分解.ppt
《第13讲模式分解.ppt》由会员分享,可在线阅读,更多相关《第13讲模式分解.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5章 关系模式的规范化设计模式分解模式分解1第第13讲讲 模式分解模式分解关系模式的规范化设计关系模式的规范化设计所要解决的问题什么是什么是“好好”的关系数据模式的关系数据模式如何评价一个好的关系数据模式如何评价一个好的关系数据模式如何设计一个如何设计一个“好好”的关系数据模式的关系数据模式2第第13讲讲 模式分解模式分解关系模式的规范化设计关系模式的规范化设计主要内容关系模式的设计问题关系模式的设计问题关系模式规范化的基本概念和理论关系模式规范化的基本概念和理论关系模式分解的理论基础和算法关系模式分解的理论基础和算法3第第13讲讲 模式分解模式分解回顾回顾1NF2NF3NFBCNF去除非主
2、属性对于候选键的部分函数依赖去除非主属性对于候选键的部分函数依赖去除非主属性对于去除非主属性对于候选候选键的传递函数依赖键的传递函数依赖去除主属性对于去除主属性对于候选候选键的部分和传递函数依赖键的部分和传递函数依赖去除不被候选键所蕴涵的非平凡的多值依赖去除不被候选键所蕴涵的非平凡的多值依赖4NF消除消除决定决定因素因素非码非码的非的非平凡平凡函数函数依赖依赖4第第13讲讲 模式分解模式分解Armstrong公理系统逻辑蕴涵逻辑蕴涵 Armstrong公理系统推理规则公理系统推理规则 FD的逻辑蕴涵的逻辑蕴涵 函数依赖集函数依赖集F 的闭包的闭包F+属性集闭包属性集闭包 函数依赖集等价和最小函
3、数依赖集函数依赖集等价和最小函数依赖集 候选码及其求解方法候选码及其求解方法 回顾回顾 5第第13讲讲 模式分解模式分解主要内容模式分解的概念模式分解的概念分解的无损连接性和保持函数依赖性分解的无损连接性和保持函数依赖性 模式分解算法模式分解算法 模式分解模式分解6第第13讲讲 模式分解模式分解分解的概念 设有一关系模式设有一关系模式R(U,F),若用一关系模),若用一关系模式的集合式的集合=R1(U1,F1),),R2(U2,F2),),Rn(Un,Fn)来取代,其中来取代,其中U=Ui,并,并且没有且没有Ui Uj,1i,jn,Fi是是F在在Ui上的上的投影投影。则关系模式的集合则关系模式
4、的集合为为R的一个分解的一个分解 =R1,R2,Rn模式分解的概念模式分解的概念7第第13讲讲 模式分解模式分解分解的概念F在在Ui上的投影上的投影 Fi=XY|XY F+XY Ui 模式分解的概念模式分解的概念思考:思考:设有关系模式设有关系模式R(A,B,C,D),),F是是R上成立上成立的的FD集集F=ABC,DB,则,则 F在模式在模式ACD上的投上的投影为影为_;F在模式在模式AC上的投影为上的投影为_。ADC 空空8第第13讲讲 模式分解模式分解分解的概念 模式分解的概念模式分解的概念【例】R(编号,连队,连长,科目,成绩),F=编号连队,连队连长,(编号,科目)成绩 【例】R(学
5、生学号,学生姓名,所在系,系主任,课程名称,成绩,F=学生学号学生姓名,学生学号所在系,所在系系主任,(学生学号,课程名称)成绩9第第13讲讲 模式分解模式分解分解的概念 模式分解的概念模式分解的概念1NF2NF3NF去除非主属性对于键的部分函数依赖去除非主属性对于键的部分函数依赖去除非主属性对于键的传递函数依赖去除非主属性对于键的传递函数依赖R R(学生学号学生学号,学生姓名,所在系,系主任,学生姓名,所在系,系主任,课程名称课程名称,成绩,成绩)R1(学生学号学生学号,课程名称课程名称,成绩)R2(学生学号学生学号,学生姓名,学生姓名,所在系,系主任所在系,系主任)R1(学生学号学生学号,
6、课程名称课程名称,成绩)R3(学生学号学生学号,学生姓名,学生姓名,所在系所在系)R4(所在系所在系,系主任,系主任)10第第13讲讲 模式分解模式分解分解的概念 模式分解的概念模式分解的概念R(学生学号学生学号,学生姓名,所在系,系主任,学生姓名,所在系,系主任,课程课程名称名称,成绩,成绩 学生学号学生学号学生姓名,学生学号学生姓名,学生学号所所在系,所在系在系,所在系系主任,(学生学号,课程名称)系主任,(学生学号,课程名称)成绩成绩 1=R1(学生学号,课程名称学生学号,课程名称,成绩,成绩,(学生学号,课程(学生学号,课程名称)名称)成绩成绩),R3(学生学号学生学号,学生姓名,所在
7、系,学生姓名,所在系,学生学号学生学号学生学生姓名,学生学号姓名,学生学号所在系所在系),R4(所在系所在系,系主任,系主任,所在系所在系系主任系主任)11第第13讲讲 模式分解模式分解分解的概念 模式分解的概念模式分解的概念R(学生学号学生学号,学生姓名,所在系,系主任,学生姓名,所在系,系主任,课程名课程名称称,成绩,成绩 学生学号学生学号学生姓名,学生学号学生姓名,学生学号所在系,所在系,所在系所在系系主任,(学生学号,课程名称)系主任,(学生学号,课程名称)成绩成绩 2=R1(学生学号)(学生学号),R2(学生姓名)(学生姓名),R3(所在系)(所在系),R4(系主任)(系主任),R5
8、(课程名称)(课程名称),R6(成绩)(成绩)U=Ui,并且没有,并且没有Ui Uj,1i,jn Fi是是F在在Ui上的投影不存在非平凡的函数依赖。上的投影不存在非平凡的函数依赖。不具有无损连接性不具有无损连接性12第第13讲讲 模式分解模式分解分解的概念 模式分解的概念模式分解的概念R(学生学号学生学号,学生姓名,所在系,系主任,学生姓名,所在系,系主任,课程名称课程名称,成绩成绩 学生学号学生学号学生姓名,学生学号学生姓名,学生学号所在系,所在所在系,所在系系系主任,(学生学号,课程名称)系主任,(学生学号,课程名称)成绩成绩 3=R1(学生学号,课程名称学生学号,课程名称,成绩,成绩,(
9、学生学号,课程)(学生学号,课程)成绩成绩),R2(学生学号学生学号,学生姓名,所在系,学生姓名,所在系,学生学号学生学号学生姓学生姓名,学生学号名,学生学号所在系所在系),R3(学生学号学生学号,系主任,系主任,学生学号学生学号系主任系主任)U=Ui,并且没有,并且没有Ui Uj,1i,jn Fi是是F在在Ui上的投影。上的投影。没有保持函数依赖没有保持函数依赖13第第13讲讲 模式分解模式分解分解的概念一个关系模式的分解并不是唯一的。一个关系模式的分解并不是唯一的。理想的分解应该是既具有无损连接性又保持函理想的分解应该是既具有无损连接性又保持函数依赖,这样的分解是等价分解。数依赖,这样的分
10、解是等价分解。等价分解等价分解分解具有无损连接性,即数据等价分解具有无损连接性,即数据等价分解保持函数依赖,即语义等价分解保持函数依赖,即语义等价分解既具有无损连接性又保持函数依赖,即数据等分解既具有无损连接性又保持函数依赖,即数据等价并且语义等价价并且语义等价模式分解的概念模式分解的概念14第第13讲讲 模式分解模式分解无损连接分解无损连接分解无损连接分解设设=R1(U1,F1),),Rk(Uk,Fk)是是R(U,F)的一个分解,)的一个分解,r是是R(U,F)的一个关)的一个关系,则系,则 Ri(r)=t.Ui|t r为为r在子模式在子模式Ri上的投影,上的投影,m(r)=R1(r)R2(
11、r)Rk(r)是是r在在中各关系模式上投影的连接。中各关系模式上投影的连接。若对若对R的任何一个关系的任何一个关系r均有均有r=m(r)成成立,则称立,则称分解分解具有无损连接性具有无损连接性。分解是无损分解15第第13讲讲 模式分解模式分解算法:检验一个分解是否是无损分解输入:输入:关系模式关系模式R(U,F),),U=A1,A2,An;R上的分解上的分解=R1(U1,F1),R2(U2,F2),Rk(Uk,Fk)。设设F是最小函数依赖集。是最小函数依赖集。输出:输出:判断判断相对于相对于F是否具有无损分解特性。是否具有无损分解特性。无损连接分解无损连接分解16第第13讲讲 模式分解模式分解
12、无损连接分解无损连接分解检验一个分解是否无损的算法步骤步骤A1AnR1(U1,F1)a1 :Rk(Uk,Fk)bkn1 1)建立一张建立一张k行行n列的表,列的表,每行对应分解中的一个关每行对应分解中的一个关系模式系模式Ri,每列对应一个,每列对应一个属性属性Aj,若属性,若属性Aj Ui,则在则在i行行j列处填列处填aj,否则,否则填填bij。A1 U1An Uk17第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。
13、试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b23b24b25R3(BE)b31a2b33b34a5R4(CDE)b41b42a3a4a5R5(AE)a1b52b53b54a5初始状态1 1)建立一张建立一张k行行n列的表,列的表,每行对应分解中的一个关每行对应分解中的一个关系模式系模式Ri,每列对应一个,每列对应一个属性属性Aj,若属性,若属性Aj Ui,则在则在i行行j列处填列处填aj,否则,否则填填bij。18第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,C
14、EA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b23b24b25R3(BE)b31a2b33b34a5R4(CDE)b41b42a3a4a5R5(AE)a1b52b53b54a5初始状态2 2)把表格看成模式)把表格看成模式R R的的一个关系,反复检查一个关系,反复检查F F中的每个函数依赖在表中的每个函数依赖在表格中是成立,若不成立,格中是成立,若不成立,则修改表格中的值。则修改表格中的值。19第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设
15、有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12 b13 a4b15R2(AB)a1a2b23 b24 b25R3(BE)b31a2b33 b34 a5R4(CDE)b41b42 a3a4a5R5(AE)a1b52 b53 b54 a5初始状态2 2)对每一形如对每一形如XY 的的FD做如下做如下操作:操作:检查检查X中的属性所对应的列,找中的属性所对应的列,找出出X相等的行,将这些行中对应的相等的行,将这些行中对应的Y中的
16、属性列所对应的符号改为一中的属性列所对应的符号改为一致。致。即若其中之一为即若其中之一为aj,则都改成,则都改成aj;否则,否则,将其都改成这些列中行将其都改成这些列中行号最小的符号号最小的符号bij。对F的一次扫描20第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b23b24b25R3(BE)b31a2b33b34a5R4(
17、CDE)b41b42a3a4a5R5(AE)a1b52b53b54a5AC21第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b13b24b25R3(BE)b31a2b33b34a5R4(CDE)b41b42a3a4a5R5(AE)a1b52b13b54a5AC22第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有
18、关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b13b24b25R3(BE)b31a2b33b34a5R4(CDE)b41b42a3a4a5R5(AE)a1b52b13b54a5ACBC23第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R
19、5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b13b24b25R3(BE)b31a2b13b34a5R4(CDE)b41b42a3a4a5R5(AE)a1b52b13b54a5ACBC24第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b13b24b25R3
20、(BE)b31a2b13b34a5R4(CDE)b41b42a3a4a5R5(AE)a1b52b13b54a5ACBCCD25第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b13a4b25R3(BE)b31a2b13a4a5R4(CDE)b41b42a3a4a5R5(AE)a1b52b13a4a5ACBCCD26第第13讲讲
21、模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b13a4b25R3(BE)b31a2b13a4a5R4(CDE)b41b42a3a4a5R5(AE)a1b52b13a4a5ACBCCDDEC27第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(
22、AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12a3a4b15R2(AB)a1a2a3a4b25R3(BE)b31a2a3a4a5R4(CDE)b41b42a3a4a5R5(AE)a1b52a3a4a5ACBCCDDEC28第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12a3a4
23、b15R2(AB)a1a2a3a4b25R3(BE)b31a2a3a4a5R4(CDE)b41b42a3a4a5R5(AE)a1b52a3a4a5ACBCCDDECCEA29第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12a3a4b15R2(AB)a1a2a3a4b25R3(BE)a1a2a3a4a5R4(CDE)a1b42a3a4a5R5(AE)a1b52a3a
24、4a5ACBCCDDECCEA30第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12a3a4b15R2(AB)a1a2a3a4b25R3(BE)a1a2 a3 a4 a5R4(CDE)a1b42a3a4a5R5(AE)a1b52a3a4a5ACBCCDDECCEA31第第13讲讲 模式分解模式分解无损连接分解无损连接分解【例】设有关系模式R(U,F),U=ABCDE
25、,F=AC,BC,CD,DEC,CEA。=R1(AD),R2(AB),R3(BE),R4(CDE),R5(AE)是R的一个分解。试判断是否为无损分解。ABCDER1(AD)a1b12b13a4b15R2(AB)a1a2b13a4b25R3(BE)a1a2 a3 a4 a5R4(CDE)a1b42a3a4a5R5(AE)a1b52a3a4a53 3)若表有变化,则返)若表有变化,则返回步骤回步骤2)2),否则算法终,否则算法终止。止。若某次修改后,有一若某次修改后,有一行全为行全为a a1 1,a,a2 2,a,an n,则,则算法结束。算法结束。32第第13讲讲 模式分解模式分解无损连接分解无
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 模式 分解
限制150内