文章目录
纯傻逼的自己复习看的文章
数据依赖
函数依赖
消除函数依赖的理论:1NF,2NF,3NF,BCNF
平凡函数依赖与非平凡函数依赖
例:(a,b)→ c
例:(a,b)→b
完全函数依赖与部分函数依赖
就是说X缺一不可
就是说X有部分键冗余
传递函数依赖
就是如果a→b,b→c的话,a→c
注意!!如果Y→X, 即X←→Y,则Z直接依赖于X,而不是传递函数依赖
确定函数依赖
一个高质量的数据需要去除冗余,这就需要将数据表分解了,但是分解数据表需要确定数据依赖
这需要我们先确定主键
对于关系模式R<U,F>,基于F所蕴含的关系,可以确定所有的函数依赖
,可以确定码
闭包
在关系模式R<U,F>
中为F所逻辑蕴涵的函数依赖的全体叫作F的闭包(closure),记为F +
如何推理计算出 F+?
Armstrong公理
Armstrong
三条推理
求闭包的算法
求属性集X(X⊆ U)关于U上的函数依赖集F的闭包 X F + X_F^+ XF+
求X={A,B,C,···}的闭包就是把X的所有属性能推出的属性都加进X
- 初始化:令 X ( 0 ) X^{(0)} X(0)= X X X,i=0
- 求B:对X(i)中的每个元素,依次检查相应的函数依赖,将依赖它的属性加入B
- 并: X ( i + 1 ) X^{(i+1)} X(i+1)=B∪ X ( i ) X^{(i)} X(i)
- 判断: X ( i + 1 ) X^{(i+1)} X(i+1)=