数据库概论(第五版)第六章课后习题答案(现更) |
您所在的位置:网站首页 › 数据库系统原理第五版pdf › 数据库概论(第五版)第六章课后习题答案(现更) |
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)合并规则:X → Y, X → Z ⇒ X → YZ (2)伪传递规则:X → Y , WY → Z ⇒ XW → Z (3)分解规则:X → Y及Z ⊆ Y ⇒ X → Z 证明: (1) 由X→Y⇒X→YX (A2), X→Z⇒YX→YZ (A2 )⇒X→YZ (A3 ) (2) 由X→Y⇒WX→WY (A2), WY→Z⇒YX→YZ (A2) ⇒XW→Z (A3) (3) 由X→Y, Z ⊆Y ⇒ Y→Z (A1) ⇒ X→Z (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)的连接。 × 结论:A→B ⇒ R=R1⋈ R2 √ 证明: 令U1={A,B},U2={A,C},则A=U1⋂U2, B=U1-U2, 所以U1⋂U2®U1-U2,由定理6.5(P197)Þ R=R1⋈ R2 结论:R=R1⋈ R2 ⇒A®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, 与已知矛盾。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |