首页 > 知识点讲解
       模式分解及分解后的特性
知识路径: > 数据库技术 > 关系数据库 > 关系数据库理论 > 模式分解 > 
被考次数:13次     被考频率:高频率     总体答错率:52%     知识难度系数:     
考试要求:掌握      相关知识点:16个      
               分解
               【定义7.19】关系模式R(U,F)的一个分解ρ是指ρ={R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn)},其中:,并且没有,1≤ijn,Fi是F在Ui上的投影,
               对一个给定的模式进行分解,使得分解后的模式是否与原来的模式等价有三种情况:
               (1)分解具有无损连接性。
               (2)分解要保持函数依赖。
               (3)分解既要无损连接性,又要保持函数依赖。
               无损连接
               【定义7.20】ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)}是关系模式R(U,F)的一个分解,若对R(U,F)的任何一个关系r均有r=mρ(r)成立,则称分解ρ具有无损连接性,简称无损分解。其中,
               【定理7.1】关系模式R(U,F)的一个分解ρ={R1(U1,F1),R2(U2,F2)},具有无损连接的充分必要的条件是:U1∩U2→U1-U2∈F+或U1∩U2→U2-U1∈F+。证明略。
               保持函数依赖
               【定义7.21】设关系模式R(U,F)的一个分解ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)},如果,则称分解ρ保持函数依赖。
               判别一个分解的无损连接性算法
               【算法7.1】判别一个分解是否无损连接算法。
               关系模式R(U,F)的一个分解ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)},U={A1,A2,…,An},F={FD1,FD2,…,FDp},并设F是一个最小依赖集,记FDi为Xi→Aij。判断ρ是否无损连接的步骤如下:
               步骤1:建立一张nk行的表,每一列对应一个属性,每一行对应分解中的一个关系模式。若属性AjUi,则在ji行上填上aj,否则填上bij
               步骤2:对于每一个FDi做如下操作:找到Xi所对应的列中具有相同符号的那些行。考察这些行中li列的元素,若其中有aij,则全部改为aij,否则全部改为bmlim是这些行的行号最小值。该步骤执行时注意如下几点:
               .如果在某次更改后,有一行成为“a1a2,…,an”则算法终止,且分解ρ具有无损连接性,否则不具有无损连接性。
               .对F中p个FD逐一进行一次这样的处理,称为对F的一次扫描。
               步骤3:比较扫描前后的表有无变化,若有变化,则返回步骤2;否则算法终止。
               如果发生循环,那么前次扫描至少应使该表减少一个符号,表中符号有限,因此,循环必然终止。
               将关系模式转换成3NF且保持函数依赖的算法
               【算法7.2】转换成3NF且保持函数依赖的分解算法。
               步骤1:对R(U,F)的函数依赖集F进行极小化处理(处理后的结果仍记为F)。
               步骤2:找出不在F中出现的属性,将这样的属性构成一个关系模式。把这些属性从U中去掉,剩余的属性仍记为U。
               步骤3:若有X→A∈F,且XA=U,则ρ={R},算法终止。
               步骤4:否则,对F按具有相同左部的原则分组(假定分为k组),每一组函数依赖Fi所涉及的全部属性形成一个属性集Ui。若就去掉Ui。由于经过了步骤2,故合并属性集Ui。于是ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)}构成R(U,F)的一个保持函数依赖的分解。并且,每个Ri(Ui,Fi)均属于3NF且保持函数依赖。
               将关系模式转换成3NF且无损连接又保持函数依赖的算法
               【算法7.3】将一个关系模式转换成3NF,使它既具有无损连接又保持函数依赖的分解。
               输入:关系模式R和R的最小函数依赖集F。
               输出:R(U,F)的一个分解ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)},Ri为3NF,且ρ具有无损连接又保持函数依赖的分解。
               操作步骤如下:
               (1)根据算法7.2求出保持依赖的分解ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)};
               (2)判断分解ρ是否具有无损连接性,若有,转(4);
               (3)令ρ=ρ∪{X},其中X是R的码;
               (4)输出ρ
               将关系模式转换成BCNF且无损连接的算法
               【算法7.4】将关系模式转换成BCNF,使它具有无损连接的分解。
               输入:关系模式R和函数依赖集F。
               输出:R(U,F)的一个分解ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)},Ri为BCNF,且ρ具有无损连接的分解。
               操作步骤如下:
               (1)令ρ={R};
               (2)若ρ中的所有模式都是BCNF,则转(4);
               (3)若ρ中Ri不属于BCNF,则Ri中必能找到一个函数依赖,且X不是Ri的候选码,将Ri分解为τ={Ri1(XA),Ri2(Ri-A)},并用分解τ代替Ri,转(2)。
               (4)输出ρ
               数据操纵语言(Data Manipulation Language,DML)用来表示用户对数据库的操作请求。一般地,数据操纵语言DML能表示如下的数据库操作:
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2020年下半年
   数据库系统工程..
   上午试卷 综合知识
第48题
选择题
关系模式R<U, D>中,D为R的函数依赖和多值依赖的集合。将R分解为两个关系模式R1<U1,,D1>和R2<U2,D2>,则以下说法中错误的是(  )。

48%
   2019年上半年
   数据库系统工程..
   上午试卷 综合知识
第50题
选择题
将一个关系r分解成两个关系rl和r2,再将分解之后的两个关系rl和r2进行自然连接,得到的结果如果比原关系r记录多,则称这种分解为( )。

63%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有