第七章 关系型数据库的设计
数据库三大范式:
第一范式:关系模式R的所有域都是原子的。
第二范式:数据库的非主属性和数据表有着完全依赖关系。
第三范式:
第四范式:(多值依赖)
1.有损分解和无损分解:
有损分解:如果将一张表拆分自然连接之后得到的表和原来不一样,则称为有损分解,否则被称为无损分解。
2.使用函数依赖进行分解
(1)r ( R )表示该模式是关系r的,R表示属性集
(2)当属性集是一个超码时,我们用K表示它。
在一个关系上如果K→R在r(R)上成立,则K是r®的一个超键。
*平凡的依赖关系:a→β,β属于a,则称该依赖关系为平凡依赖关系。
*F+表示F集合的闭包,也就是能从F集合推导出所有函数依赖的集合。
3.BCNF范式
4.第三范式
5.函数依赖集的闭包:
(1)寻找逻辑蕴涵的函数依赖:(Amstrong)公理
其他规律:
计算闭包的过程:
(2)属性集的闭包:
如果a→β,我们称属性B被a函数确定。
计算F下a的闭包算法:
属性集闭包算法的用途:
6.正则覆盖:
如果去除函数依赖中的一个属性不改变该函数依赖集的闭包,则称该属性是无关的。
检查一个属性是否是无关:
正则覆盖:Fg有如下性质:
计算正则覆盖
(1)无损分解的条件:
(2)函数依赖的保持:
7.分解算法
(1)BCNF分解:
-1.BCNF的判定:
当判断其分解之后的BCNF判定:
-2.BCNF分解
(2)3NF分解
8.多值依赖:
如果β属于a或β∪a=R,则a→→b是平凡的