资源描述
4.4 对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ的含义是什么?
答:据推理规则的自反律可知,X®ф和ф®ф是平凡的FD,总是成立的。
而ф®Y表示在当前关系中,任意两个元组的Y值相等,也就是当前关系的Y值都相等。
4.6 设关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?其中平凡的FD有多少个?非平凡的FD有多少个?
解:这个问题是排列组合问题。FD形为X®Y,从n个属性值中选择属性组成X共有C+C+ … +C=2n种方法;同理,组成Y也有2n种方法。因此组成X®Y形式应该有2n·2n=4n种方法。即可能成立的FD有4n个。
平凡的FD要求YÍX,组合X®Y形式的选择有:
C·C+C·(C+C)+C·(C+C+C)+ … +C(C+C+ … C)=C·20+C·21+C·22+ … +C·2n=(1+2)n=3n
即平凡的FD有3n。因而非平凡的FD有4n-3n个。
4.8 设关系模式R(ABCD),F是R上成立的FD集,F={ A→B,C→B },则相对于F,试写出关系模式R的关键码。并说明理由。
解:R的关键码为ACD。因为从已知的F,只能推出ACD→ABCD。
4.13 设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},
① 试写出属性集BD的闭包(BD)+。
② 试写出所有左部是B的函数依赖(即形为“B→?”)。
解:①从已知的F,可推出BD→BCD,所以(BD)+=BCD。
②由于B+=BC,因此左部是B的FD有四个:
B→φ,B→B,B→C,B→BC。
4.14 设关系模式R(ABCDE)上FD集为F,并且F={A→BC,CD→E,B→D,E→A}。
① 试求R的候选键。
② 试求B+的值。
解:① R的候选键有四个:A、E、CD和BC。
② B+=BD。
4.15 设有关系模式R(ABC),其关系r如图4.20所示。
① 试判断下列三个FD在关系r中是否成立?
A→B BC→A B→A
② 根据关系r,你能断定哪些FD在关系模式R上不成立?
A
B
C
1
2
3
4
2
3
5
3
3
图4.23
解:①在关系r中,A→B成立,BC→A不成立,B→A不成立。
②在关系r中,不成立的FD有:B→A,B→AC,C→A,C→B,C→AB,BC→A。
4.19 设关系模式R(ABC),F是R上成立的FD集,F={ A→C,B→C },试分别求F在模式AB和AC上的投影。
答:πAB(F)=φ(即不存在非平凡的FD)
πAC(F)={ A→C }
4.20 设关系模式R(ABC),F是R上成立的FD集,F={ B→A,C→A },ρ={ AB,BC }是R上的一个分解,那么分解ρ是否保持FD集F?并说明理由。
答:已知F={ B→A,C→A },而πAB(F)={ B→A },πBC(F)=φ,
则πAB(F)∪πBC(F)={ B→A }⊭F(显然,分解ρ丢失了FD C→A)。
所以ρ不保持FD集F。
4.21 设关系模式R(ABC),F是R上成立的FD集,F={ B→C,C→A },那么分解ρ={ AB,AC }相对于F,是否无损分解和保持FD?并说明理由。
答:①用测试过程可以知道,ρ相对于F是损失分解。
A
B
C
AB
a1
a2
b13
AC
a1
b22
a3
②已知F={ B→C,C→A },而πAB(F)={ B→A },πAC(F)={ C→A },
则πAB(F)∪πAC(F)={ B→A ,C→A }⊭F(显然,分解ρ丢失了FD B→C)。
所以ρ不保持FD集F。
4.22 设关系模式R(ABCD),F是R上成立的FD集,F={ A→B,B→C,A→D,D→C },ρ={ AB,AC,BD }是R的一个分解。
① 相对于F,ρ是无损分解吗?为什么?
② 试求F在ρ的每个模式上的投影。
③ ρ保持F吗?为什么?
答:①用测试过程可以知道,ρ相对于F是损失分解。
②πAB(F)={ A→B },πAC(F)={ A→C },πBD(F)=φ。
③显然,分解ρ不保持FD集F,丢失了B→C、A→D和D→C等三个FD。
4.26 设关系模式R(ABCD),F是R上成立的FD集,F={ AB→CD,A→D }。
① 试说明R不是2NF模式的理由。
② 试把R分解成2NF模式集。
答:①从已知FD集F,可知R的候选键是AB。
另外,AB→D是一个局部依赖,因此R不是2NF模式。
②此时R应分解成ρ={ AD,ABC },ρ是2NF模式集。
4.27 设关系模式R(ABC),F是R上成立的FD集,F={ C→B,B→A }。
① 试说明R不是3NF模式的理由。
② 试把R分解成3NF模式集。
答:①从已知FD集F,可知R的候选键是C。
从C→B和B→A,可知C→A是一个传递依赖,因此R不是3NF模式。
②此时R应分解成ρ={ CB,BA },ρ是3NF模式集。
4.28 设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店里每个职工的日营业额,以及职工所在的部门和经理信息。
如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。
试回答下列问题:
(1)根据上述规定,写出模式R的基本FD和关键码;
(2)说明R不是2NF的理由,并把R分解成2NF模式集;
(3)进而分解成3NF模式集。
解:(1)基本的FD有三个:
(职工编号,日期)→ 日营业额
职工编号 → 部门名
部门名 → 部门经理
R的关键码为(职工编号,日期)。
(2)R中有两个这样的FD:
(职工编号,日期)→(部门名,部门经理)
职工编号 → (部门名,部门经理)
可见前一个FD是局部依赖,所以R不是2NF模式。
R应分解成R1(职工编号,部门名,部门经理)
R2(职工编号,日期,日营业额)
此处,R1和R2都是2NF模式。
(3)R2已是3NF模式。
在R1中,存在两个FD:职工编号 → 部门名
部门名 → 部门经理
因此,“职工编号 → 部门经理”是一个传递依赖,R1不是3NF模式。
R1应分解成R11(职工编号,部门名)
R12(部门名,部门经理)
这样,ρ= { R11,R12,R2 }是一个3NF模式集。
4.30 设关系模式R(ABCD),在R上有五个相应的FD集及分解:
(1)F={ B→C,D→A },ρ={ BC,AD }
(2)F={ AB→C,C→A,C→D },ρ={ ACD,BC }
(3)F={ A→BC,C→AD },ρ={ ABC,AD }
(4)F={ A→B,B→C,C→D },ρ={ AB,ACD }
(5)F={ A→B,B→C,C→D },ρ={ AB,AD,CD }
试对上述五种情况分别回答下列问题:
① 确定R的关键码。
② 是否无损分解?
③ 是否保持FD集?
④ 确定ρ中每一模式的范式级别。
解:
(1) F={ B→C,D→A },ρ={ BC,AD }
① R的关键码为BD。
(因为(BD)+=ABCD)
② ρ不是无损分解。(不存在全a行)
A
B
C
D
BC
b11
a2
a3
b14
AD
a1
b22
b23
a4
③ ρ保持FD集F。
πBC(F)={B→C},πAD(F)={D→A},而πBC(F)∪πAD(F)={B→C,D→A}⊨F,所以ρ保持FD集F。
④ ρ中每一模式已达到BCNF级别。
(2) F={ AB→C,C→A,C→D },ρ={ ACD,BC }
① R有两个关键码:AB和BC。
(因为(AB)+=ABCD,(BC)+=ABCD)
② ρ是无损分解。 (存在全a行)
A
B
C
D
ACD
a1
b12
a3
a4
BC
b21
a2
a3
b24
③ 因为πACD(F)={ C→A ,C→D },πBC(F)=φ(没有非平凡的FD),而πACD(F)∪πBC(F)={C→A,C→D}⊭F,丢失了AB→C,所以ρ不保持FD集F。
④ ρ中两模式均已达到BCNF级别。
(3) F={ A→BC,C→AD },ρ={ ABC,AD }
① R有两个关键码:A和C
(因为(A)+=ABCD,(C)+=ABCD)
② ρ是无损分解。(存在全a行)
A
B
C
D
ABC
a1
a2
a3
b14
AD
a1
b22
b23
a4
③ 因为πABC(F)={ A→BC,C→A },πAD(F)= { A→D },
而πABC(F)∪πAD(F)={ A→BC,C→A,A→D }⊨F,所以ρ保持FD。
④ 在模式ABC中,关键码是A或BC,属性全是主属性,但有传递依赖(A→BC,BC→A)。因此模式ABC是3NF,但不是BCNF。???而模式AD显然已是BCNF。
注释:(A→BC,BC→A)不符合传递依赖的定义(因为传递依赖要求BC不决定A),不是传递依赖。所以模式ABC是BCNF。
(4) F={ A→B,B→C,C→D },ρ={ AB,ACD }
① R的关键码为A。
(因为(A)+=ABCD)
② ρ是无损分解。(存在全a行)
A
B
C
D
AB
a1
a2
b13
b14
ACD
a1
b22
a3
a4
③ 因为πAB(F)={ A→B },πACD(F)={ A→C,C→D },而πAB(F)∪πACD(F)={ A→B,A→C,C→D }⊭F,丢失了B→C,所以ρ不保持FD集F。
④ 模式AB是BCNF,模式ACD不是3NF,只达到2NF级别。
(5) F={ A→B,B→C,C→D },ρ={ AB,AD,CD }
① R的关键码为A。
(因为(A)+=ABCD)
② ρ不是无损分解。(不存在全a行)
A
B
C
D
AB
a1
a2
b13
b14
AD
a1
b22
b23
a4
CD
b31
B32
a3
a4
③ 因为πAB(F)={ A→B },πAD(F)={ A→D },πCD(F)={ C→D },
而πAB(F)∪πAD(F)∪πCD(F)={ A→B,A→D,C→D }⊭F,丢失了B→C,所以ρ不保持FD集F。
④ ρ中每个模式均是BCNF级别。
展开阅读全文