数据库转化为3NF以及BCNF
Posted lvgj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库转化为3NF以及BCNF相关的知识,希望对你有一定的参考价值。
数据库转化为3NF以及BCNF
转换为3NF保持函数依赖
例题:关系模型R<U,F>,U={A,B,C,D,E},F={A→BC,ABD→CE,E→D}
- 首先最小化处理得到(F=A ightarrow B,A ightarrow C,AD ightarrow E,E ightarrow D)
- 合并(R_1={ABC},R_2={ADE},R_3={ED})
转换为3NF保持函数依赖和无损性
例题:关系模型R<U,F>,U={A,B,C,D,E},F={A→BC,ABD→CE,E→D}
首先根据上面得到的(R_1,R_2,R_3)
- 计算出R的候选码为AD,AE,生成两个新的关系(R_4{AD},R_5{AE})
下一步就是看包括关系,明显(R_3,R_4,R_5)包括在(R_2)里面所以得到(R_1,R_2)
转换为BCNF
例题:关系模式R<U,F>,其中:U={A,B,C,D,E},F={A→C,C→D,B→C,DE→C,CE→A},将其分解成BCNF并保持无损连接。
A:LR
B:L
C:LR
D:LR
E:L
计算BE的闭包得到ABCDE所以候选码为BE
- 对于A→C不符合BCNF所以分离出来,(R_1) ={AC},(R_2)={ABDE}(去除C),这时(F_2) = {B→D,DE→D,BE→A},删除DE→D,得到(F_2) = {B→D,BE→A}
- 对于(R_2)其中B→D中的B是决定因素但是不是码(码是BE),所以分离
- 得到(R_3= {ABE},R_2 = {BD},R_1 = {AC})
以上是关于数据库转化为3NF以及BCNF的主要内容,如果未能解决你的问题,请参考以下文章