数据库技术及应用 课件 第6章 关系模式的规范化_第1页
数据库技术及应用 课件 第6章 关系模式的规范化_第2页
数据库技术及应用 课件 第6章 关系模式的规范化_第3页
数据库技术及应用 课件 第6章 关系模式的规范化_第4页
数据库技术及应用 课件 第6章 关系模式的规范化_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DatabaseTechnology&Applications数据库技术及应用关系模式规范化的必要性关系模式设计问题3设有以下关系模式:学生选课关系(学号,姓名,班级,课程号,课程名,成绩)

存在着下列问题:

数据冗余学号姓名班级课程号课程名成绩202101231234张怡21软件工程3班0211计算机概论85202101231234张怡21软件工程3班0212离散数学88202101231234张怡21软件工程3班0213高等数学83202101231235李述21软件工程4班0211计算机概论76202101231235李述21软件工程4班0212离散数学70202101231235李述21软件工程4班0214大学物理关系模式设计问题4设有以下关系模式:学生选课关系(学号,姓名,班级,课程号,课程名,成绩)

存在着下列问题:

数据冗余更新异常学号姓名班级课程号课程名成绩202101231234张怡21软件工程3班0211计算机概论85202101231234张怡21软件工程3班0212离散数学88202101231234张怡21软件工程3班0213高等数学83202101231235李述21软件工程4班0211计算机概论76202101231235李述21软件工程4班0212离散数学70202101231235李述21软件工程4班0214大学物理关系模式设计问题5设有以下关系模式:学生选课关系(学号,姓名,班级,课程号,课程名,成绩)

存在着下列问题:

数据冗余更新异常插入异常学号姓名班级课程号课程名成绩202101231234张怡21软件工程3班0211计算机概论85202101231234张怡21软件工程3班0212离散数学88202101231234张怡21软件工程3班0213高等数学83202101231235李述21软件工程4班0211计算机概论76202101231235李述21软件工程4班0212离散数学70202101231235李述21软件工程4班0214大学物理不能插入没有选课的学生关系模式设计问题6设有以下关系模式:学生选课关系(学号,姓名,班级,课程号,课程名,成绩)

存在着下列问题:

数据冗余更新异常插入异常删除异常学号姓名班级课程号课程名成绩202101231234张怡21软件工程3班0211计算机概论85202101231234张怡21软件工程3班0212离散数学88202101231234张怡21软件工程3班0213高等数学83202101231235李述21软件工程4班0211计算机概论76202101231235李述21软件工程4班0212离散数学70202101231235李述21软件工程4班0214大学物理关系模式分解7学号姓名班级课程号课程名成绩202101231234张怡21软件工程3班0211计算机概论85202101231234张怡21软件工程3班0212离散数学88202101231234张怡21软件工程3班0213高等数学83202101231235李述21软件工程4班0211计算机概论76202101231235李述21软件工程4班0212离散数学70202101231235李述21软件工程4班0214大学物理学号姓名班级202101231234张怡21软件工程3班202101231235李述21软件工程4班课程号课程名0211计算机概论0212离散数学0213高等数学0214大学物理学号课程号成绩2021012312340211852021012312340212882021012312340213832021012312350211762021012312350212702021012312350214学生选课学生课程选修泛模式函数依赖函数依赖设R是一个关系模式,X和Y是R的属性子集,r是R的任一具体关系。如果对r的任意两个元组t1和t2,只要t1[X]=t2[X]成立,就有t1[Y]=t2[Y]成立,则称X函数决定Y,或Y函数依赖于X,记为X→Y。X→Y为模式R的一个函数依赖。【例6.1】在学生选课关系R中包括(学号,姓名,班级,课程号,课程名,成绩)等属性,试分析R中存在哪些函数依赖。

学号→姓名

学号→班级

课程号→课程名

(学号,课程号)→成绩函数依赖的推理规则Armstrong推理规则

设有关系模式R(U),X、Y、Z、W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:(1)自反律:如果YXU,则X→Y在R上成立。

函数依赖的推理规则Armstrong推理规则

设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:(1)自反律:如果YXU,则X→Y在R上成立。(2)增广律:如果X→Y为F所蕴涵,ZU,则XZ→YZ在R上成立。

