数据库系统概论课后习题答案(第6版)第六章

hgb

第六章

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
  • 已知X -> Z,由增广率知XY->YZ,又因为X->Y,可得XX->XY->YZ,最后根据传递率的X->YZ
  • 已知X -> Y,由增广率知XW->WY,又因为WY->Z,可得XW->WY->Z,最后根据传递率的XW->Z
  • 已知Z⊆Y,由自反率知Y->Z,又因为X->Y,根据传递率的X->Z

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

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

由函数依赖得属性 B,C,D 都可以通过某些依赖关系确定。
如果我们有属性 E,那么通过函数依赖 EC→B 可以得到 B,然后通过 B→D 可以得到 D,再通过 DE→C 可以得到 C。所以,属性集
{E} 加上任何一个能确定 C 的属性即可确定所有其他属性。所以,候选码为:{A,E}

  • 候选码:{A,E}
  • 主属性:A,E
  • 非主属性:B,C,D

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

  1. 关系模式MSC( M ,s,C)中,M表示专业,S表示学生,C表示该专业的必修课。假设每个专业有多个学生,有一组必修课。设同专业内所有学生选修的必修课相同,实例关系如下。按照语义对于M的每一个值M,S有一个完整的集合与之对应而不问C取何值,所以M→S。由于C与S的完全对称性,必然有M→C成立。
  2. 关系模式ISA(1,S,A)中,l表示学生兴趣小组,S表示学生,A表示某兴趣小组的活动项目。假设每个兴趣小组有多个学生,有若干活动项目。每个学生必须参加所在兴趣小组的所有活动项目,每个活动项目要求该兴趣小组的所有学生参加。按照语义有I->S,I->A
  3. ③关系模式RDP(R,D ,P)中,R表示医院的病房,D表示责任医务人员,Р表示病人。假设每个病房住有多个病人,有多个责任医务人员负责医治和护理该病房的所有病人。按照语义有R→D,R→P成立。

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.证明:

  1. 如果 是BCNF 关系模式,则是3NF 关系模式,反之则不然。
  2. 如果R是3NF 关系模式,则R一定是2NF关系模式。

证:
1.

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

1.无损连接性的判断需要考虑所有可能的连接操作。 定义6.18中使用的是自然连接(⨝)作为例子,但在实际数据库中,可能还有其他类型的连接操作,如外连接等。要完全确认无损连接性,需要考虑所有可能的连接操作,而这是一个复杂而耗时的任务。计算所有连接的结果可能是不可行的。在大型数据库中,进行所有可能的连接操作并验证是否能还原原始关系可能是不切实际的。这涉及到指数级的计算,可能需要大量的计算资源和时间。
2.定义6.18只是一个例子,不是穷尽所有情况的定义。定义6.18中使用的是自然连接,但在实际应用中,可能会使用其他连接操作,而这些操作可能会导致不同的结果。因此,根据一个特定连接操作的结果来判断无损连接性可能是片面的。
综上为了更全面地判断分解是否具有无损连接性,常常使用一些辅助的理论和算法,如巴克斯-科达范范式(BCNF)和第三范式(3NF)等。这些范式提供了一些规范,帮助设计者规遍一些常见情况。然而,对于一般情况,无损连接性的判断依然可能是一个困难的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值