关系模式R = {A,B,C,G,H,I}及函数依赖集 F = {A→B, A → C, CG → H, CG → I, B → H}。求(AG)+
时间: 2023-10-05 14:08:34 浏览: 190
根据题目给出的关系模式 R 和函数依赖集 F,可以列出以下推导步骤:
1. 由 A → B 和 A → C,推导得出 AG → BC。
2. 由 CG → H 和 CG → I,推导得出 CG → HI。
3. 由 B → H,推导得出 BG → H。
4. 将步骤 1 和步骤 2 的结果合并,得到 AG → BCHI。
5. 将步骤 4 和步骤 3 的结果合并,得到 AG → BCHI。
因此,(AG)+ = {A, B, C, G, H, I}。
相关问题
1.请利用属性集闭包算法,求出如下关系模式中属性集AB的属性集闭包? r(A,B,C,G,H,I) A→B,A→C,CG→H,CG→I,B→H 2.请利用属性集闭包算法,求出如下关系模式中属性集A的属性集闭包? r(A,B,C,G,H,I) A→B,A→C,CG→H,CG→I,B→H 3.设有关系模式R(A, B,C, D), 其上的函数依赖集为:F={A→C,C→A,B→AC} (1)计算(AD)+ (2) 求R的候选码 (3)给出该模式的最强范式(选项有1NF、3NF和BCNF)。如果不满足BCNF,请将其分解为满足BCNF的关系模式集合。 4.设有关系模式R<U,F>,其中: U={A,B,C,D,E,P},F=[A→B,C→P,E→A,CE→D,B→C}求R的所有候选码。
1. 属性集AB的属性集闭包为ABHI.
这里简单介绍一下属性集闭包的算法流程:
首先将已知的所有的函数依赖进行合并,得到一个包含所有属性集的集合F。
然后将属性集AB加入到一个集合X中,再利用F中的函数依赖进行推导,得到新的属性集,将其加入到X中,重复直到没有新的属性集可以被推导出为止,此时X中包含了属性集AB的属性集闭包。
2. 属性集A的属性集闭包为ABCHEIP.
3. (1)(AD)+ = {A,D,C}
(2)R的候选码为{B, CE}
(3)该模式的最强范式为BCNF. 因为BCNF要求关系模式中的每一个非平凡函数依赖都必须满足左部是候选码或者是超键。而在该模式中,B→AC不满足BCNF,因为B不是候选码,也不是超键。因此需要将其分解为满足BCNF的关系模式集合。
分解步骤如下:
R1(ABC), R2(BC), R3(BD), R4(CD)
容易验证每个关系模式都满足BCNF。
4. R的所有候选码为BE, CE, AE.
设关系模式 R(ABCDEGHl),在R 上有相应的FD集F=(AD→E, AC→E, CB→G, BCD→AG, BD→A, AB→G.A →CI→H) (1) 求出R的最小函数依頼集 Fmn(4分)。 (2) 求出(BG)*(4分)。 (3) 求出 R的候健(4分)。
1. 求出R的最小函数依赖集 Fmn:
首先,将 F 中的冗余依赖消除,得到新的函数依赖集 F':
- AD → E
- AC → E
- CB → G
- BD → A
- AB → G
- A → H
- A → C
接下来,使用 Armstrong 公理进行推导,得到额外的依赖关系:
- AB → A (根据 BD → A 推出)
- AB → B (根据 BD → A 和 AB → G 推出)
- AB → AG (根据 AB → A 和 AB → G 推出)
- ABD → AG (根据 AB → AG 和 BCD → AG 推出)
- ABD → A (根据 BD → A 推出)
- ABD → B (根据 AB → B 和 ABD → A 推出)
- ABD → G (根据 AB → AG 和 ABD → A 推出)
- ABD → AB (根据 AB → A 和 AB → B 和 AB → AG 推出)
- ABD → BD (根据 AB → B 和 ABD → A 推出)
- ABD → AD (根据 ABD → A 和 ABD → BD 推出)
- ABD → CD (根据 AC → E 和 AD → E 推出)
因此,R 的最小函数依赖集为:
- AD → E
- AC → E
- CB → G
- BD → A
- AB → G
- A → H
- A → C
- AB → A
- AB → B
- AB → AG
- ABD → AG
- ABD → A
- ABD → B
- ABD → G
- ABD → AB
- ABD → BD
- ABD → AD
- ABD → CD
2. 求出(BG)*:
根据关系模式 R 和 FD 集 F,可以得到 R 的所有超键为:
- ABCDEGH
- ABCEGH
- ABDEGH
- ABEH
- ABGH
- ACGH
- ADEH
- ADGH
- AEH
- AGH
- BDGH
- BEGH
- BGH
- CDGH
- CEGH
因此,(BG)* = {B, G, AB, AG, BD, BG, CD, CG, ABD, ABG, ACG, ADG, AEG, BDG, BEG, BCG, CDG, CEG, ABDG, ABEG, ABCG, ACDG, ACEG, BCDG, BCEG, ABDCG, ABCEG, ABDCEG, ABDCEGH}。
3. 求出 R 的候选键:
对于一个关系模式 R,如果一个属性集合 K 能够唯一标识一个元组,则称 K 为 R 的候选键。为了找到 R 的候选键,需要找到 R 的所有超键,并判断它们是否能够成为候选键。
根据上面的计算结果,R 的所有超键为:
- ABCDEGH
- ABCEGH
- ABDEGH
- ABEH
- ABGH
- ACGH
- ADEH
- ADGH
- AEH
- AGH
- BDGH
- BEGH
- BGH
- CDGH
- CEGH
其中,ABCDEGH 是最小超键,但不是候选键,因为它包含了所有属性。因此,需要从这些超键中找到最小的候选键。
根据 Armstrong 公理,可以发现 A 是一个必须包含在候选键中的属性。因此,可以从包含 A 的超键中找到最小的候选键。
将每个超键按照包含的属性数量从小到大排列,得到如下列表:
- ABEH
- ACGH
- ABGH
- ADGH
- AEH
- AGH
- BEGH
- BGH
- CDGH
- CEGH
- ABDEGH
- ABCEGH
- ABCDEGH
从中找到第一个包含所有属性的属性集合,即 ABEH,因此 R 的候选键为 {A, B, E, H}。
阅读全文