4. 写出实现下列操作的SQL语句,执行这些语句,并在SSMS工具中观察语句执行结果。 (1) 在Student表的Sdept列上建立一个按降序排序的非聚集索引,索引名为:Idx_Sdept。
答:Create index Idx_Sdept on student(Sdept DESC)
(2) 在Student表的Sname列上建立一个唯一的非聚集索引,索引名为:Idx_Sname。 答:Create unique index Idx_Sname on student(Sname)
(3) 在Course表上为Cname列建立一个非聚集索引,索引名为: Idx_Cname 答:Create index Idx_Cname on Course(Cname)
(4) 在SC表上为Sno和Cno建立一个组合的非聚集索引,索引名为:Idx_SnoCno。 答:Create index Idx_SnoCno on SC(Sno,Cno)
(5) 删除在Sname列上建立的Idx_Sname索引。 答:drop index Idx_Sname on Student
·21· 21
·22·
第6章 关系数据理论
一.选择题
1.对关系模式进行规范化的主要目的是
B
A.提高数据操作效率 B.维护数据的一致性
C.加强数据的安全性 D.为用户提供更快捷的数据操作
2.关系模式中的插入异常是指
D
A.插入的数据违反了实体完整性约束 B.插入的数据违反了用户定义的完整性约束 C.插入了不该插入的数据 D.应该被插入的数据不能被插入
3.如果有函数依赖X→Y,并且对X的任意真子集X’,都有X’
Y,则称 C
A.X完全函数依赖于Y B.X部分函数依赖于Y C.Y完全函数依赖于X
D.Y部分函数依赖于X
4.如果有函数依赖X→Y,并且对X的某个真子集X’,有X’→Y成立,则称 B
A.Y完全函数依赖于X B.Y部分函数依赖于X C.X完全函数依赖于Y
D.X部分函数依赖于Y
5.若X→Y和Y→Z在关系模式R上成立,则X→Z在R上也成立。该推理规则称为 C
A.自反规则 B.增广规则 C.传递规则
D.伪传递规则
6.若关系模式R中属性A仅出现在函数依赖的左部,则A为 A
A.L类属性 B.R类属性 C.N类属性
D.LR类属性
7.若关系模式R中属性A是N类属性,则A D
A.一定不包含在R任何候选码中 B.可能包含也可能不包含在R的候选码中 C.一定包含在R的某个候选码中 D.一定包含在R的任何候选码中
8.设F是某关系模式的极小函数依赖集。下列关于F的说法,错误的是
B
A.F中每个函数依赖的右部都必须是单个属性 B.F中每个函数依赖的左部都必须是单个属性 C.F中不能有冗余的函数依赖
D.F中每个函数依赖的左部不能有冗余属性
9.有关系模式:学生(学号,姓名,所在系,系主任),设一个系只有一个系主任,则该关系模式至少属于A.第一范式 B.第二范式 C.第三范式
D.BC范式
10.设有关系模式R(X, Y, Z),其F={Y→Z, Y→X, X→YZ},则该关系模式至少属于
D
A.第一范式
B.第二范式 22
B
C.第三范式
11.下列关于关系模式与范式的说法,错误的是
A.任何一个只包含两个属性的关系模式一定 B.任何一个只包含两个属性的关系模式一定 C.任何一个只包含两个属性的关系模式一定 D.任何一个只包含三个属性的关系模式一定
D.BC范式 D 属于3NF 属于BCNF 属于2NF 属于3NF
·23· 12.有关系模式:借书(书号,书名,库存量,读者号,借书日期,还书日期),设一个读者可以多次借阅同一本书,但对一种书(用书号唯一标识)不能同时借多本。该关系模式的主码是
A.(书号,读者号,借书日期) B. (书号)
二.填空题
1.在关系模式R中,若属性A只出现在函数依赖的右部,则A是_____类属性。 R 2.若关系模式R∈2NF,则R中一定不存在非主属性对主码的_____函数依赖。 部分 3.若关系模式R∈3NF,则R中一定不存在非主属性对主码的_____函数依赖。 传递
4.设有关系模式X(S, SN, D)和Y(D, DN, M),X的主码是S,Y的主码是D,则D在关系模式X中被称为_____。 外码
5.设有关系模式R(U, F),U={X, Y, Z, W},F={XY→Z, W→X},则(ZW)+ = _____,R的候选码为_____,该关系模式属于_____范式。XZW YW
第一
6.在关系模式R中,若属性A不在任何函数依赖中出现,则A是_____类属性。 N
7.在关系模式R中,若有X→Y,且Z?Y,则X→Z在R上也成立,该推理规则为Armstrong公理系统中的_____。分解规则
8.根据Armstrong公理系统中的自反规则,对关系模式R中的属性集X,若Y?X,则一定有_____。X→Y 9.关系数据库中的关系表至少都满足_____范式要求。 第一
10.关系规范化的过程是将关系模式从低范式规范化到高范式的过程,这个过程实际上是通过_____实现的。 模式分解
11. 若关系模式R的主码只包含一个属性,则R至少属于第_____范式。 二
12.若关系模式R中所有的非主属性都完全函数依赖于主码,则R至少属于第_____范式。 二
三.简答题
1. 关系规范化中的操作异常有哪些?它是由什么引起的?解决的办法是什么? 2.第一范式、第二范式和第三范式关系模式的定义分别是什么? 3.什么是部分函数依赖?什么是传递函数依赖?请举例说明。 4.第三范式的关系模式是否一定不包含部分函数依赖关系? 5.设有关系模式R(A, B, C, D),F={D→A, D→B} (1)求D。
(2)求R的全部候选码。 答:(1)D=DAB
(2)因为D是L类属性,因此D一定出现在R的任何候选码中; 因为C是N类属性,因此D一定出现在R的任何候选码中; (CD) = CDAB = R的全部属性,因此R的唯一候选码是CD。
6.设有关系模式R(W, X, Y, Z),F={X→Z, WX→Y},该关系模式属于第几范式,请说明理由。
解:R是1NF,R的候选码为WX,因此Y,Z是非主属性,又由于存在X→Z,因此F中存在非主属性对主码的部分函数
23
+
++
A
B.(书号,读者号) D.(读者号)
·24· 依赖,因此R不是2NF。
7.设有关系模式R(A, B, C, D),F = {A→C, C→A, B→AC, D→AC} (1)求B+,(AD)+。
(2)求R的全部候选码,判断R属于第几范式。 (3)求F的极小函数依赖集Fmin。 答:
(1) B+ = BAC
(AD)+ = ADC
(2) 由于B、D是L类属性,因此B、D会在任何候选码中;
(BD)+ = BDAC = R的全部属性,因此R的候选码是BD。 R是第1范式,因为存在部分函数依赖:
(3)① 将所有函数依赖的右边改为单个属性,得到:B→AC, D→AC
F1 = { A→C, C→A, B→A, B→C, D→A, D→C }
② 去掉函数依赖左部的多余属性:该关系模式的全部函数依赖集左部均为一个属性,因此不存在左部有多余
属性的情况。 ③ 去掉多余的函数依赖。
去掉A→C,得到F2 = { C→A, B→A, B→C, D→A, D→C }
A+F2 = AC,包含C,因此为多余函数依赖,应去掉;
去掉C→A,得到F3 = { B→A, B→C, D→A, D→C }
C+F3 = C,不包含A,因此C→A不是多余函数依赖;
去掉B→A,得到F4 = { C→A, B→C, D→A, D→C }
B+F4 = BCA,包含A,因此B→A是多余函数依赖,应去掉;
去掉B→C,得到F5 = { C→A, D→A, D→C }
B+F5 = B,不包含C,因此B→C不是多余函数依赖;
去掉D→A,得到F6 = { C→A, B→C, D→C }
D+F5 = DCA,不包含A,因此D→A是多余函数依赖,应去掉;
去掉D→C,得到F7 = { C→A, B→C }
D+F5 = D,不包含C,因此D→C不是多余函数依赖。
四. 设计题
1. 设有关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。设一个学生可以选多
门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课程有唯一的课程名和学分。每个学生对每门课程有唯一的成绩。 (1) 请指出此关系模式的候选码。 (2) 写出该关系模式的极小函数依赖集。
(3) 该关系模式属于第几范式?并简单说明理由。
(4) 若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。 答:(1)候选码:(学号,课程号)
(2)学号→姓名,学号→所在系,学号→性别,课程号→课程名,课程号→学分, (学号,课程号)→成绩
(3)属于第二范式,因为存在部分函数依赖:学号→姓名。 (4)第三范式关系模式:
学生(学号,姓名,所在系,性别) 课程(课程号,课程名,学分)
24
最终Fmin ={C→A, B→C, D→C}