数据库系统概论第六章规范化习题Word格式.docx
《数据库系统概论第六章规范化习题Word格式.docx》由会员分享,可在线阅读,更多相关《数据库系统概论第六章规范化习题Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
A.1NFB.2NFC.3NFD.4NF
由2NF的定义可知本题答案为B。
4、若关系R的候选码都是由单属性构成的,则R的最高范式必定是______
A.1NFB.2NFC.3NFD.无法确定
候选码由单属性构成,一定不会存在非主属性对候选码的部分函数依赖。
5在关系模式R(A,B,C,D)中,有函数依赖集F={B→C,C→D,D→A},则R能达到_______
A.1NFB.2NFC.3NFD.以上三者都不行
该关系模式的候选码是B,因为B→C,CB,C→D,所以存在非主属性D对候选码的传递函数依赖,R不是3NF。
又因为不存在非主属性对候选码的部分函数依赖,所以R是2NF。
6设有关系W(工号,姓名,工种,定额),将其规范化到第三范式正确的答案是______
A.W1(工号,姓名)W2(工种,定额)
B.W1(工号,工种,定额)W2(工号,姓名)
C.W1(工号,姓名,工种)W2(工种,定额)D.以上都不对
该关系的函数依赖集为{工号→姓名,工号→工种,工种→定额},侯选码为“工号”经分析可知:
“定额”经“工种”传递函数依赖于“工号”,这个传递依赖应消除。
选项A中的两个关系没有公众属性,不正确;
选项B中未消除传递依赖。
本题答案为C。
7有关系模式学生(学号,课程号,名次),若每一名学生每门课程有一定的名次,每门课程每一名次只有一名学生,则以下叙述中错误的是__B____
A.(学号,课程号)和(课程号,名次)都可以作为候选码
B.只有(学号,课程号)能作为候选码
C.关系模式属于第三范式D.关系模式属于BCNF
(学号,课程号)→(名次),(课程号,名次)→(学号),所以(学号,课程号)和(课程号,名次)都可以作为候选码,选项A正确;
该关系所有的属性都是主属性,所以属于第三范式,选项C正确;
同时该关系上的两个函数依赖的左部都包含了该关系的候选码,所以也属于BCNF,选项D正确。
8关系模式STJ(S#,T,J#)中,存在函数依赖:
(S#,J#)→T,(S#,T)→J#,T→J#,则_______
A.关系STJ满足1NF,但不满足2NFB.关系STJ满足2NF,但不满足3NF
C.关系STJ满足3NF,但不满足BCNFD.关系STJ满足BCNF,但不满足4NF
该关系模式的候选码是(S#,J#)和(S#,T),所有的属性都是主属性,所有该关系模式至少是3NF,又因为T→J#的左部未包含该关系的任一候选码,所以它不是BCNF。
9能够消除多值依赖引起的冗余的是_______
A.2NFB.3NFC.4NFD.BCNF
关系模式达到4NF时,可删除由多值依赖引起的冗余。
10当B属于函数依赖于A属性时,属性B与A的联系是____。
A.1对多B.多对1C.多对多D.以上都不是
11在关系模式中,如果属性A和B存在1对1的联系,则说___。
A.A→B B.B→A C.A→BD.以上都不是
12关系模式R中的属性全部是主属性,则R的最高范式必定是____。
A.2NF B.3NF C.BCNF D.以上都不是
举例:
学生成绩登记表
学号
姓名
性别
专业
年级
课程成绩
课号
课名
学时
学分
教师
工资号
成绩
S1
S2
张三
李四
男
女
CS
98
99
C1
C2
C3
C4
C5
DB
DS
OS
MA
PH
60
80
120
90
3
4
6
5
赵
钱
孙
李
周
M1
M9
M4
M7
M2
70
85
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中仍然保留,不会丢失教师方面的信息。
----------------------------------------------------------------------