关系数据理论--规范化

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

v函数依赖

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

关系数据理论--规范化_第1张图片

  •  

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

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

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

                                           (Sno, Cno) → Cno

v完全函数依赖与部分函数依赖

关系数据理论--规范化_第2张图片

v传递函数依赖

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

    记为:X → Z

2.码

KR中的属性或属性组合。若  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)都是候选码

关系数据理论--规范化_第3张图片

v       STJ∈3NF 

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

v       STJ不属于BCNF

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

  第四范式(4NF)

  第五范式(5NF)

4.多值依赖

关系数据理论--规范化_第4张图片

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

解:

非规范化关系:

关系数据理论--规范化_第5张图片

关系数据理论--规范化_第6张图片

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.结论

关系数据理论--规范化_第7张图片

模式规范化的基本思想:

关系数据理论--规范化_第8张图片


综合的例子:

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

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

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

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

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

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

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

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

你可能感兴趣的:(数据库(Oracle))