设关系模式 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分)。
时间: 2024-04-26 09:21:48 浏览: 213
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}。
阅读全文