函数依赖的推理规则Armstrong推理规则

设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:(1)自反律:如果YXU,则X→Y在R上成立。(2)增广律:如果X→Y为F所蕴涵,ZU,则XZ→YZ在R上成立。(3)传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。

函数依赖的推理规则Armstrong推理规则

设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:(1)自反律:如果YXU,则X→Y在R上成立。(2)增广律:如果X→Y为F所蕴涵,ZU,则XZ→YZ在R上成立。(3)传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。(4)合并律:如果X→Y和X→Z成立,那么X→YZ成立。

函数依赖的推理规则Armstrong推理规则

设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:(1)自反律:如果YXU,则X→Y在R上成立。(2)增广律:如果X→Y为F所蕴涵,ZU,则XZ→YZ在R上成立。(3)传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。(4)合并律:如果X→Y和X→Z成立,那么X→YZ成立。(5)伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。

函数依赖的推理规则Armstrong推理规则

设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:(1)自反律:如果YXU,则X→Y在R上成立。(2)增广律:如果X→Y为F所蕴涵,ZU,则XZ→YZ在R上成立。(3)传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。(4)合并律:如果X→Y和X→Z成立,那么X→YZ成立。(5)伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。(6)分解律:如果X→Y和ZY成立,那么X→Z成立。

函数依赖的推理规则Armstrong推理规则

设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推理规则如下:(1)自反律:如果YXU,则X→Y在R上成立。(2)增广律:如果X→Y为F所蕴涵,ZU,则XZ→YZ在R上成立。(3)传递律:如果X→Y和Y→Z在R上成立,则X→Z在R上成立。(4)合并律:如果X→Y和X→Z成立,那么X→YZ成立。(5)伪传递律:如果X→Y和WY→Z成立,那么WX→Z成立。(6)分解律:如果X→Y和ZY成立,那么X→Z成立。(7)伪增广律:如果X→Y和ZW在R上成立,则XW→YZ在R上成立。

函数依赖的推理规则在上述函数依赖的推理规则中,其他函数依赖的推理规则都可由自反律、增广律和传递律这三条规则推导出来。

Armstrong公理的有效性:由关系模式R出发根据Armstrong公理系统推导出来的每一个函数依赖一定是R所逻辑蕴涵的函数依赖。Armstrong公理系统的完备性:对于关系模式R所逻辑蕴涵的每一函数依赖,必定可以由R出发根据Armstrong公理系统推导出来。函数依赖集的逻辑蕴涵设F是关系模式R的一个函数依赖集,X、Y是R的属性子集,如果从F中的函数依赖能够推出X→Y,则称F逻辑蕴涵X→Y,记为F|=X→Y。【例6.2】在【例6.1】中,学生选课关系R具有的函数依赖集F为{学号→姓名,学号→班级,课程号→课程名,(学号,课程号)→成绩},则以下函数依赖学号→(姓名,班级)(学号,课程号)→(姓名,班级,课程名,成绩)(学号,课程号)→(学号,姓名,班级,课程号,课程名,成绩)也是成立的,则称F逻辑蕴涵“学号→(姓名,班级)”、“(学号,课程号)→(姓名,班级,课程名,成绩)”、“(学号,课程号)→(学号,姓名,班级,课程号,课程名,成绩)”。候选键的形式化定义

函数依赖集F的闭包F+设F是关系模式R的一个函数依赖集,函数依赖集F的闭包F+是指被F逻辑蕴涵的函数依赖的全体构成的集合。【例6.4】设有关系模式R(X,Y,Z)与它的函数依赖集F={X→Y,Y→Z},则F的闭包为:

平凡的函数依赖

属性集X关于F的闭包X+

求属性集X关于F的闭包X+

求属性集X关于F的闭包X+

函数依赖集的等价和覆盖

函数依赖集的等价和覆盖

最小函数依赖集

最小函数依赖集

