免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2015年上半年 数据库系统工程师 上午试卷 综合知识
  第36题      
  知识点:   模式分解及分解后的特性
  章/节:   关系数据库       

 
给定关系模式R(A1,A2,A3,A4),R上的函数依赖集F= {A1A3→A2,A2→A3},R(35)。若将R分解为p={(A1,A2,A4),(A1,A3)}.那么该分解是(36)的。
 
 
  A.  无损联接
 
  B.  无损联接且保持函数依赖
 
  C.  保持函数依赖
 
  D.  有损联接且不保持函数依赖
 
 
 

 
  第38题    2016年上半年  
   62%
关系R(A1,A2,A3)上的函数依赖集F={A1A3→A2,A
  第48题    2020年下半年  
   48%
关系模式R<U, D>中,D为R的函数依赖和多值依赖的集合。将R分解为两个关系模式R1<U1,,D1
  第61题    2014年上半年  
   53%
某企业的E-R图中,职工实体的属性有:职工号、姓名、性别,出生日期,电话和所在部门,其中职工号为实体标识符,电话为多值属性,离退..
   知识点讲解    
   · 模式分解及分解后的特性
 
       模式分解及分解后的特性
               分解
               【定义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能表示如下的数据库操作:
   题号导航      2015年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第36题    在手机中做本题