数据库笔记【第六章】

第6章 关系数据库理论

1 .理解并给出下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All 一key )、1 NF 、ZNF 、3NF 、BcNF 、多值依赖、4NF 。

定义1:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XàY。(即只要X上的属性值相等,Y上的值一定相等。)

术语和记号:

XàY,但Y不是X的子集,则称XàY是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。

XàY,但Y是X的子集,则称XàY是平凡的函数依赖。

若XàY,则X叫做决定因素(Determinant)。

若XàY,YàX,则记作XßàY。

若Y不函数依赖于X,则记作X à Y。

定义2:在R(U)中,如果 XàY,并且对于X的任何一个真子集X’,都有X’ à Y,则称Y对X完全函数依赖

       若XàY,但Y不完全函数依赖于X,则称Y对X部分函数依赖

定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。

定义4:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF 。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。

定义5:关系模式R<U,F> 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得XàY,Y à X,Y à Z成立,则称R<U,F>∈3NF。

定义6:关系模式R<U,F>∈1NF 。若XàY且Y不是X的子集时,X必含有码,则R<U,F>∈BCNF。

定义7:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖XààY(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R<U,F>∈4NF

2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。

学生:学号、姓名、出生年月、系名、班号、宿舍区。

班级:班号、专业名、系名、人数、入校年份。

系:系名、系号、系办公地点、人数。

学会:学会名、成立年份、办公地点、人数。

    语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。

请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?

解:(1)关系模式如下:

  学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)

  班级:C(Class,Pname,Dept,Cnum,Cyear)

  系:D(Dept,Dno,Office,Dnum)

  学会:M(Mname,Myear,Maddr,Mnum)

  (2)每个关系模式的最小函数依赖集如下:

  A、学生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下:SnoàSname,SnoàSbirth,SnoàClass,ClassàDept,DEPTàRno

    传递依赖如下:

由于SnoàDept,而DeptàSno ,DeptàRno(宿舍区)

所以Sno与Rno之间存在着传递函数依赖。

    由于ClassàDept,Dept à Class,DeptàRno

         所以Class与Rno之间存在着传递函数依赖。

    由于SnoàClass,ClassàSno,ClassàDept

         所以Sno与Dept之间存在着传递函数依赖。

  B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:

    ClassàPname,ClassàCnum,ClassàCyear,PnameàDept.

    由于ClassàPname,PnameàClass,PnameàDept

        所以C1ass与Dept之间存在着传递函数依赖。

 C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:

    DeptàDno,DnoàDept,DnoàOffice,DnoàDnum

    根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。

 D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:

    MnameàMyear,MnameàMaddr,MnameàMnum

     该模式不存在传递依赖。

  (3)各关系模式的候选码、外部码,全码如下:

  A、学生S候选码:Sno;外部码:Dept、Class;无全码

  B、班级C候选码:Class;外部码:Dept;无全码

  C、系D候选码:Dept或Dno;无外部码;无全码

  D、学会M候选码:Mname;无外部码;无全码

7.下面的结论哪些是正确的? 哪些是错误的? 对于错误的请给一个反例说明之。

(1)任何一个二目关系是属于3NF。

答:正确。因为关系模式中只有两个属性,所以无传递。

(2)任何一个二目关系是属于BCNF.

答:正确。按BCNF的定义,若XàY,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。详细证明如下:(任何二元关系模式必定是BCNF)。

证明:设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系:

A、A1àA2,但A2àA1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。

B、A1àA2,A2àA1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。

包含码。R是BCNF。C、R的码为(A1,A2)(即A1 àA2,A2 àA1),决定因素都含有码
 

猜你喜欢

转载自blog.csdn.net/sodacoco/article/details/83448040