由于上述(1)-(3)步骤执行时,输入的函数依赖集与输出的函数依赖集都是等价的,因此F与Fmin是等价的,定理得证。(注意:(2)与(3)可互换)求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法1:(1)分解F中各函数依赖的右部,得到GG={A→B,A→C,B→D,A→E,BC→E,AC→D}求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法1:(2)删除G中冗余的函数依赖,得到H1G={A→B,A→C,B→D,A→E,BC→E,AC→D}根据合并律和传递律得A→E求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法1:(2)删除H1中冗余的函数依赖,得到H2H1={A→B,A→C,B→D,BC→E,AC→D}根据传递律得A→D根据增广律和分解律得AC→D求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法1:(3)H2={A→B,A→C,B→D,BC→E}H2中每一个函数依赖左边都不存在冗余属性,因此,H2即Fmin。求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法2:(1)分解F中各函数依赖的右部,得到GG={A→B,A→C,B→D,A→E,BC→E,AC→D}求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法2:(2)删除G中函数依赖左边的冗余属性,得到HG={A→B,A→C,B→D,A→E,BC→E,AC→D}根据自反律和合并律得A→AC根据传递律得A→D求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法2:(3)删除H中冗余的函数依赖,得到K1H={A→B,A→C,B→D,A→E,BC→E,A→D}根据传递律得A→D求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法2:(3)删除K1中冗余的函数依赖,得到K2K1={A→B,A→C,B→D,A→E,BC→E}根据合并律和传递律得A→E求最小函数依赖集【例6.9】设有函数依赖集F={A→BC,B→D,A→E,BC→E,AC→D},求其最小函数依赖集Fmin。【解答】方法2:(3)K2={A→B,A→C,B→D,BC→E}K2中每一个函数依赖都是非冗余函数依赖,因此K2即Fmin。求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法1:(1)分解F中各函数依赖的右部,得到GG={C→A,C→B,A→B,B→C,A→C,BC→A}求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法1:(2)删除G中冗余的函数依赖,得到H1G={C→A,C→B,A→B,B→C,A→C,BC→A}根据传递律得A→C求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法1:(2)删除H1中冗余的函数依赖,得到H2H1={C→A,C→B,A→B,B→C,BC→A}根据增广律和分解律得BC→A求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法1:(3)删除H2中冗余的函数依赖,得到H3H2={C→A,C→B,A→B,B→C}根据传递律,得C→B求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法1:(4)删除H3中函数依赖左边的冗余属性H3={C→A,A→B,B→C}

由于H3中每一个函数依赖左边都不存在冗余属性,因此,H3即Fmin。求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法2:(1)分解F中各函数依赖的右部,得到GG={C→A,C→B,A→B,B→C,A→C,BC→A}求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法2:(2)删除G中函数依赖左边的冗余属性,得到H1G={C→A,C→B,A→B,B→C,A→C,BC→A}

根据伪传递律得B→A求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法2:(3)删除H1中冗余的函数依赖,得到H2H1={C→A,C→B,A→B,B→C,A→C,B→A}根据传递律得A→C求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法2:(4)删除H2中冗余的函数依赖,得到H3H2={C→A,C→B,A→B,B→C,B→A}根据传递律得C→B求最小函数依赖集【例6.10】设有函数依赖集F={C→AB,A→B,B→C,A→C,BC→A},求其最小函数依赖集Fmin。【解答】方法2:(5)H3={C→A,A→B,B→C,B→A}H3不存在冗余的函数依赖,H3即Fmin关系模式的分解两个基本原则49无损连接性在数据方面,分解后的关系通过自然连接能完全恢复分解前的关系保持函数依赖性在语义方面,关系模式分解前后函数依赖集能保持不变关系模式分解出现的问题假设有关系模式R(学号,所在系,系办公地点)及其函数依赖集F={学号→所在系,所在系→系办公地点},现有关系实例:学号所在系系办公地点202101231234软件工程B7202101231235软件工程B7202101243542食品工程B8202101252874生物工程B8关系模式分解出现的问题——分解1学号202101231234202101231235202101243542202101252874所在系软件工程食品工程生物工程系办公地点B7B8存在问题:1.不能通过自然连接恢复原来的表;2.不能保持函数依赖。学号所在系系办公地点202101231234软件工程B7202101231235软件工程B7202101243542食品工程B8202101252874生物工程B8关系模式分解出现的问题——分解2学号所在系202101231234软件工程202101231235软件工程202101243542食品工程202101252874生物工程学号系办公地点202101231234B7202101231235B7202101243542B8202101252874B8存在问题:1.可以通过自然连接恢复原来的表;2.不能保持函数依赖(丢失了“所在系→系办公地点”)。学号所在系系办公地点202101231234软件工程B7202101231235软件工程B7202101243542食品工程B8202101252874生物工程B8关系模式分解出现的问题——分解3学号系办公地点202101231234B7202101231235B7202101243542B8202101252874B8所在系系办公地点软件工程B7食品工程B8生物工程B8存在问题:1.不能通过自然连接恢复原来的表;2.不能保持函数依赖(丢失了“学号→所在系”)。学号所在系系办公地点202101231234软件工程B7202101231235软件工程B7202101243542食品工程B8202101252874生物工程B8关系模式分解出现的问题——分解4学号所在系202101231234软件工程202101231235软件工程202101243542食品工程202101252874生物工程所在系系办公地点软件工程B7食品工程B8生物工程B81.可以通过自然连接恢复原来的表;2.保持原有的函数依赖。学号所在系系办公地点202101231234软件工程B7202101231235软件工程B7202101243542食品工程B8202101252874生物工程B8无损连接的分解

