第六章

1 .理解并给出下列术语的定义:

函数依赖,部分函数依赖,完全函数依赖,传递依赖,候选码,超码,主码,外码,全码,1 NF ,2NF ,3NF ,BNF ,多值依赖,4NF 。

函数依赖: 设 R(U) 是一个关系模式, 是尺属性集合 , X 和了 0 是 U 的子集。对于 R(U)的任意一个可能的关系 r ,如果 r 中不存在两个元组,它们在 X 上的属性值相同 ,而在 Y 上的属性值不同 ,则称 X 函数确定 Y 或 Y 函数依赖于 X ,记作 X ->Y。

完全函数依赖、部分函数依赖: 在 R(U) 中,如果X->Y , 并且对于X的任何一个真子集 X',都有X -\->Y , 则称了对X完全函数依赖 ,记作 :

X -> Y

若 X->Y,但了不完全函数依赖于X,则称Y对X部分函数依赖,记作:

X -> Y

传递依赖:在 R(U) 中,如果X -> Y, Y⊊X ,Y-\-> X,Y->Z,Z⊊Y 则称Z 对传递函数依赖。

候选码、主码: 设为 R<U,P>中的属性或属性组合,若U完全依赖于K, 则K为U候选码。若 候选码多于一个,则选定其中的一个为主码。

外码 :关系模式 R 属性或属性组 X 并非 R 的码,但是另一个关系模式的码,则称X是R的外部码 ,也称外码。

全码: 整个属性组是码 ,称为全码(all-key) 。

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

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

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

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

多值依赖:设 R(U)是属性集 U上的一个关系模式,X, Y, Z是U的子集,并且 Z=U-X- Y。关系模式 RU)中多值依赖 X->->Y了成立,当且仅当对 R(U)的任一关系 r ,给定的一对 (x,z)值,有一组Y的值,这组值仅仅决定于x 值而与 z 值无关。

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

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

描述学生的属性有:学号、姓名、 出生年月、系名、班号、宿舍区 。

描述班级的属性有:班号、专业名、系名、人数、入校年份。

描述系的属性有:系名、系号、.系办公室地点、人数。

描述学会的属性有:学会名 、成立年份、地点、人数。

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

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

关系模式如下:

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

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

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

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

3.试由 Armostrong 公理系统推导出下面三条推理规则 :

1.合并规则:若 X->Z , X->Y, 则有X->YZ

2. 伪传递规则: X->Y, WY->Z ,有XW->Z

3.分解规则:X->Y, Z ⊆Y ,有X->Z

4.给定关系模式R(U,F), 其中U={A,B,C,D,E},请回答如下问题:

如果存在函数依赖B->D, DE->C,EC->B,列出R中所有的码, 并给出主属性、非主属性

5.试举出三个多值依赖的实例。

6.考虑关系模式R(U,F), 其中U={A,B,C,D,E},请回答如下问题:

若A是R的候选码, R具有函数依赖BC->DE, 那么在什么条件下R属于BCNF

BC包含码

如果存在函数依赖 F={A->B,BC->D,DE->A}, 列出R的所有码

ACE,DEC,BCE

如果存在函数依赖 F={A->B,BC->D,DE->A}, R属于3NF还是BCNF

因为A,B,C,D,E都是主属性, 所以R是3NF

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

  1. 任何一个三目关系都是属于3NF 的。 (✓)

  2. 任何一个三目关系都是属于BCNF 的。 (✓)

  3. 任何二个三目关系都是属于 4NF 的。 (✓)

  4. 当且仅当函数依赖A->B 在R上成立,关系R(A,B,C)等于其投影 RI(A,B) 和R2(A, C)的连接。 (x)

  5. 若R.A->R.B , R.B->R.C, 则R.A->R.C (✓)

  6. 若R.A->R.B , R.B->R.C, 则R.A->R.(B,C) (✓)

  7. 若R.A->R.B , R.B->R.C, 则R.(B,)->R.A (✓)

  8. 若R.(B,)->R.A , 则R.A->R.B , R.B->R.C (x )

4.当 A->B在R上成立 ,大系R(A,B,C)等于其投影 RI(,B)和R2(A,C)的连接,反之则不然。

8.关系模式SC(SNO,CNO.G) (SNO,CNO)->G, 但是SNO-\->G,CNO-\->G

8.证明:

如果 是BCNF 关系模式,则是3NF 关系模式,反之则不然。

如果R是3NF 关系模式,则R一定是2NF关系模式。

9.为什么直接根据定义6.18去鉴别一个分解的无损连接性是不可能的

1.无损连接性的判断需要考虑所有可能的连接操作。 定义6.18中使用的是自然连接(⨝)作为例子,但在实际数据库中,可能还有其他类型的连接操作,如外连接等。要完全确认无损连接性,需要考虑所有可能的连接操作,而这是一个复杂而耗时的任务。计算所有连接的结果可能是不可行的。在大型数据库中,进行所有可能的连接操作并验证是否能还原原始关系可能是不切实际的。这涉及到指数级的计算,可能需要大量的计算资源和时间。

2.定义6.18只是一个例子,不是穷尽所有情况的定义。定义6.18中使用的是自然连接,但在实际应用中,可能会使用其他连接操作,而这些操作可能会导致不同的结果。因此,根据一个特定连接操作的结果来判断无损连接性可能是片面的。

综上为了更全面地判断分解是否具有无损连接性,常常使用一些辅助的理论和算法,如巴克斯-科达范范式(BCNF)和第三范式(3NF)等。这些范式提供了一些规范,帮助设计者规遍一些常见情况。然而,对于一般情况,无损连接性的判断依然可能是一个困难的问题。

最后更新于