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

模式1:学生(U, F)

    U={学号,姓名,出生年月,系名,班号,宿舍区}

    F={学号->姓名,学号->出生年月,学号->系名,学号->班号,学号->宿舍区,系名->宿舍区}。

    传递函数依赖:学号--传递-->宿舍区

   候选码:学号;

    外码:系名。

模式2:班级(U, F)

    U={班号,专业名,系名,班人数,入校年份}

     F={(专业名, 入校年份)->班号,(专业名,入校年份)->班人数,班号->入校年份,专业名->系名, (班号,专业名)->系名, (班号,专业名)->班人数} ,

部分函数依赖:(班号,专业名)  --p->系名

     候选码:(专业名, 入校年份), (班号,专业名)

    外码:系名

模式3:系(U, F)

      U={系名,系号,系地点,系人数}

      F={系名->系号, 系名->系地点, 系名->系人数, 系号->系名, 系号->系地点, 系号->系人数,系地点->系名,系地点->系号,系地点->系人数 }

     候选码:系名,系号,系地点。

模式4:学会(U, F)

    U={学会名,成立年份,会地点,会人数}

    F={学会名->成立年份,学会名->会地点,学会名->会人数}

     候选码:学会名。

模式5:入会(U, F)

     U={学号,学会名,入会年份}

     F={(学号,学会名)->入会年份} ,(学号,学会名)->入会年份}

       候选码:(学号,学会名)

        外码:学号,学会名。

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

    (1)合并规则:XY, X ZX YZ

    (2)伪传递规则:X Y , WY Z XW Z

    (3)分解规则:X Y及ZY  X Z

证明: (1) 由XYXYX (A2),  XZYXYZ (A2 )XYZ (A3 )

  (2) 由XYWXWY (A2), WYZYXYZ  (A2)XWZ (A3)

  (3) 由XY,   ZY YZ  (A1)      XZ  (A3 )

6.有关系模式R(A,B,C,D,E), 回答下面各个问题:

(1)若A是R的候选码,具有函数依赖BC→DE,那么在什么条件下R是BCNF?

答:当BC→A或BC是候选码时,R∈BCNF.

(2) 如果存在函数依赖A→B,BC→D, DE→A,列出R的所有码。

  R的候选码为:CEA, CEB, CED

  因CE不在F中右边出现,所以候选码必包含CE。

而(CE)+=CE≠U, 所以CE非码。

因 (CEA)+=CEABD=U, 且(C)+=C,(E)+=E, (A)+=AB, (CA)+=CABD, (EA)+=EAB,

所以CEA是码;

因 (CEB)+=CEBDA=U, 且(C)+=C,(E)+=E, (B)+=B, (CB)+=CBD, (EB)+=EB,

 所以CEB是码;

因 (CED)+=CEDAB=U, 且(C)+=C,(E)+=E, (D)+=D, (CD)+=CD, (ED)+=EDAB,

 所以CED是码;

总结:不在F中右边出现的属性必包含在所有候选码中;在F中两边均出现的属性一定包含在某个候选码中。

(3) 如果存在函数依赖A®B,BC®D, DE®A,R属于3NF还是BCNF。

答:由(2)知R无非主属性,且函数依赖的左边不含码,所以R属于3NF。

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

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

(2) 任何一个二目关系是属于BCNF的。          √

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

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

结论:ABR=R1⋈ R2  √

  证明: 令U1={A,B},U2={A,C},则A=U1U2, B=U1-U2,

