全部科目 > 数据库系统工程师 >
2014年上半年 上午试卷 综合知识
第 57 题
知识点 保持函数依赖   函数依赖   模式分解及分解后的特性   无损连接  
关键词 函数依赖   函数  
章/节 关系数据库  
 
 
通过反复使用保证无损连接性,又保持函数依赖的分解,能保证分解之后的关系模式至少达到()。
 
  A.  1NF
 
  B.  2NF
 
  C.  3NF
 
  D.  BCNF
 
 




 
 
相关试题     模式分解 

  第61题    2014年上半年  
某企业的E-R图中,职工实体的属性有:职工号、姓名、性别,出生日期,电话和所在部门,其中职工号为实体标识符,电话为多值属性,离退休职工所在部门为离退办.在逻辑设计阶段.应将职工号和电话单独构..

  第38题    2013年上半年  
给定关系模式R(U,F),其中:属性集U={A,B,C,D,E,G},函数依赖集F={A→B,A→C,C→D,AE→G}。因为(36)=U,且满足最小性,所以其为R的候选码;关系模式尺属于(37),因为..

  第35题    2017年上半年  
给定关系模式R<U ,F> ,U={A,B,C,D,E},F= {B→A ,D →A ,A→E ,AC →B },则R的候选关键字为(34),分解ρ= (R1(ABCE),R2(CD)} (35)。

 
知识点讲解
· 保持函数依赖
· 函数依赖
· 模式分解及分解后的特性
· 无损连接
 
        保持函数依赖
        【定义7.21】设关系模式R(U,F)的一个分解ρ={R1(U1,F1),R2(U2,F2),…,Rk(Uk,Fk)},如果,则称分解ρ保持函数依赖。
 
        函数依赖
        【定义7.4】设R(U)是属性集U上的关系模式,X、Y是U的子集。若对R(U)的任何一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数决定Y或Y函数依赖于X,记作:X→Y。
        .如果X→Y,但,则称X→Y是非平凡的函数依赖。一般情况下总是讨论非平凡的函数依赖。
        .如果X→Y,但,则称X→Y是平凡的函数依赖。
        注意:函数依赖X→Y的定义要求关系模式R的任何可能的r都满足上述条件。因此不能仅考察关系模式R在某一时刻的关系r,就断定某函数依赖成立。
        例如,关系模式Student(Sno,Sname,SD,Sage,Sex)可能在某一时刻,Student的关系r中每个学生的年龄都不同,也就是说没有两个元组在Sage属性上取值相同,而在Sno属性上取值不同,但我们决不可据此就断定Sage→Sno。很有可能在某一时刻,Student的关系r中有两个元组在Sage属性上取值相同,而在Sno属性上取值不同。
        函数依赖是语义范畴的概念,我们只能根据语义来确定函数依赖。例如,在没有同名的情况下,Sname→Sage,而在允许同名的情况下,这个函数依赖就不成立了。
        【定义7.5】在R(U)中,如果X→Y,并且对于X的任何一个真子集X',都有X'不能决定Y,则称Y对X完全函数依赖,记作:。如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:。部分函数依赖也称局部函数依赖。
        例如,给定一个学生选课关系SC(Sno,Cno,G),我们可以得到F={(Sno,Cno)→G},对(Sno,Cno)中的任何一个真子集Sno或Cno都不能决定G,所以,G完全依赖于Sno,Cno。
        【定义7.6】在R(U,F)中,如果X→Y,,Y→Z,则称Z对X传递依赖。
 
        模式分解及分解后的特性
               分解
               【定义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能表示如下的数据库操作:
 
        无损连接
        【定义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+。证明略。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

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