关系数据理论--规范化

1.函数依赖(X函数肯定Y或  “Y函数依赖于X,记做X→Y  )

v函数依赖数据库

v平凡函数依赖与非平凡函数依赖函数

  •  

             在关系SC(Sno, Cno, Grade)中,spa

    非平凡函数依赖: (Sno, Cno) → Gradeblog

    平凡函数依赖:     (Sno, Cno) → Sno class

                                           (Sno, Cno) → Cno

v彻底函数依赖与部分函数依赖date

v传递函数依赖im

R(U)中,若是X→Y(Y 属于X) ,Y→X Y→Z, 则称ZX传递函数依赖d3

    记为:X → Z数据

2.码

KR<U,F>中的属性或属性组合。若  U,  则K称为R侯选码Candidate Key规范化

3.范式

  第一范式(1NF)

一个关系模式R的全部属性都是不可分的基本数据项

第一范式是对关系模式的最起码的要求。不知足第一范式的数据库模式不能称为关系数据库

  第二范式(2NF)

若R∈1NF,且每个非主属性彻底函数依赖于码,则R∈2NF。

  第三范式(3NF)

R∈3NF,则每个非主属性既不部分依赖于码也不传递依赖于码。

  BC范式(BCNF)(重点看例3)

RBCNF

全部非主属性对每个码都是彻底函数依赖

全部的主属性对每个不包含它的码,也是彻底函数依赖

没有任何属性彻底函数依赖于非码的任何一组属性 

每个决定属性因素都包含码

 例题:

例1:关系模式SSnoSnameSdeptSage

          假定S有两个码SnoSname

          S∈3NF

          S ∈ BCNF

例2:关系模式SJPSJP

n       函数依赖:(SJ)→P(JP)→S

n     SJ)与(JP)均可以做为候选码,属性相交

n       SJP∈3NF

n       SJP∈BCNF

例3:在关系模式STJSTC)中,S表示学生,T表示教师,C表示课程。

         函数依赖:

          (SC)→T(ST)→CT→C

         (SC)(ST)都是候选码

v       STJ∈3NF 

         没有任何非主属性对码传递依赖或部分依赖 

v       STJ不属于BCNF

         T是决定因素,T不包含码

  第四范式(4NF)

  第五范式(5NF)

4.多值依赖

例:学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每一个教员能够讲授多门课程,每种参考书能够供多门课程使用。

解:

非规范化关系:

TeachingBCNF

Teaching具备惟一候选码(CTB), 即全码

多值依赖的性质 

1)多值依赖具备对称性(若X→→Y,则X→→Z,其中ZUXY)

2)多值依赖具备传递性(若X→→YY→→Z, 则X→→Z –Y)

3)函数依赖是多值依赖的特殊状况(若X→Y,则X→→Y

4)若X→→YX→→Z,则X→→YÈ Z

5)若X→→YX→→Z,则X→→Y∩Z

6)若X→→YX→→Z,则X→→Y-ZX→→Z -Y

5.结论

模式规范化的基本思想:


综合的例子:

学生选课(学号,姓名,课程号,成绩)

属性不可分,是1NF;存在非主属性对键码的 部分依赖(学号,课程号→姓名),不是2NF

学生(学号,姓名,系别,系主任)

键码为单属性,不存在部分依赖,2NF

存在非主属性对键码的传递依赖(学号→系别;系别→系主任;学号→系主任),不是3NF

 学生(学号,姓名,年龄)

非主属性(姓名,年龄)对键码不存在部分依赖和传递依赖,是3NF

主属性(学号)对键码也不存在部分依赖和传递依赖,是BCNF。