所以U1U2®U1-U2,由定理6.5(P197Þ R=R1 R2

结论:R=R1⋈ R2A®B  ×

   反例:依据定理6.5 设计关系R中A B, A→C,

R:

A

B

C

a1

b1

c1

a1

b2

c1

a2

b2

c2

a3

b3

c3

R1:

A

B

a1

b1

a1

b2

a2

b2

a3

b3

R2:

A

C

a1

c1

a2

c2

a3

c3

显然 R=R1 R2,然而A B。

(5) 若R.A→R.B,R.B→R.C,则R.A→R.C。    

(6) 若R.A→R.B,R.A→R.C,则R.A→R.(B,C)。

(7) 若R.B→R.A,R.C→R.A,则R.(B,C)→R.A。  

(8) 若R.(B,C)→R.A,则R.B→R.A,R.C→R.A。  ×

8.证明:

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

(因为R属于BCNF, 由定义排除了任何属性对码的传递依赖和部分依赖。)

证明:

关系模式R为BCNF,则R一定为3NF,也一定为2NF;反之则不然。

证明思路:假设R为BCNF,而R不为3NF,则按3NF定义,一定存在R的码x,非主属性y,属性z,有x→z, z→y ,非z→x, y不包含在z中。

对于函数依赖z→y,因为y不包含在z中,而R为BCNF,按BCNF定义,则z一定包含R的码,这样一定有z→x,矛盾。

所以,假设R为BCNF,而R一定为3NF。

对于设R为BCNF,而R一定为2NF的证明,与上述证明类似。(要用到2NF定义中的部分依赖, )

如R不为2NF,则一定存在R的码x,非主属性y,  x的真子集z, 有z→y。

对于z→y 一定有y不包含在z中,因为y为非主属性,而z包含在码x中。

根据R为BCNF, z一定包含为R的码,这样一定有z→x,与x为码,z真包含在x中矛盾。

反之:举例s(sno,sn,sage,dno,dn)为2NF,而非BCNF;STJ(s,t,j)s:学生,t:教师,j:教室,{t→j, (s, j)→t },码为(s, t), (s, j), 全为主属性,是3NF, 但不是BCNF。

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

证明: 假设R中非主属性A部分依赖于关键字K则存在K'是K的真子集, 使得

K'→A。因K'是K的真子集,故K→K', 但K'K。 于是有K→K', K'K, K'→A并A不属于K, 从而A传递依赖于K, 即R不属于3NF, 与已知矛盾。

数据库概论(第五版)第六章课后习题答案(现更)相关推荐

  1. 线性代数第五版吉尔伯特课后答_线性代数同济第五版第六章课后习题答案!

    搜集 | 整理 |  测试 | @小愉 免责声明:以下资源或软件均来自互联网,仅供学习和交流使用,如有侵权请联系删除,请勿用于商业和非法途径等,如有法律纠纷与本人无关! 本文未经允许,不得转载! 适用 ...

  2. 数据库系统概论(第五版) 王珊 第二章课后习题答案

    1 .试述关系模型的三个组成部分. 答:关系模型由关系数据结构.关系操作集合和关系完整性约束三部分组成. 2 .试述关系数据语言的特点和分类. 答:关系数据语言可以分为三类: 关系代数语言. 关系演算 ...

  3. 计算机网络原理(谢希仁第八版)第六章课后习题答案

    第六章 1.互联网的域名结构是怎样的?它与目前的电话网的号码结构有何异同之处? 答:(1)域名的结构由标号序列组成,各标号之间用点隔开:- 三级域名. 二级域名. 顶级域名,各标号分别代表不同级别的域 ...

  4. 线性代数第五版吉尔伯特课后答_线性代数同济第五版第四章课后习题答案!

    搜集 | 整理 |  测试 | @小愉 免责声明:以下资源或软件均来自互联网,仅供学习和交流使用,如有侵权请联系删除,请勿用于商业和非法途径等,如有法律纠纷与本人无关! 本文未经允许,不得转载! 适用 ...

  5. java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案

    <Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...

  6. 《Python语言程序设计》王恺 机械工业出版社 第六章课后习题答案

    第六章 字符串 6.5 课后习题 (1)Python 中,创建字符串时,可以使用单引号.双引号和三引号 (2)Python 中,使用字符串的 split 方法可以按照指定的分隔符对字符串进行切割,返回 ...

  7. 数据库系统概论(第五版) 王珊 第六章课后习题答案

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

  8. C程序设计(谭浩强版)第六章课后习题

    1.用筛选法求100之内的素数 筛选法:古希腊人将1-N个的数字写在一个板子上,然后逐一判断该数符不符合要求,不符合要求得数字就会划掉,知道将数字全部比对结束,比对完后因为板子上划掉得标记太多禄,像筛 ...

  9. 【最详细】数据结构(C语言版 第2版)第六章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 1.选择题 ( 1)在一个图中,所有顶点的度数之和等于图的边数的()倍. A. 1/2 B. 1 C. 2 D. 4 答案: C ( 2)在一个有向图中,所有顶点的 ...

最新文章

  1. Xamarin.Forms XAML的辅助功能Code Snippet
  2. 次小生成树(Prim + Kruaskal)
  3. vue/cli 3.0 font-size随屏幕大小变化而变化 rem设置
  4. 学习_HTML5_day2
  5. Hibernate常见面试题
  6. markdown知识轻轻来袭
  7. opc读取ab的plc数据_使用OPC的模式去连接PLC进行AB SLC-5_04数据的采集
  8. IPv6 HSRP协议
  9. MFC把 ListCtrl的数据导出到excel表格
  10. zbb20180815 网盘搜索引擎
  11. 未找到uniwebview_unity内嵌浏览器——UniWebView插件
  12. 如何下载石家庄市卫星地图高清版大图
  13. MySql数据库增删改查常用语句命令-MySQL数据库入门到精通
  14. 三种中介效应检验方法及操作步骤
  15. C语言,输入三个数求其平均值!
  16. android 清理系统垃圾,安卓手机清理系统垃圾方法汇总
  17. ERD(实体关系图)概念了解
  18. linux基础及应用教程第二版课后答案,Linux基础及应用复习题(附加参考答案)
  19. 初识C语言:了解基础指针
  20. AutoLayout Label 自适应宽高

热门文章

  1. 【世界海洋日】TcaplusDB号召你一同保护海洋生物多样性
  2. ecshop商品详细描述页,批量上传图片功能实现
  3. java线程池最大线程数_Java并发(八)计算线程池最佳线程数
  4. 关于非编系统的组成,作用和发展!
  5. 如何优雅的退出一直循环的python脚本及mysql binlog dump线程问题
  6. ORA-00942: 表或视图不存在
  7. 产品投入英国市场的UKCA认证标志使用方式
  8. Vue使用element-ui 幻灯片,图片无法显示的解决方法
  9. 【搜索与回溯算法】泡泡龙
  10. 朗沃第三周开始!!!