内容发布更新时间 : 2024/12/23 2:06:46星期一 下面是文章的全部内容请认真阅读。
个人收集整理 勿做商业用途
第6章关系数据理论
1. 理解下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、码、主码、外码、全码、1NF、2NF、3NF、BCNF、4NF。版权文档,请勿用做商业用途 解:
函数依赖:设R(U)是属性集U上的关系模式。X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。版权文档,请勿用做商业用途 部分函数依赖:如果X→Y,但Y不完全函数依赖于X,则称Y对X 部分函数依赖(Partial Functional Dependency),记作:X Y。版权文档,请勿用做商业用途 完全函数依赖:如果X→Y,但对于X中的任意一个真子集 ,都有Y不依赖于 ,即 ,则称Y对X完全函数依赖(Full Functional Dependency),记作:X Y。版权文档,请勿用做商业用途
传递依赖:如果X→Y,Y→Z,且Y X, ,则称Z对X传递函数依赖(Transitive Functional Dependency)。记作:X Z。版权文档,请勿用做商业用途 候选码:若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码 (Candidate key)。版权文档,请勿用做商业用途 主码:若一个关系有多个候选码,则选定其中一个为主码(Primarykey) 。
外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外部码(Foreign key),简称外码。版权文档,请勿用做商业用途 全码:最复杂的情况,整个属性组是码,称为全码(All-key)。
1NF:若一个关系模式R中每一个属性值都是一个不可再分的最小数据单元,则称关系模式满足第一范式,记作R 1NF。版权文档,请勿用做商业用途 2NF:若R 1NF,且每一个非主属性完全函数依赖于R的码,则R 2NF。
3NF:关系模式R中若不存在这样的候选码X,属性组Y及非主属性Z(Z Y)使得X Y,Y Z成立,则称R 3NF。版权文档,请勿用做商业用途 BCNF:关系模式R 1NF。若对于R中的每一个函数依赖X Y且Y X,X必含有码,则R BCNF。版权文档,请勿用做商业用途 4NF:关系模式R?1NF,如果对于R的每个非平凡多值依赖X??Y(Y?X),X都含有码,则称R?4NF。版权文档,请勿用做商业用途 2. 下面的结论哪些是正确的?哪些是错误的?对于错误的请给出一个反例说明。 (1) 任何一个二目关系是属于3NF的。 (2) 任何一个二目关系是属于BCNF的。 (3) 任何一个二目关系是属于4NF的。
(4) 当且仅当函数依赖A B在R上成立,关系R(A,B,C)等于投影R1(A,B)和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)。
1 / 4
个人收集整理 勿做商业用途
(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。 解:
(1) 正确,因为关系模式中只有两个属性,所以无传递。
(2) 正确,按BCNF的定义,若X?Y,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。详细证明如下:版权文档,请勿用做商业用途 证明:设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系: A、A1 A2,但A2 A1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。 B、A1 A2,A2 A1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。 (3) 正确,因为只有两个属性,所以无非平凡的多值依赖。 (4) 正确。 (5) 正确。 (6) 正确。 (7) 正确。 (8) 错误。
3. 汽车保险公司管理客户和保险车辆信息。每位客户拥有一辆或多辆汽车。每辆汽车可能发生0次或多次交通事故。客户需要登记的信息包括驾照号、姓名、住址、电话、等信息。车辆需要登记车辆编号、车型、出厂年份、驾照号等信息。事故需要登记事故编号、事故发生日期、发生地点、车辆编号、赔偿金等信息。根据上述描述,列举可能的函数依赖(不必列举平凡函数依赖)。版权文档,请勿用做商业用途 解:
关系模式:
客户(驾照号,姓名,住址,电话) 车辆(车辆编号,车型,出厂年份)
事故(事故编号,事故发生日期,发生地点,赔偿金) 存在的函数依赖:
客户(驾照号→姓名,驾照号→住址,驾照号→电话)
车辆(车辆编号→车型,车辆编号→出厂年份、车辆编号→驾照号)
事故(事故编号→事故发生日期,事故编号→发生地点,事故编号→赔偿金、事故编号→车辆编号)
4. 设关系模式R(A,B,C,D,E,F),函数依赖集F={A C,C A,B AC,D AC,BD A}。
版权文档,请勿用做商业用途 (1) 求出R的候选码。
(2) 求出F的最小函数依赖集。 解:
(1) B、D。
(2) ① 将F中每个函数依赖的右部均变成单属性。则, F={A C,C A,B A,B C,D A,D C,BD A}; ② 去掉F中各函数依赖左部多余的属性。
在BD A中,由于存在B A和D A因此,BD A为多余的函数依赖,可去掉。 ③ 去掉F中冗余的函数依赖。
由于B A可由B?C和C A推出,因此,可去掉B A。 D A可由D C和C A推出,因此,可去掉D A。 因此,Fm={A C,C A,B C,D C }。
2 / 4
个人收集整理 勿做商业用途
5. 设X 在关系模式R中成立。如果存在Z X使得Z Y成立,则称函数依赖X 称为部分函数依赖,并称Y部分函数依赖于X;否则称X 为完全函数依赖,并称Y完全依赖于X。使用完全函数依赖概念给出2NF的等价定义。版权文档,请勿用做商业用途 解:
若R 1NF,且R的所有函数依赖都满足完全函数依赖,则R 2NF。 6. 证明:
(1) 如果R的所有属性都是主属性,则R是3NF。 (2) 如果R的码包含R的所有属性(全码),则R是BCNF。 解:
(1) 证明:关系模式R中若不存在这样的候选码X,属性组Y及非主属性Z(Z Y)使得X Y,Y Z成立,则称R 3NF。因为如果R的所有属性都是主属性,即没有非主属性,则不存在非主属性对码的部分和传递函数依赖。因此如果R的所有属性都是主属性,则R是3NF。版权文档,请勿用做商业用途 (2) 证明: BCNF要求关系范式满足1NF,且每一个函数依赖的决定因子都包含码。而全码的关系满足1NF,且只有一个决定因子,即关系模式包含的所有属性。因此如果R的码包含R的所有属性(全码),则R是BCNF。版权文档,请勿用做商业用途 7. 在关系模式设计中,有没有理由设计一个属于2NF,但不属于更高范式的关系模式?解释你的答案。
解:
没有理由。因为2NF是表示所有属性都必须依赖于码,保证在表内所有的属性都是非冗余或者说都是相关的,必不可少的。3NF是在2NF的基础上的增强,既然2NF是属性依赖于码,那么就可能存在一种依赖情况:A依赖B,B依赖C ,这样既可推出A依赖C这样就表示A既依赖于B也依赖于C,那么你可以选择B也可以选择C做主码,那么违反了主码要唯一的基本原则,这样是不合适的。所以说3NF是在2NF的增强,确定了主码必须唯一,消除了2NF的传递依赖性。因此,3NF是一个可用关系模式应满足的最低范式,也
就是说,如果一个关系不服从3NF,这个关系其实是不可用的。版权文档,请勿用做商业用途
8. 设关系R和函数依赖F:R(W,X,Y,Z)F={X Z,WX Y},试求: (1) 关系R属于第几范式?
(2) 如果关系R不属于BCNF,请将关系R逐步分解为BCNF。 解:
(1) R是1NF。侯选码为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对侯选码的部分函数依赖。版权文档,请勿用做商业用途 (2) 将关系分解为: R1(W,X,Y),F1 = { WX→Y } R2(X,Z),F2 = { X→Z }
消除了非主属性对码的部分函数依赖。F1和F2中的函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNF。版权文档,请勿用做商业用途 9. 设有关系模式R(EGHIJ),R的函数依赖集F={E I,J I,I G,GH I,IH },求:版权文档,请勿用做商业用途
(1) R的候选关键字
(2) 判断s={EG,EJ,JH,IGH,EH}是否为无损连接分解? (3) 将R分解为3NF,并具有无损连接性和保持函数依赖性。 解:
(1) 由函数依赖集F可知,该关系模式的候选码为JH。
3 / 4