数据库原理及应⽤——复习题(3)
数据库原理及应⽤复习题——问答题
问答题
1、WHERE Age BETWEEN 20 AND 30 ⼦句,查的 Age 范围是多少?
答案: Age ⼤于等于 20 并且⼩于等于 30
2、执⾏ SELECT … INOT 表名 FROM … 语句时,对表名的要求是什么?
答案: 必须是⼀个不存在的新表名。
3、(上机题)查询计算机系年龄在 18 ~ 20 之间且性别为“男”的学⽣的姓名、年龄。
答案: select sname,sage from student where sdept = ’ 计算机系 ’ and sage between 18 and 20 and ssex = ’ 男 ’
4、试说明使⽤视图的好处
答案: 利⽤视图可以简化客户端的数据查询语句,使⽤户能从多⾓度看待同⼀数据,可以提⾼数据的安全性,视图对应数据库三级模式中的外模式,因此提供了⼀定程度的逻辑独⽴性。
5、⾃连接与普通内连接的主要区别是什么?
答案: ⾃连接中进⾏连接操作的表在物理上是⼀张表,⽽普通内连接进⾏连接的表在物理上是两张表。
6、假设有下⾯两个关系模式:
职⼯(职⼯号,姓名,年龄,职务,⼯资,部门号),其中职⼯号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码。
⽤SQL语⾔定义这两个关系,要求在模式中完成以下完整性条件的定义:
(1)定义每个模式的主码;
(2)定义参照完整性;
(3)定义职⼯年龄不得超过60岁
答案: (略)
7、设有关系模式 R(W, X, Y, Z) , F={X → Z, WX → Y} ,该关系模式属于第⼏范式,请说明理由。
答案:
R 是 1NF , R 的候选码为 WX, 因此 Y,Z 是⾮主属性,⼜由于存在 X → Z ,因此 F 中存在⾮主属性对主码的部分函数依赖,因此 R 不是 2NF 。
8、(上机题)⽤⼦查询实现,查询计算机系考试成绩最⾼的学⽣姓名。
答案: select sname from student s join sc on s.sno = sc.sno where sdept = ’ 计算机系 ’ and grade = (select max(grade) from sc join student s on s.sno = sc.snowhere sdept = ’ 计算机系 ')
9、(上机题) 查询成绩 80 分以上的学⽣的姓名、课程号和成绩,并按成绩降序排列结果。
答案: select sname,cno,grade from student s join sc on s.sno = sc.sno where grade > 80 order by grade desc
10、(上机题)查询学⽣的选课情况,要求列出每位学⽣的选课情况(包括未选课的学⽣),并列出学⽣的学号、姓名、课程号和考试成绩。
答案: select s.sno,sname,cno,grade from student s left join sc on s.sno = sc.sno
11、(设计题) 设有关系模式:教师授课(课程号,课程名,学分,授课教师号,教师名,授课时数),其语义为:⼀门课程(由课程号决定)有确定的课程名和学分,每名教师(由教师号决定)有确定的教师名,每门课程可以由多名教师讲授,每名教师也可以讲授多门课程,每名教师对每门课程有确定的授课时数。
(1) 指出此关系模式的候选码。
(2) 写出该关系模式的极⼩函数依赖集。
(3) 该关系模式属于第⼏范式?并简单说明理由
() 若不属于第三范式,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答案:
( 1 )候选码:(课程号,授课教师号)
( 2 )课程号→课程名,课程号→学分,授课教师号→教师名,(课程号,授课教师号)→授课时数
( 3 )属于第⼀范式。
因为有:课程号→课程名,因此存在部分函数依赖关系:
课程名部分函数依赖于主码,即(课程号,授课教师号)
( )第三范式关系模式:课程( 课程号 ,课程名,学分)教师( 教师号 ,教师名)授课( 课程号,教师号 ,授课时数),课程号为引⽤课程的外码,教师号为引⽤教师的外码。
解析:
12、数据库完整性与数据库的安全性有什么区别与联系?
答案:
数据的完整性和安全性是两个不同概念
数据的完整性,防⽌数据库中存在不符合语义的数据,也就是防⽌数据库中存在不正确的数据
数据的完整性,防⽌数据库中存在不符合语义的数据,也就是防⽌数据库中存在不正确的数据
防范对象:不合语义的、不正确的数据
数据的安全性,保护数据库 防⽌恶意的破坏和⾮法的存取
防范对象:⾮法⽤户和⾮法操作
13、关系数据库管理系统的完整性机制应具备哪三个⽅向的功能?
答案:
1.提供定义完整性约束条件的机制
2.提供完整性检查的⽅法
3.违约处理
14、建⽴视图,查询学⽣的学号、姓名、选修的课程名和考试成绩。
答案: Create view v2 As Select s.sno,sname,cname,grade From student s join sc on s.sno = sc.sno Join course c on co = sco
15、(上机题)分别查询信息管理系和计算机系的学⽣的姓名、性别、修课名称、修课成绩,并要求将这两个查询结果合并成⼀个结果集,并以系名、姓名、性别、修课名称、修课成绩的顺序显⽰各列。
答案: select sdept 系名 , sname 姓名 , ssex 性别 , cname 修课名称 , grade 修课成绩 from student s
join sc on s.sno=sc.sno join course c on co=sco where sdept = ’ 信息管理系 ’ UNION select sdept , sname, ssex, cname, grade from student s join sc on s.sno=sc.sno join course c on co=sco where sdept = ’ 计算机系 ’
16、(上机题) 列出“数据库基础”课程考试成绩前三名的学⽣的学号、姓名、所在系和考试成绩
答案: select top 3 s.sno, sname, sdept, grade from Student s join SC on s.Sno = SC.Sno join Course c on c.Cno = SC.Cno where cname = ’ 数据库基础 ’ order by grade desc
17、修改视图定义,使其查询每个学⽣的学号、总学分以及总的选课门数。
答案: Alter view v As Select sno,sum(credit) as total_credit,count() as total_cno From sc join course c on co = sco Group by sno
18、在 Student 表的 Sname 列上建⽴⼀个唯⼀的⾮聚集索引,索引名为: Idx_Sname 。
答案: Create unique index Idx_Sname on student(Sname)
19、在建⽴聚集索引时,数据库管理系统⾸先要将数据按聚集索引列进⾏物理排序。对吗?
答案: 对。
20、在关系系统中,当操作违反实体完整性、参照完整性和⽤户定义完整性约束条件时,如何分别进⾏处理?
答案:
违反实体完整性时、⽤户定义完整性约束条件时,系统采取拒绝本次操作。
违反参照完整性约束条件时,情况相对复杂,可以从参照对象与被参照对象两个⽅⾯进⾏考虑,如参照下规则:
参照表:
(1)插⼊元组:拒绝
(2)修改外码值:拒绝
被参照表:
(1)删除元组:拒绝、级联式删除或外码设为空
(2)修改主码值:拒绝、级联式修改或外码值设为空
21、外连接与内连接的主要区别是什么?
答案: 进⾏外连接的两个表中,可以有⼀张表不满⾜连接条件,⽽进⾏内连接的两个表必须都满⾜连接条件。
22、索引的作⽤是什么?
答案: 索引可以加快数据的查询效率。
23、数据库设计分为哪⼏个阶段?每个阶段的主要⼯作是什么
答案:
24、利⽤定义的视图查询计算机系选课门数超过 3 门的学⽣的姓名和选课门数。
答案: Select sname,total from v3 join student s on s.sno = v3.sno Where sdept = ‘ 计 算机系 ’ and total >= 3
25、利⽤定义的视图,查询考试成绩⼤于等于 90 分的学⽣的姓名、课程名和成绩。
答案: Select sname,cname,grade From v2 where grade >= 90
26、(上机题)统计每门课程的选课⼈数和考试最⾼分。
答案: select cno, count(),max(grade) from sc group by cno
27、对统计结果的筛选应该使⽤哪个⼦句完成?
答案:
HAVING ⼦句
28、(上机题)⽤⼦查询实现,查询“ C001 ”课程的考试成绩⾼于“ C001 ”课程的平均成绩的学⽣的学号和“ C001 ”课程成绩。
答案: select sno,grade from sc where cno = ’ C001’ And grade > (select avg(grade) from sc where cno = ’ C001’) 29、什么叫关系完备性?
答案:
答案:
⼀种语⾔如果具有关系代数的表达能⼒,则称具有完备表达能⼒,简称关系完备性。
30、相关⼦查询与嵌套⼦查询在执⾏⽅⾯的主要区别是什么?
答案: 相关⼦查询的执⾏过程是先外后内,⽽嵌套⼦查询的执⾏过程是先内后外。⽽且相关⼦查询中必须有与外层查询的关联,⽽嵌套⼦查询中,内、外层查询之间没有关联关系。
31、(上机题)删除 VB 考试成绩最低的学⽣的 VB 修课记录。
答案: delete from sc where grade = ( select min(grade) from sc join course c on co = sco where cname = ‘vb’) and cno in( select cno from course where cname = ‘vb’)
32、(上机题)查询计算机系没有选课的学⽣,列出学⽣姓名。
答案: select sname from student s left join sc on s.sno = sc.sno Where sdept = ’ 计算机系 ’ and sc.sno is null
33、在 Student 表的 Sdept 列上建⽴⼀个按降序排序的⾮聚集索引,索引名为: Idx_Sdept 。
答案: Create index Idx_Sdept on student(Sdept DESC)
34、(上机题)⽤⼦查询实现,查询选了“ C001 ”课程的学⽣姓名和所在系。
答案: select sname,sdept from student where sno in( select sno from sc where cno = ’ C0 01’)
35、(上机题)查询“ C001 ” 号课程的最⾼分。
答案:
select max(grade) from sc where cno = ‘C001’
36、(上机题)将 “ C 001 ” 课程的考试成绩加 10 分。
答案: update sc set grade = grade + 10 where cno = ’ C001’
37、将给定的 E-R 图转换为符合 3NF 的关系模式,并指出每个关系模式的主码和外码。
答案:
下列各关系模式中⽤下划线标识主码。
商店( 商店编号 ,商店名,)∈ 3NF
商品( 商品编号 ,商品名称,库存量,商品分类)∈ 3NF
⼚家( ⼚家编号 ,联系地址,)∈ 3NF
订购( 商店编号,⼚家编号,商品编号,订购⽇期 ,订购数量)∈ 3NF,商店编号为引⽤商店关系模式的外码,⼚家编号为引⽤⼚家关系模式的外码,商品编号为引⽤商品关系模式的外码。
38、建⽴视图,统计每个学⽣的选课门数,列出学⽣学号和选课门数。
答案: Create view v3 As Select sno,count(*) as total From sc group by sno
39、第⼀范式、第⼆范式和第三范式关系模式的定义分别是什么?
答案:
1NF:关系模式的每个属性都是不可再分的原⼦属性;
2NF:当⼀个关系属于1NF,且不存在⾮主属性对主码的部分函数依赖,则该关系属于2NF;
3NF:当⼀个关系属于2NF,且不存在⾮主属性对主码的传递函数依赖,则该关系属于3NF
40、(上机题)⽤⼦查询实现,查询年龄最⼤的男⽣的姓名和年龄。
答案: select sname,sage from student Where sage = (select max(sage) from student and ssex = ’ 男 ') and ssex = ’ 男 ’41、(上机题)查询计算机系男⽣修了“数据库基础”的学⽣的姓名、性别和成绩。
答案: select sname,ssex,grade from student s join sc on s.sno = sc.sno join course c on co = sco where sdept = ’ 计算机系 ’ and ssex = ’ 男 ’ and cname = ’ 数据库基础 ’
42、在聚合函数中,哪个函数在统计时不考虑 NULL
答案: COUNT()
43、(上机题)查询选课门数超过 2 门的学⽣的学号、平均成绩和选课门数。
答案: select sno, avg(grade), count() from sc having count() > 2
44、(上机题)查询学⽣选课表中的全部数据。
答案: select * from SC
45、(设计题)设有关系模式:学⽣(学号,姓名,所在系,班号,班主任,系主任),
其语义为:⼀个学⽣只在⼀个系的⼀个班学习,⼀个系只有⼀个系主任,⼀个班只有⼀名班主任,⼀个系可
以有多个班。
(1) 请指出此关系模式的候选码。
(2) 写出该关系模式的极⼩函数依赖集。
(3) 该关系模式属于第⼏范式?并简单说明理由。
() 若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答案:
( 1 )候选码:学号
( 2 )学号→姓名,学号→所在系,学号→班号,班号→班主任,所在系→系主任
( 3 )第⼆范式,因为有:学号→班号,班号→班主任,因此存在传递函数依赖:学号班主任
( 3 )第⼆范式,因为有:学号→班号,班号→班主任,因此存在传递函数依赖:学号班主任
( )第三范式关系模式:
学⽣( 学号 ,姓名,所在系,班号),班号为引⽤班的外码,所在系为引⽤系的外码。
班( 班号 ,班主任)
系( 系名 ,系主任)
46、(上机题)对于下列关系模式:
学⽣(学号,姓名,年龄,性别,家庭住址,班级号)
班级(班级号,班级名,班主任,班长)
使⽤Grant语句完成下列授权功能:
(1)授予⽤户U1对两个表的所有权限,并可给其他⽤户授权;
(2)授予⽤户U2对学⽣表具有查看权限,对家庭住址具有更新权限;
(3)将对班级查看权限授予所有⽤户;
()将对学⽣表的查询、更新权限授予⾓⾊R;
(5)将⾓⾊R1授予⽤户U1,并且U1可以继续授权给其他⾓⾊。
答案: 略
47、(上机题)查询计算机系的学⽣的姓名、年龄。
答案: select sname,sage from student where sdept = ’ 计算机系 ’
48、在使⽤ UNION 合并多个查询语句的结果时,对各个查询语句的要求是什么?
答案: 各个查询语句的列个数必须相同,对应列的语义相同,类型兼容。
49、(上机题)删除信息管理系考试成绩⼩于 50 分的学⽣的该门课程的修课纪录,分别⽤⼦查询和多表连接形式实现。
答案: delete from sc from sc join student s on s.sno=sc.sno where sdept = ’ 信息管理系 ’ and grade < 50;delete from sc where sno in ( select sno from student where sdept = ’ 信息管理系 ’ ) and grade < 50
50、(设计题)设有关系模式:学⽣修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。
设⼀个学⽣可以选多门课程,⼀门课程可以被多名学⽣选。⼀个学⽣有唯⼀的所在系,每门课程有唯⼀的课程名和学分。每个学⽣对每门课程有唯⼀的成绩。
(1) 请指出此关系模式的候选码。
(2) 写出该关系模式的极⼩函数依赖集。
(3) 该关系模式属于第⼏范式?并简单说明理由。
() 若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答案:
( 1 )候选码:(学号,课程号)
( 2 )学号→姓名,学号→所在系,学号→性别,课程号→课程名,课程号→学分, (学号,课程号)→成绩
( 3 )属于第⼀范式,因为存在部分函数依赖:学号→姓名。
( )第三范式关系模式:
学⽣( 学号 ,姓名,所在系,性别),
课程( 课程号 ,课程名,学分),
考试( 学号,课程号 ,成绩),
学号为引⽤学⽣的外码,课程号为引⽤课程的外码。
51、TOP ⼦句的作⽤是什么?
答案: 在查询结果产⽣后,提取结果的前若⼲⾏数据。
52、(上机题)查询选了“ C 002 ” 课程的学⽣的姓名和所在系。
答案: select sname,sdept from student s join sc on s.sno = sc.sno where cno = ‘C002’
53、删除在 Sname 列上建⽴的 Idx_Sname 索引。
答案: drop index Idx_Sname on Student
54、利⽤(1)~()定义的视图查询选课门数超过 3 门的学⽣的学号和选课门数。
答案: Select * from v3 where total >= 3
28、(上机题)统计每个学⽣的选课门数和考试总成绩,并按选课门数升序显⽰结果。
答案: select sno,count(), sum(grade) from sc group by sno order by count(*) asc
55、(上机题)查询成绩在 70 ~ 80 分之间的学⽣的学号、课程号和成绩。
答案: select sno,cno,grade from sc on where grade between 70 and 80
56、适合建⽴索引的列是什么?
答案: ● 包含⼤量⾮重复值的列。● 在 WHERE ⼦句中经常⽤于进⾏ BETWEEN AND 、 > 、 >= 、 < 和 <= 等操作的列。● 经常被⽤作连接操作的列。● ORDER BY 或 GROUP BY ⼦句中涉及的列。
57、设有关系模式 R(A, B, C, D) , F={D → A, D → B}
数据库原理及应用期末考试题( 1 )求 D +;
(2 )求 R 的全部候选码。
(2 )求 R 的全部候选码。
答案:
( 1 ) D + =DAB;
( 2 )因为 D 是 L 类属性,因此 D ⼀定出现在 R 的任何候选码中;
因为 C 是 N 类属性,因此 C⼀定出现在 R 的任何候选码中;(CD) + = CDAB = R 的全部属性,因此 R 的唯⼀候选码是 CD 。
解析:
58、(上机题)⽤⼦查询实现,查询通信⼯程系成绩 80 分以上的学⽣学号和姓名。
答案: select sno,sname from student where sno in( select sno from sc where grade > 80) and sdept = ’ 通信⼯程系 ’
59、在排序⼦句中,排序依据列的前后顺序是否重要? ORDER BY C1,C2 ⼦句对数据的排序顺序是什么?
答案: 重要,系统会按列C1升序排序,对于C1值相同的元组,按C2列升序排序。
60、(上机题)统计每个系的学⽣⼈数。
答案: select sdept,count(*) from student group by sdept
61、(上机题)查询 VB 考试成绩最低的学⽣的姓名、所在系和 VB 成绩。
答案: select top 1 with ties sname,sdept,grade from student s join sc on s.sno = c.sno join course c on co = sco where cname = ‘VB’ order by grade asc
62、(上机题)查询计算机系学⽣的最⼤年龄和最⼩年龄。
答案: select max(sage) as max_age, min(sage) as min_age from student where sdept = ’ 计算机系 ’
63、设有关系模式 R(A, B, C, D) , F = {A → C, C → A, B → AC, D → AC}
( 1 )求 B + , (AD) + ;
( 2 )求 R 的全部候选码,判断 R 属于第⼏范式;
( 3 )求 F 的极⼩函数依赖集 F min
答案:
(1) B + = BAC
(AD) + = ADC
(2) 由于 B 、 D 是 L 类属性,因此 B 、 D 会在任何候选码中;
(BD) + = BDAC = R 的全部属性,因此 R 的候选码是 BD 。
R 是第 1 范式,因为存在部分函数依赖:
( 3 )
1) 将所有函数依赖的右边改为单个属性,得到: B → AC,
D → AC
F1 = { A → C, C → A, B → A, B → C, D → A, D → C }
2 )去掉函数依赖左部的多余属性:
该关系模式的全部函数依赖集左部均为⼀个属性,因此不存在左部有多余属性的情况。
3 ) 去掉多余的函数依赖。
去掉 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 ,得到 F = {
C→A, B → C, D → A, D → C } B+ F = 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 不是多余函数依赖。 最终 F min = { C→A, B → C, D → C }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论