《数据库原理与应用教程》(第4版)习题参考答案.docx
《《数据库原理与应用教程》(第4版)习题参考答案.docx》由会员分享,可在线阅读,更多相关《《数据库原理与应用教程》(第4版)习题参考答案.docx(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章数据库概述1 .试说明数据、数据库、数据库管理系统和数据库系统的概念。答:数据是数据库中存储的基本对象。数据库:是存放数据的场所。数据库管理系统:管理数据库数据及其功能的系统软件。数据库系统:由数据库、数据库管理系统、数据库管理员和数据库应用程序共同构 成的系统。2 .数据管理技术的发展主要经历了哪几个阶段?答:文件管理和数据库管理。3 .文件管理方式在管理数据方面有哪些缺陷?答:(1)编写应用程序不方便。(2)数据冗余不可避免。(3)应用程序依赖性。(4)不 支持对文件的并发访问。(5)数据间联系弱。(6)难以满足不同用户对数据的需求。4 .与文件管理相比,数据库管理有哪些优点?答:(
2、1)相互关联的数据集合;(2)较少的数据冗余;(3)程序与数据相互独立; (4)保证数据的安全可靠;(5)最大限度地保证数据的正确性;(6)数据可以共享并能 保证数据的一致性。5 .比较用文件管理和用数据库管理数据的主要区别。答:文件系统不能提供数据的独立性,也不能提供数据共享、安全性等功能,这些 需要客户端编程实现。而数据库管理系统可以很方便地提供这些功能。6 .在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什 么?答:不需要。因为这些都由数据库管理系统来维护。7 .在数据库系统中,数据库的作用是什么?答:数据库是存储数据的仓库,其作用是存储数据。8 .在数据库系统中,
3、应用程序可以不通过数据库管理系统而直接访问数据文件吗? 答:不可以。9 .数据独立性指的是什么?它能带来哪些好处?答:数据独立性包括逻辑独立性和物理独立性两部分。物理独立性是指当数据的存 储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内Where sdept = 计算机系,)(4)查询年龄最大的男学生的姓名和年龄。Select sname,sage from studentWhere sage = (select max(sage) from student where ssex = 男,)and ssex = 男(5)查询数据结构考试成绩最高的学生的姓名、所在系、
4、性别和成绩。Select sname,sdept,ssex,grade from student sJoin sc on s.sno = sc.snoJoin course c on c.eno = sc.enoWhere cname = 数据结构,And grade in (Select max(grade) from sc join course c on o=sc.eno Where cname = 数据结构,)17 .查询没有选修Java课程的学生的姓名和所在系。Select sname,sdept from studentWhere sno not in (Select sno fr
5、om sc join course c on c.eno = sc.eno Where cname = Java)18 .查询计算机系没有选课的学生的姓名和性别。Select sname,ssex from studentWhere sdept = 计算机系,And sno not in ( Select sno from sc )19 .创建一个新表,表名为其结构为(COL1, COL 2, COL 3),其中, COL1:整型,允许空值。COL2:字符型,长度为10,不允许空值。C0L3:字符型,长度为10,允许空值。试写出按行插入如下数据的语句(空白处表示空值)。COL1C0L2C0L3
6、B11B2C22B3Create table test_t( C0L1 int, COL2 char(10) not null COL3 char(10)Insert into test_t(COL2) values(Bl)Insert into test_t(COL1z COL2) values(1,z B2Z)Insert into test_t values(2,B3,NULL)20 .删除考试成绩低于50分的学生的选课记录。Delete from sc where grade 50.删除没人选的课程的基本信息。Delete from course where eno not in( S
7、elect eno from course).删除计算机系Java成绩不及格学生的Java选课记录。 Delete from scFrom sc join student s on s.sno = sc.snoJoin course c on c.eno = sc.enowhere cname = Java and grade = 20Group by sdept.查询计算机系每个学生的JAVA考试情况,列出学号、姓名、成绩和成绩情况,其中成绩 情况的显示规则为:如果成绩大于等于90,则成绩情况为“好”;如果成绩在8089,则成绩情况为“较好”;如果成绩在7079,则成绩情况为“一般”;如果成
8、绩在6069,则成绩情况为“较差”;如果成绩小于60,则成绩情况为“差Select s . sn。,sname, grade,成绩情况 =CaseWhenWhenWhenWhenElse endWhenWhenWhenWhenElse endgrade grade grade grade 差,=90 thenbetweenbetweenbetween807060好and and and897969thenthenthen、较好, 一般, 较差,sc.snofrom student s j oin sc on s.sno Join course c on c.eno = sc.eno Where
9、 sdept = 20.统计每个学生的选课门数(包括没有选课的学生),列出学号、选课门数和选课情况,其 中选课情况显示规则为:如果选课门数大于等于6门,则选课情况为“多”;如果选课门数超过在35门,则选课情况为“一般”;如果选课门数在广2 H,则选课情况为“偏少如果没有选课,则选课情况为“未选课”。22 .修改全部课程的学分,修改规则如下:如果是第12学期开设的课程,则学分增加5分;如果是第34学期开设的课程,则学分增加3分;如果是第56学期开设的课程,则学分增加1分;对其他学期开设的课程,学分不变。Select s . sno, count (sc. sno)选课门数,选课情况=CaseWh
10、en count(sc.sno) = 6 then 多,When count (sc.sno) between 3 and 5 then 一般When count(sc.sno) between 1 and 2 then 偏少When count (sc. sno) = 0 then 未选课, end from student s left join sc on s.sno = sc.sno Group by s.sno.查询“李勇”和“王大力”所选的全部课程,列出课程名、开课学期和学分,不包括重 复的结果。Select cname,semester,credit from course c
11、join sc on c.eno = sc.eno Join student s on s.sno = sc.sno Where sname = 李勇 union Select cname,semester,credit from course c join sc on c.eno = sc.eno Join student s on s.sno = sc.sno Where sname = 王大力.查询在第3学期开设的课程中,“李勇”选了但“王大力”没选的课程,列出课程名和学 分。Select cname,semester,credit from course c join sc on c.
12、eno = sc.eno Join student s on s.sno = sc.sno Where sname = 李勇and semester = 3 except Select cname,semester,credit from course c join sc on c.eno = sc.eno Join student s on s.sno = sc.sno Where sname = 王大力and semester = 3.查询在学分大于3分的课程中,“李勇”和“王大力”所选的相同课程,列出课程名和学 分。Select cnamez semester,credit from c
13、ourse c join sc on c.eno = sc.eno Join student s on s.sno = sc.sno Where sname = 李勇and credit 3 INTERSECT Select cname,semester,credit from course c join sc on c.eno = sc.enoJoin student s on s.sno = sc.snoWhere sname = 王大力 and credit 3第5章索引和视图.试说明使用视图的好处。答:利用视图可以简化客户端的数据查询语句,使用户能从多角度看待同一数据,可以 提高数据的
14、安全性,视图对应数据库三级模式中的外模式,因此提供了一定程度的逻辑 独立性。1 .使用视图可以加快数据的查询速度,这句话对吗?为什么?答:不对,因为通过视图查询数据时.,比直接针对基本表查询数据多了一个转换过程, 即从外模式到模式的转换。2 .使用第3章建立的Student、Course和SC表,写出创建满足下述要求的视图的SQL 语句。(1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。Create view vl AsSelect s.sno,sname,sdept,c.eno,cname,creditFrom student s join sc on s.sno = sc.sn
15、oJoin course c on c.eno = sc.eno(2)查询学生的学号、姓名、选修的课程名和考试成绩。Create view v2 AsSelect s.sno,sname,cname,gradeFrom student s join sc on s.sno = sc.snoJoin course c on c.eno = sc.eno(3)统计每个学生的选课门数,要求列出学生学号和选课门数。Create view v3 AsSelect sno,count (*) as totalFrom sc group by sno(4)统计每个学生的修课总学分,要求列出学生学号和总学分(
16、说明:考试成绩大于 等于60才可获得此门课程的学分)。Create view v4 AsSelect sno,sum(credit) as total_creditFrom sno join course c on c.eno = sc.enoWhere grade = 60Group by sno(5)查询计算机系JAVA考试成绩最高的学生的学号、姓名和JAVA考试成绩。 Create view v5 AsSelect top 1 with ties s.sno, sname, grade From student s join sc on s.sno = sc.sno Join cours
17、e c on c.eno = sc.enoWhere sdept = 计算机系,and cname = javaz Order by grade desc3 .利用第3题建立的视图,完成如下查询: (1)查询考试成绩大于等于90分的学生的姓名、课程名和成绩。Select sname,cname,grade From v2 where grade = 90(2)查询选课门数超过3门的学生的学号和选课门数。Select * from v3 where total = 3(3)查询计算机系选课门数超过3门的学生的姓名和选课门数。Select sname,total from v3 join stud
18、ent s on s.sno = v3.sno Where sdept = 计算机系and total = 3(4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。Select v4.sno,sname,sdept,total_creditFrom v4 join student s on s.sno = v4.snoWhere total_credit = 10(5)查询年龄大于等于20岁的学生中,修课总学分超过10分的学生的姓名、年龄、 所在系和修课总学分。Select sname,sage,sdept,total_creditFrom v4 join student s
19、on s.sno = v4.snoWhere sage = 20 and total_credit = 10.修改第3题(4)定义的视图,使其查询每个学生的学号、总学分以及总的选课门数。 Alter view v4 AsSelect sno,sum(credit) as total_creditz count(*) as total_cno From sc join course c on c.eno = sc.eno Group by sno.修改第3题(5)定义的视图,使其统计全体学生中JAVA考试成绩最高的学生的学号、姓 名、所在系和JAVA考试成绩。Alter view v5 AsSe
20、lect top 1 with ties s.sno, sname, sdept, gradeFrom student s join sc on s.sno = sc.snoJoin course c on c.eno = sc.enoWhere cname = javazOrder by grade desc第6章关系数据库规范化理论.关系规范化中的操作异常有哪些?它是由什么引起的?解决的办法是什么?答:主要有插入异常、删除异常和修改异常,这些都是由数据冗余引起的,解决的办法 是进行模式分解,消除数据冗余。1 .第一范式、第二范式和第三范式的关系的定义分别是什么?答:第一范式:不包含重复组的
21、关系(即不包含非原子项的属性)是第一范式的关系。第二范式:如果R(U,F) W1NF,并且R中的每个非主属性都完全函数依赖于主码, 贝lj R(U,F) G2NFo第三范式:如果R(U,F)2NF,并R所有的非主属性都不传递依赖于主码,则 R(U, F) e3NFo.什么是部分函数依赖?什么是传递函数依赖?请举例说明。答:部分函数依赖:如果X-Y,并且对于X的一个任意真子集X,有X,一Y成立,则称 Y部分函数依赖于X。传递函数依赖:如果X-Y、Y-*Z,则称Z传递函数依赖于X。例1.对于关系模式:选课(学号,姓名,课程号,成绩)该关系模式的主码是(学号,课程号),而有:学号1姓名因此姓名对主码
22、是部分函数依赖关系。例2.对于关系模式:学生(学号,姓名,所在系,系主任)该关系模式的主码是:学号,由于有:学号令所在系,所在系今系主任 因此系主任对学号是传递函数依赖关系。2 .第三范式的关系模式是否一定不包含部分依赖关系?答:是。3 .对于主码只由一个属性组成的关系模式,如果它是第一范式关系模式,则它是否一 定也是第二范式关系模式?答:是。4 .设有关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。 设一个学生可以选多门课程,一门课程可以被多名学生选。每个学生对每门课程有唯一 的考试成绩。一个学生有唯一的所在系,每门课程有唯一的课程名和学分。请指出此关 系模式的候
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理与应用教程 数据库 原理 应用 教程 习题 参考答案
限制150内