#挑战每日一条沸点# 今天复习了数据库模式求精章节,终于搞清楚BCNF和3NF的算法了。
BCNF要求每一个决定属性都是超码,如果不是,就把这个函数依赖单独拿出来,再把决定属性和剩下的属性放一起,分解成两个关心模式,然后再判断,如此循环。
3NF则要先求正则覆盖,再按照正则覆盖里每一个函数依赖关系拆分,如果有包含关系的就合并,候选码不在上述关系模式里,就新增一个。
BCNF一定是无损连接的,但是可能会丢失一些函数依赖
3NF一定是无损且完全依赖的,但是存在数据冗余
展开
评论