关系规范化和范式
范式:关系数据库理论的基础,也是我们设计数据库结构的过程中应该遵守的;表示的是关系模型的规划程度;
8中范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),BC范式(BNF),第四范式(4NF),第五范式(5NF),DK范式(DKNF),第六范式(6NF);
满足要求慢慢增加:1NF--->2NF---->BNF---->3NF;
数据的依赖:函数依赖和多值依赖;
函数依赖:给定一个属性的值,另一个属性的值也就唯一确定了;(X->Y)X函数决定Y,Y函数依赖X
平凡的函数依赖:X->Y,且包含或等于Y;如:(职工号,性别)->职工号,是平凡的函数依赖
不平凡的函数依赖:X->Y,但不包含或等于Y; 如:(职工号,性别)->年龄,是不平凡的函数依赖
完全函数依赖:(学号,课程号)->分数;
部分函数依赖:(学号,课程号)->所在系;
传值函数依赖:学号->所在系------传值函数决定------->所在系->系主任名
多值依赖:给定一个属性值,另一个属性有多个值与其对应;属性间的数据依赖是由数据库的基本语义决定的;
如图:
范式:
第一范式:要求数据表中的任意两个属性都不能表达同质事物;
例如:不符合第一范式的表:如图:
符合第一范式:如图:
第一范式的违反特例:缺少唯一识别码;单一属性存放多个有意义的值;多个属性来表达同一个事实;
第二范式:第一范式的基础上建立;关系模式中的每一个非主流属性完全函数依赖候选码;
例如:不符合第二范式的表:如图
符合第二范式的:如图:
第三范式:第二范式的基础上建立;一个关系模式中所有非主属性完全依赖与候选码并且不传递依赖于候选码;
例如:不符合第三范式:如图:
符合第三范式:如图:
BC范式:每一个决定属性集都包含候选码;关系模式中所有属性都完全依赖于候选码;
范式小节:
各个范式之间存在的关系:
1NF<-2NF<-3NF<-BCNF<-4NF<-5NF
关系模式规范化的基本操作:如图:
反规范化:
必须考虑道德问题:性能问题;计算机负担问题;历史数据问题;
好处:降低连接操作的需求;提高数据系统的性能