数据库关系模式分解:BCNF和3NF示例
已知关系模式 R(A, W, C, N, E, F) 及其上的函数依赖集 F: (A → W, C → F, E → A, CE → N)
-
R 的关键字是 A, W, C, N, E, F。
-
R1 (AWE) 和 R2 (CNEF) 都是 BCNF 范式内的关系模式。
BCNF 范式要求一个关系模式中的所有非主属性完全依赖于候选键,而 R1 和 R2 都满足这一要求。在 R1 中,所有非主属性 W 完全依赖于候选键 A,而在 R2 中,所有非主属性 C, N, E, F 都完全依赖于候选键 CNE。因此,R1 和 R2 都是 BCNF 范式内的。
- 为了将 R 分解为 3NF 的关系模式,并且保持无损连接性和保持函数依赖,可以按照以下步骤进行分解:
-
步骤 1:根据函数依赖集 F,我们可以得到以下的函数依赖关系:
- A → W
- C → F
- E → A
- CE → N
-
步骤 2:根据步骤 1 中得到的函数依赖关系,我们可以得到以下的关系模式:
- R1 (A, W)
- R2 (C, F)
- R3 (E, A)
- R4 (C, E, N)
-
步骤 3:检查分解后的关系模式是否满足 3NF 的要求:
- R1 (A, W) 没有部分依赖或传递依赖,已经满足 3NF 的要求。
- R2 (C, F) 没有部分依赖或传递依赖,已经满足 3NF 的要求。
- R3 (E, A) 没有部分依赖或传递依赖,已经满足 3NF 的要求。
- R4 (C, E, N) 没有部分依赖或传递依赖,已经满足 3NF 的要求。
因此,分解后的关系模式 R1 (A, W),R2 (C, F),R3 (E, A),R4 (C, E, N) 满足 3NF 的要求,并且保持了原始函数依赖关系。
原文地址: http://www.cveoy.top/t/topic/nTi 著作权归作者所有。请勿转载和采集!