- 21
- 0
- 约5.05千字
- 约 5页
- 2021-12-08 发布于福建
- 举报
数据库函数依赖和范式总结
1 函数依赖
1.1 定义:
一个集合 R(U,F) ,U 为属性全集, F 为函数依赖集合。 F 中存在着 {Xi-
Yi...}; 对于每个 X 都存在着一个 Y 与之唯一对应。
意思就是相当于 X 为主键, Y 由主键决定。比如一个学生他的学号相当
于 X ,而他的姓名与年龄这些其他信息相当于 Y 。但是 X 有时候并不是
一个值,比如一个学生他的成绩需要有两个属性才能知道他的成绩,学
号+课程号 - 成绩
1.2 平凡函数依赖与非平凡函数依赖
平时我们主要讨论的是非平凡函数依赖。
平凡函数依赖概念: Y 集合属性属于 X 集合属性的子集
非平凡函数则相反
1.3 逻辑蕴涵 (为后面求闭包做好基础 )
X,Y 为属性集合 U 的子集,且 X-Y 不存在于 F 中。即我们需要通过 F
中的函数依赖推出 X-Y 称为函数依赖。而所有函数依赖的集合则称为闭
包
1.4 函数依赖的推理规则 (就是求函数依赖的逻辑蕴涵 )
1.4.1 几个公理
1.4.1.1 公理一 ( 自反律 ):Y 属于 X 的子集,则 X-Y 数学公式描述 Y ? X ? U
1.4.1.2 公理二 (增广律 ):X-Y 成立, Z ? U 也成立,则 XZ ? YZ
1.4.1.3 公理三 (传递律 ):X-Y 成立, Y-Z 成立,则 X-Z
1.4.2 公理的推广
1.4.2.1 推广一 (合并律 ):X-Y,X-Z, 则 X-YZ
1.4.2.2 推广二 (伪传递律 ):X-Y,YW-Z, 则 XW-Z( 证明只需要在 XY 两边 *W)
1.4.2.3 推广三 (分解律 ):X-Y 成立, Z ? Y ,则 X-Z
1.4.2.4 推广四 (复合律 ):X-Y,W-Z, 则 XW-YZ
1.5 完全函数依赖与部分函数依赖 (范式中基础知识 )
X-Y 的集合中,若 X 的任一真子集 x 都能 x-Y 则为部分函数依赖,若
不能则的完全函数依赖,如果 X 没有真子集则也称为完全函数依赖。例
如学号可以决定姓名,年龄等,因为学号集合没有真子集,则此为完全
函数依赖。而当姓名没有重名的情况下,学号和姓名都可以作为 X 集合
子集,而此时姓名也可以决定年龄,所以此函数为部分函数依赖
1.6 传递函数依赖 (范式中基础知识 )
X-Y ,且 Y!-X ,Y-Z, 则 X-Z 称为传递函数依赖
简单理解就是 X 通过 Y 再 Y 通过 Z ,最后 X 可以决定 Z,但是如果 Y-X 的话,那么 X-
Y 直接相等就相当于没意义经过传递而只是简单的替换了而已,所以并不能叫做传递函
数依赖
1.7 ( 重要 )属性集的闭包和算法
1.7.1 定义:从 F 集合中所有的函数依赖 F-A
1.7.2 X-Y 的充分必要条件 Y ? X*
1.7.3 计算闭包算法
设属性集 U ,F 是 R 上的依赖函数集, X 是 U 的子集,求属性 X 相当于函数依赖集 F 的闭
包 X*
result = x; do{ if(F 中有某个函数依赖集合 Y-Z 满足 Y ? result){ result = result ∪ Z ; } } while(result
有所改变 );
例题:属性集合 U={X,Y,Z,W}, 函数依赖集合 F={X-Y,Y-Z,W-Y}, 求闭包
X* = XYZ ,(XW)* = XYZW ,(YW)*=YZW
1.8
原创力文档

文档评论(0)