如何测试分解是否无损连接?矩阵判别法根据分解后的关系模式构造矩阵,并根据每个函数依赖修改矩阵。适用于所有的分解判断。无损连接测试定理判断“交函数决定差”是否成立。只适用于一分为二的情况。无损连接的分解矩阵判别法

第一步:构造矩阵每一列对应原关系模式中的一个属性Aj,每一行对应分解后的一个子模式Ri,若Aj在Ri中,则在矩阵的第i行第j列处填上aj,否则填上bij。

ABCDER1a1a2a3b14b15R2b21a2b23a4b25R3b31b32b33a4a5无损连接的分解矩阵判别法

ABCDER1a1a2a3b14b15R2b21a2b23a4b25R3b31b32b33a4a5第二步:根据每个函数依赖修改矩阵若有XY,在矩阵中寻找X分量上相等的行,把这些行的Y分量也都改成一致(若列中有aj,则改其他元素为aj;否则,改为同一个bij且下标ij取i最小的那个)。无损连接的分解矩阵判别法

ABCDER1a1a2a3b14b15R2b21a2b23a4b25R3b31b32b33a4a5第二步:根据每个函数依赖修改矩阵若有XY,在矩阵中寻找X分量上相等的行,把这些行的Y分量也都改成一致(若列中有aj,则改其他元素为aj;否则,改为同一个bij且下标ij取i最小的那个)。无损连接的分解矩阵判别法

ABCDER1a1a2a3a4b15R2b21a2b23a4b25R3b31b32b33a4a5第二步:根据每个函数依赖修改矩阵若有XY,在矩阵中寻找X分量上相等的行,把这些行的Y分量也都改成一致(若列中有aj,则改其他元素为aj;否则,改为同一个bij且下标ij取i最小的那个)。无损连接的分解矩阵判别法

ABCDER1a1a2a3a4b15R2b21a2b23a4b25R3b31b32b33a4a5第二步:根据每个函数依赖修改矩阵若有XY,在矩阵中寻找X分量上相等的行,把这些行的Y分量也都改成一致(若列中有aj,则改其他元素为aj;否则,改为同一个bij且下标ij取i最小的那个)。无损连接的分解矩阵判别法

ABCDER1a1a2a3a4a5R2b21a2b23a4a5R3b31b32b33a4a5第二步:根据每个函数依赖修改矩阵若有XY,在矩阵中寻找X分量上相等的行,把这些行的Y分量也都改成一致(若列中有aj,则改其他元素为aj;否则,改为同一个bij且下标ij取i最小的那个)。无损连接的分解矩阵判别法

ABCDER1a1a2a3a4a5R2b21a2b23a4a5R3b31b32b33a4a5无损连接分解第三步:得出结论若表中有某一行全为a,则分解是无损连接分解;否则,则分解不是无损连接的分解。无损连接的分解矩阵判别法

第一步:构造矩阵每一列对应原关系模式中的一个属性Aj,每一行对应分解后的一个子模式Ri,若Aj在Ri中,则在矩阵的第i行第j列处填上aj,否则填上bij。

