资源描述
范式练习题
数据库系统概论
第六章
1、 关系规范化中的删除操作异常是指① ______ ,插入操作异常是指② ______
– A.不该删除的数据被删除
– B.不该插入的数据被插入
– C.应该删除的数据未被删除
– D. 应该插入的数据未被插入
答:删除操作异常是指执行删除操作时将不应该删除的数据删除的情形;插入异常是指执行插入操作时应该插入的数据无法插入的情形。本题答案为:①A ②D。
----------------------------------------------------------------------------------------------------------------------
2、设计性能较优的关系模式称为规范化,规范化主要的理论依据是______
– A.关系规范化理论
– B.关系运算理论
– C系代数理论
– D.数理逻辑
答:关系规范化理论是关系数据库中进行关系模式设计的理论依据。本题答案为A。
2、 根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。下面“部门”关系中,因哪个属性而使它不满足第一范式?
部门(部门号,部门名,部门成员,部门总经理)
– A.部门总经理
– B.部门成员
– C.部门名
– D.部门号
答:部门关系中的“部门成员”不是唯一的,不满足1NF。本题答案为B。
---------------------------------------------------------------------------------------------------------------------
3、 消除了部分函数依赖的1NF的关系模式必定是_______
A. 1NF B. 2NF C. 3NF D. 4NF
答:由2NF的定义可知本题答案为B。
-----------------------------------------------------------------------------------------------------------------
4、若关系R的候选码都是由单属性构成的,则R的最高范式必定是______
– A. 1NF
– B. 2NF
– C. 3NF
– D. 无法确定
答:候选码由单属性构成,一定不会存在非主属性对候选码的部分函数依赖。本题答案为B。
---------------------------------------------------------------------------------------------------------------------
5、 在关系模式R(A,B,C,D)中,有函数依赖集F={B→C,C→D,D→A},则R能达到_______
A. 1NF
B. 2NF
C. 3NF
D. 以上三者都不行
答:该关系模式的候选码是B,因为B→C,C B,C→D,所以存在非主属性D对候选码的传递函数依赖,R不是3NF。又因为不存在非主属性对候选码的部分函数依赖,所以R是2NF。本题答案为B。
--------------------------------------------------------------------------------------------------------------------
6、 设有关系W(工号,姓名,工种,定额),将其规范化到第三范式正确的答案是______
A. W1(工号,姓名) W2(工种,定额)
B. W1(工号,工种,定额) W2(工号,姓名)
C. W1(工号,姓名,工种) W2(工种,定额)
D. 以上都不对
答:该关系的函数依赖集为{工号→姓名,工号→工种,工种→定额},侯选码为“工号”经分析可知:“定额”经“工种”传递函数依赖于“工号”,这个传递依赖应消除。选项A中的两个关系没有公众属性,不正确;选项B中未消除传递依赖。本题答案为C。
----------------------------------------------------------------------------------------------------------------------
7、 有关系模式学生(学号,课程号,名次),若每一名学生每门课程有一定的名次,每门课程每一名次只有一名学生,则以下叙述中错误的是______
A.(学号,课程号)和(课程号,名次)都可以作为候选码
B.只有(学号,课程号)能作为候选码
C.关系模式属于第三范式
D.关系模式属于BCNF
答:(学号,课程号)→(名次),(课程号,名次)→(学号),所以(学号,课程号)和(课程号,名次)都可以作为候选码,选项A正确;该关系所有的属性都是主属性,所以属于第三范式,选项C正确;同时该关系上的两个函数依赖的左部都包含了该关系的候选码,所以也属于BCNF,选项D正确。
本题答案为B。
--------------------------------------------------------------------------------------------------------------------
8、 关系模式STJ(S#,T,J#)中,存在函数依赖:(S#,J#)→T,(S#,T)→J#,T→J#,则_______
A.关系STJ满足1NF,但不满足2NF
B.关系STJ满足2NF,但不满足3NF
C.关系STJ满足3NF,但不满足BCNF
D.关系STJ满足BCNF,但不满足4NF
答:该关系模式的候选码是(S#,J#)和 (S#,T),所有的属性都是主属性,所有该关系模式至少是3NF,又因为T→J#的左部未包含该关系的任一候选码,所以它不是BCNF。本题答案为C。
----------------------------------------------------------------------------------------------------------------------
9、 能够消除多值依赖引起的冗余的是_______
A. 2NF
B. 3NF
C. 4NF
D. BCNF
答:关系模式达到4NF时,可删除由多值依赖引起的冗余。本题答案为C。
-------------------------------------------------------------------------------------------------------------
10、 当B属于函数依赖于A属性时,属性B与A 的联系是____。
A. 1对多 B. 多对1 C. 多对多 D. 以上都不是
11、 在关系模式中,如果属性A和B存在1对1的联系,则说___。
A. A→B B. B→A C. A → B D. 以上都不是
12、 关系模式R中的属性全部是主属性,则R的最高范式必定是____。
A. 2NF B. 3NF C. BCNF D. 以上都不是
答:B C B
举例:学生成绩登记表
学号
姓名
性别
专业
年级
课程成绩
课号
课名
学时
学分
教师
工资号
成绩
S1
S2
张三
李四
男
女
CS
CS
98
99
C1
C2
C3
C4
C5
C1
DB
DS
OS
MA
PH
DB
60
60
80
120
90
60
3
3
4
6
5
3
赵
钱
孙
李
周
赵
M1
M9
M4
M7
M2
M1
90
70
85
90
75
86
解答
• 关系模式R(U,F)
• 函数依赖关系F为:
– 学号→(姓名,性别,专业,年级)
– 课号→(课名,学分,学时,工资号)
– (学号,课号)→成绩
– 师号→教师
• 属性集U为:
– (学号,姓名,性别,专业,年级,课程成绩)Ï1NF
• 消去可划分的属性:课程成绩
– 学生(学号,姓名,性别,专业,年级,课号,课名,学分,学时,教师,工资号,成绩)
– 关键字(学号,课号)
– Î1NF
• 消去部分函数依赖
– 存在的部分依赖:
• (学号,课号) p→ (姓名,性别,专业,年级)
• (学号,课号) p→ (课名,学分,学时,工资号,教师)
– 消去部分依赖
• (学号)→(姓名,性别,专业,年级)
• (课号)→(课名,学分,学时,工资号,教师)
• (学号,课号)→成绩
– 投影成三个子关系模式
• 学生(学号,姓名,性别,专业,年级)
• 课程(课号,课名,学分,学时,工资号,教师)
• 成绩(学号,课号,成绩)
– Î2NF
• 消去传递函数依赖
– 存在的传递依赖
• 课号→工资号
• 工资号→教师
• 课号 t→ 教师
– 消去传递依赖
• (课号)→(课名,学分,学时,工资号)
• (工资号→教师)
– 投影成两个子关系模式
• 课程(课号,课名,学分,学时,工资号)
• 教师(工资号,教师)
– Î3NF
• 最后投影结果
– 学生(学号,姓名,性别,专业,年级)
– 课程(课号,课名,学分,学时,师号)
– 教师(师号,教师)
– 成绩(学号,课号,成绩)
----------------------------------------------------------------------------------------------------------------------
• 1、下表给出一数据集,请判断它是否可直接作为关系数据库中的关系,若不行,则改造成为尽可能好的并能作为关数据库中关系的形式,同时说明进行这种改造的理由。
解:因为关系模式至少是1NF关系,即不包含重复组并且不存在嵌套结构,给出的数据集显然不可直接作为关系数据库中的关系,改造为1NF的关系如下所示。
----------------------------------------------------------------------------------------------------------------------
2、设有一教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D)。这些数据有下列语义:
– 学号和课程号分别与其代表的学生和课程一一对应。
– 一个学生所修的每门课程都有一个成绩。
– 每门课程只有一位任课教师,但每位教师可以有多门课程。
– 教师中没有重名,每个教师只属于一个系。
• 试根据上述语义确定函数依赖集。
• 如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明在进行增、删操作时的异常现象。
• 分解为具有依赖保持和无损连接的3NF。
• 解:
• (1)F={(S#,C#)→G,C#→TN,TN→D}
• (2)关系模式为1NF,因为该关系模式的候选码为(S#,C#),则非主属性有G,TN和D。
• 又∵F中有C#→TN,∴存在非主属性TN对候选码(S#,C#)的部分依赖,即:
• 若新增设一门课程而暂时还没有学生选修时,则因缺少码S#值而不能进行插入操作。若某个教师调离学校要删除有关信息时,会将不该删除的课程(C#)信息删除。
• (3)∵Fm={(S#,C#)→G,C#→TN,TN→D}
• ∴ρ={R1,R2,R3}
• 其中:
– R1=(S#,C#,G)
– R2=(C#,TN)
– R3=(TN,D)
-------------------------------------------------------------------------------------------------------------------
• 3、下表给出的关系R为第几范式?是否存在操作异常?若存在,则将其分解为高一级范式。分解完成的高级范式中是否可以避免分解前关系中存在的操作异常?
•
解:它为1NF。因为该关系的候选码为(工程号,材料号),而非主属性“开工日期”和“完工日期”部分函数依赖于候选码的子集“工程号”,即:
•
•
• ∴它不是2NF。
• 它存在操作异常,如果工程项目确定后,若暂时未用到材料,则该工程的数据因缺少码的一部分(材料号)而不能进入到数据库中,出现插入异常。若某工程下马,则删去该工程的操作也可能丢失材料方面的信息。
• 将其中的部分函数依赖分解为一个独立的关系,则产生如下所示的两个2NF关系模式:
• 分解后,新工程确定后,尽管还未用到材料,该工程数据可在关系R2中插入。某工程数据删除时,仅对关系R2操作,也不会丢失材料方面的信息。
----------------------------------------------------------------------------------------------------------
• 4、设有如下所示的关系R。
•
(1)它为第几范式?为什么?
• (2)是否存在删除操作异常?若存在,则说明是在什么情况下发生?
• (3)将它分解为高一级范式,分解后的关系如何解决分解前可能存在的删除操作的异常问题。
• 解:(1)它是2NF。
• ∵R的候选码为课程名,而“课程名→教师名”,“教师名→课程名”不成立,“教师名→教师地址”,∴,即存在非主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。
• 又∵不存在非主属性对候选码的部分函数依赖,∴R是2NF。
• (2)存在。当删除某门课程时会删除不该删除的教师的有关信息。
• (3)分解为高一级范式如下所示。
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。
----------------------------------------------------------------------------------------------------------------------
• 5、设有如下所示的关系R。
试问R是否属于3NF?为什么?若不是,它属于第几范式?并如何规范化为3NF?
• 解:R不属于3NF,它是2NF。
• ∵R的候选码为职工号和职工名,而:职工号→单位号,单位号→职工号不成立,单位号→单位名。
• ∴ 即存在非主属性单位名对候选码职工号的传递函数依赖。规范化后的关系子模式为如下所示的关系R1与R2。
----------------------------------------------------------------------------------------------------------------------
• 6、下面给出的关系SC为第几范式?是否存在插入删除异常?若存在,则说明是在什么情况下发生?发生的原因是什么?将它分解为高一级范式,分解后的关系能否解决操作异常问题?
• 其中:SNO为学号,CNO为课程号,CTITLE为课程名,INAME为教师名,ILOCA为教师地址,GRADE为成绩。
• 解:SC为1NF。
• 它存在插入、删除异常操作。当增设一门新课程时,因还没有学生选修,则缺少码的一部分,SNO不能执行插入操作;当所有学生退选某门课程而进行删除操作时,会将不该删除的课程信息删除掉。
• SC关系中存在插入和删除操作异常的原因在于,该关系的候选码为(SNO,CNO),其中仅有非主属性GRADE完全函数依赖于(SNC,CNO),其他非主属性CTITLE,INAME,ILOCA都只函数依赖于CNO,即它们与(SNO,CNO)为部分函数依赖关系。分解后的关系模式如下所示。
• 分解后的两个关系模式都为2NF,并解决了先前的插入、删除异常。当增设一门新课程时,可将数据插入到CI表中;当所有学生退选某门课程时,只需删除SG表中的有关记录,而该课程的有关信息仍保留在CI表中。
• 分解2NF后的CI关系仍存在插入、删除操作异常。若有一个新教师报到,需将其有关数据插入到CI中去,但该教师暂时还未承担任何教学工作,则因缺少码CNO值而不能进行插入操作;当取消某门课程而删除CI表中的一条记录,会将不该删除的教师的有关信息删除。CI表中出现操作异常的原因是该关系中存在非主属性对候选码的传递函数依赖:
• 将CI进一步分解为如下所示的Course和Instructor两个关系,可以解决上述操作异常。
---------------------------------------------------------------------------------------------------------------------
• 7、建立关于系学生班级社团等信息的一个关系数据库,一个系有若干个专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一宿舍区,每个学生可以参加若干个社团,每个社团有若干个学生。
– 描述学生的属性有:学号、姓名、出生年月、系名、班级号、宿舍区。
– 描述班级的属性有:班级号、专业号、系名、人数、入学年份。
– 描述系的属性有:系名、系号、办公室地点、人数。
– 描述社团的属性有:社团名、成立年份、地点、人数、学生参加某社团的年份。
• 请给出关系模式,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
• 指出各关系的候选码、外码,有没有全码存在?
(3)系关系
系(系号,系名,办公室地点,人数)
候选码:“系号”或“系名”
无外码
最小依赖集Fm={系号→系名,系号→办公室地点,系号→人数,系名→系号}
(4)社团关系
社团(社团名,成立年份,地点,人数)
候选码:社团名
无外码
最小依赖集Fm={社团名→成立年份,社团名→地点,社团名→人数}
(5)学生参加社团关系
学生—社团(学号,社团名,入团年份)
候选码:(学号,社团名)
外码:学号,社团名
最小依赖集Fm={(学号,社团名)→入团年份},
(学号,社团名)→入团年份是完全函数依赖。
以上各关系无全码存在。
----------------------------------------------------------------------------------------------------------------------
• 8、指出下列关系模式是第几范式?并说明理由。
① R(X,Y,Z)
F={XY→Z}
① R(X,Y,Z)
F={Y→Z,XZ→Y}
① R(X,Y,Z)
F={Y→Z,Y→X,X→Y , X→ Z}
① R(X,Y,Z)
F={X→Y,X→Z}
① R(W,X,Y,Z)
F={X→Z,WX→Y}
• 解:
① R是BCNF。R候选码为XY,F中只有一个函数依赖,而该函数依赖的左部包含了R的候选码XY。
② R是3NF。R候选码为XY和XZ,R中所有属性都是主属性,不存在非主属性对候选码的传递依赖。
③ R是BCNF。R候选码为X和Y,∵X→YZ,∴X→Y,X→Z,由于F中有Y→Z,Y→X,因此Z是直接函数依赖于X,而不是传递函数依赖于X。又∵F的每一函数依赖的左部都包含了任一候选码,R是BCNF。
④ R是BCNF。R的候选码为X,而且F中每一个函数依赖的左部都包含了候选码X。
⑤ R是1NF。R的候选码为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对候选码的部分函数依赖。
第 9 页 共 9 页
展开阅读全文