ABCDER1a1a2a3b14b15R2b21b22a3a4b25无损连接的分解矩阵判别法

ABCDER1a1a2a3b14b15R2b21b22a3a4b25第二步:根据每个函数依赖修改矩阵若有XY,在矩阵中寻找X分量上相等的行,把这些行的Y分量也都改成一致(若列中有aj,则改其他元素为aj;否则,改为同一个bij且下标ij取i最小的那个)。无损连接的分解矩阵判别法

ABCDER1a1a2a3b14b15R2b21b22a3a4a5第二步:根据每个函数依赖修改矩阵若有XY,在矩阵中寻找X分量上相等的行,把这些行的Y分量也都改成一致(若列中有aj,则改其他元素为aj;否则,改为同一个bij且下标ij取i最小的那个)。无损连接的分解矩阵判别法

ABCDER1a1a2a3b14b15R2b21b22a3a4a5第二步:根据每个函数依赖修改矩阵若有XY,在矩阵中寻找X分量上相等的行,把这些行的Y分量也都改成一致(若列中有aj,则改其他元素为aj;否则,改为同一个bij且下标ij取i最小的那个)。无损连接的分解矩阵判别法

ABCDER1a1a2a3b14b15R2b21b22a3a4a5第三步:得出结论若表中有某一行全为a,则分解是无损连接分解;否则,则分解不是无损连接的分解。无损连接测试定理

Notice:此定理适用于分解只包含两个模式的情况。无损连接测试定理

无损连接测试定理

无损连接测试定理

保持函数依赖的分解对于一个关系模式的分解,若所有分解出的关系模式所满足的函数依赖的全体等价于原关系模式的函数依赖集,就称该分解保持函数依赖。保持函数依赖的分解确保整个数据库中数据的语义完整性不受破坏。如何判断分解是否保持函数依赖?属性关联法

无损连接的分解与保持函数依赖的分解【例6.15】设有关系模式R(城市,街道,邮编)及基于R的函数依赖集F={邮编→城市,(城市,街道)→邮编}。请问以下分解是否具有无损连接性和保持函数依赖性:ρ1={R1(城市,邮编),R2(街道,邮编)}ρ2={R2(街道,邮编),R3(城市,街道)}ρ3={R1(城市,邮编),R3(城市,街道)}

【例6.15】设有关系模式R(城市,街道,邮编)及基于R的函数依赖集F={邮编→城市,(城市,街道)→邮编}。请问以下分解是否具有无损连接性和保持函数依赖性:ρ1={R1(城市,邮编),R2(街道,邮编)}ρ2={R2(街道,邮编),R3(城市,街道)}ρ3={R1(城市,邮编),R3(城市,街道)}【解答】(2)对于ρ2,因为R2∩R3=街道,R3-R2=城市,R2-R3=邮编,无论是街道→城市还是街道→邮编都不成立,因此ρ2不是无损连接的分解,且F中的两个函数依赖都丢失了。无损连接的分解与保持函数依赖的分解【例6.15】设有关系模式R(城市,街道,邮编)及基于R的函数依赖集F={邮编→城市,(城市,街道)→邮编}。请问以下分解是否具有无损连接性和保持函数依赖性:ρ1={R1(城市,邮编),R2(街道,邮编)}ρ2={R2(街道,邮编),R3(城市,街道)}ρ3={R1(城市,邮编),R3(城市,街道)}【解答】(3)对于ρ3,因为R1∩R3=城市,R1-R3=邮编,R3-R1=街道,无论是城市→邮编还是城市→街道都不成立,因此ρ3不是无损连接的分解,且丢失了函数依赖(城市,街道)→邮编。无损连接的分解与保持函数依赖的分解【例6.16】设有关系模式R(A,B,C,D)及基于R的函数依赖集F={A→B,C→D}。请问分解是否ρ={R1(A,B),R2(C,D)}具有无损连接性和保持函数依赖性?【解答】因为R1∩R2=∅,R1-R2={A,B},R2-R1={C,D},无论是R1∩R2→(R1-R2)还是R1∩R2→(R2-R1)都不成立,因此ρ不是无损连接的分解。F中的函数依赖A→B在R1中得到保留,C→D在R2中得到保留,因此ρ能够保持函数依赖。无损连接的分解与保持函数依赖的分解关系模式范式关系模式的范式关系模式的范式指的是关系模式应该遵循的规范化形式。第一范式第二范式第三范式BC范式第一范式对于关系模式R,如果其每个属性都是简单属性,即每个属性都是不可再分的,则称R属于第一范式,简记为1NF。关系模式的第一范式是关系模式要遵循的最基本的规范化形式。第一范式【例6.17】设有以下关系r,请问r是否属于第一范式?学号姓名电话202113871633李M)H)202113871634章M)【解答】由于在关系r中,电话属性可进一步划分为移动电话(M)和家庭电话(H),因此,关系r不属于第一范式。可采用以下方法将r规范化成第一范式:学号姓名移动电话家庭电话202113871633李凌15912312321020-37648277202113871634章一范式【例6.17】设有以下关系r,请问r是否属于第一范式?学号姓名电话202113871633李M)H)202113871634章M)【解答】由于在关系r中,电话属性可进一步划分为移动电话(M)和家庭电话(H),因此,关系r不属于第一范式。可采用以下方法将r规范化成第一范式:学号姓名电话电话类型202113871633李动电话202113871633李庭电话202113871634章动电话第一范式【例6.17】设有以下关系r,请问r是否属于第一范式?学号姓名电话202113871633李M)H)202113871634章M)【解答】由于在关系r中,电话属性可进一步划分为移动电话(M)和家庭电话(H),因此,关系r不属于第一范式。可采用以下方法将r规范化成第一范式:学号姓名电话202113871633李凌15912312321202113871634章二范式对于函数依赖X→Y,如果存在X的真子集X’,使得X’→Y也成立,则称Y部分依赖于X。对于函数依赖X→Y,如果X的任一真子集X’,都没有X’→Y成立,则称Y完全依赖于X。如果关系模式R为1NF,并且R中的每一个非主属性都完全依赖于R的某个候选关键字,则称R属于第二范式,简记为2NF。

第二范式【例6.18】设有关系模式R(A,B,C)及其上面的函数依赖集F={A→B,B→A,C→A},试分析R是否属于第二范式。【解答】因为C→A,A→B,根据Armstrong公理的传递律有C→B,所以有C→ABC,则C是主键,且A和B都完全依赖于C,因此R属于第二范式。

将非2NF的关系模式分解为满足2NF的关系模式集(1)用主属性构成的属性集的每一个子集作为主键构成一个关系模式。(2)把依赖于这些主键的属性加到对应的关系模式中。(3)去掉只有主键构成的关系模式。

第二范式【例6.19】设有关系模式R(学号,学生姓名,课程号,课程名,成绩,任课教师),试分析R是否属于第二范式。如果R不属于第二范式,请将R分解成满足第二范式的关系模式集。【解答】关系模式R中存在以下函数依赖:学号→学生姓名、课程号→课程名、课程号→任课教师、(学号,课程号)→成绩,因此,关系模式R的主键是(学号,课程号)。而学生姓名、课程名、任课教师等属性部分依赖于该主键,因此关系模式R不属于第二范式。

第二范式【例6.19】设有关系模式R(学号,学生姓名,课程号,课程名,成绩,任课教师),试分析R是否属于第二范式。如果R不属于第二范式,请将R分解成满足第二范式的关系模式集。【解答(续)】将R分解成满足第二范式的关系模式集,过程如下:

R1(学号,学生姓名)R2(课程号,课程名,任课教师)R3(学号,课程号,成绩)R1(学号)R2(课程号)

R3(学号,课程号)R第三范式如果有函数依赖X→Y,Y→Z成立,且Y→X不成立,Z不是Y的子集,则称Y传递依赖于X。如果关系模式R为2NF,并且R中的每一个非主属性都不传递依赖于R的某个候选关键字,则称R属于第三范式,简记为3NF。

第三范式

【例6.20】设有关系模式R(X,Y,Z)及其上面的函数依赖集F={Y→Z,XZ→Y},试分析下列关系模式R是否属于第三范式。【解答】由XZ→Y可知XZ是主键,R中不存在部分依赖和传递依赖,因此,R属于第三范式。第三范式

【例6.21】设有关系模式R(学号,学生姓名,课程号,课程名,成绩,任课教师,教师所属学院),试分析R是否属于第三范式。如果R不属于第三范式,请将R分解成满足第三范式的关系模式集。【解答】R中存在以下函数依赖:学号→学生姓名、课程号→课程名、课程号→任课教师、任课教师→教师所属学院、(学号,课程号)→成绩,因此,R的主键是(学号,课程号)。而学生姓名、课程名、任课教师等属性部分依赖于该主键,因此R不属于第二范式,也不属于第三范式。第三范式

【例6.21】设有关系模式R(学号,学生姓名,课程号,课程名,成绩,任课教师,教师所属学院),试分析R是否属于第三范式。如果R不属于第三范式,请将R分解成满足第三范式的关系模式集。【解答(续1)】R1(学号,学生姓名)2NFR2(课程号,课程名,任课教师,教师所属学院)2NFR3(学号,课程号,成绩)2NFRR1(学号,学生姓名)3NFR2(课程号,课程名,任课教师,教师所属学院)2NFR3(学号,课程号,成绩)3NF第三范式

【例6.21】设有关系模式R(学号,学生姓名,课程号,课程名,成绩,任课教师,教师所属学院),试分析R是否属于第三范式。如果R不属于第三范式,请将R分解成满足第三范式的关系模式集。【解答(续2)】RR5(任课教师,教师所属学院)R4(课程号,课程名,任课教师)3NF3NF

无损连接并保持函数依赖地把关系模式R分解成3NF关系模式集

【例6.22】设有关系模式R(A,B,C,D)及其函数依赖集F={A→B,C→D},试分析R是否属于第三范式。如果R不属于第三范式,请将R分解为无损连接和保持函数依赖的满足3NF的关系模式集。【解答】经分析可得,R的主键是AC。B和D对主键是部分依赖,因此R不属于3NF。将R分解过程如下:(1)根据最小函数依赖集的定义,可知F就是一个最小函数依赖集。(2)没有一个函数依赖的左右边相加等于关系模式R的所有属性,因此,R需要分解。(3)对于函数依赖A→B,构建一个关系模式R1(A,B);对于函数依赖C→D,构建一个关系模式R2(C,D)。(4)R的唯一候选键是AC,而R1和R2都不包含AC,因此需要单独构建一个关系模式R3(A,C)。(5)分解结束,得到一个无损连接和保持函数依赖的满足3NF的关系模式集{R1(A,B),R2(C,D),R3(A,C)}。无损连接并保持函数依赖地把关系模式R分解成3NF关系模式集

【例6.23】设有关系模式R(W,X,Y,Z)及其上面的函数依赖集F={W→XY,Y→Z,XZ→Y,X→Y},请将R分解为无损连接和保持函数依赖的满足3NF的关系模式集。【解答】(1)根据最小函数依赖集的定义,可知F不是一个最小函数依赖集。因此,首先求F的最小函数依赖集Fmin:把F中右边包含多个属性的函数依赖分解为右边只包含一个属性的函数依赖,得到与F等价的G,G={W→X,W→Y,Y→Z,XZ→Y,X→Y}。删除G中冗余的函数依赖:由于X→Y,根据Armstrong公理的增广律,XZ→YZ成立,可把XZ→Y删除,得到与G等价的函数依赖集H,H={W→X,W→Y,Y→Z,X→Y}。H中各个函数依赖的左部不存在冗余属性,因此,H即为Fmin。无损连接并保持函数依赖地把关系模式R分解成3NF关系模式集

【例6.23】设有关系模式R(W,X,Y,Z)及其上面的函数依赖集F={W→XY,Y→Z,XZ→Y,X→Y},请将R分解为无损连接和保持函数依赖的满足3NF的关系模式集。【解答(续)】(2)没有一个函数依赖的左右边相加等于关系模式R的所有属性,因此,R需要分解。(3)对于W→X,构建R1(W,X);对于W→Y,构建R2(W,Y);由于W→X和W→Y的左部相等,因此把R1和R2合并得到R3(W,X,Y)。对于Y→Z和X→Y,分别构建R4(Y,Z)和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论