数据库原理课后习题答案教材.docx
《数据库原理课后习题答案教材.docx》由会员分享,可在线阅读,更多相关《数据库原理课后习题答案教材.docx(17页珍藏版)》请在冰点文库上搜索。
数据库原理课后习题答案教材
第一章
1、试说明数据、数据库、数据库管理系统和数据库系统的概念以及它们之间的关系。
答:
(1)数据(Data):
描述事物的符号记录称为数据。
数据的种类有数字、文字、图形、图像、声音、正文等。
数据与其语义是不可分的。
(2)数据库(Database,简称DB):
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
(3)数据库系统(Database System,简称DBS):
数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
(4)数据库管理系统(Database ManagementSystem,简称DBMS):
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS的主要功能包括数据库的建立和维护功能、数据定义功能、数据组织存储和管理功能、数据操作功能、事务的管理和运行功能。
它们之间的联系:
数据库系统包括数据库、数据库管理系统、应用系统、数据库管理员,所以数据库系统是个大的概念。
数据库是长期存储在计算机内的有组织、可共享的大量的数据集合,数据库管理系统是由管理员操作管理数据库的查询、更新、删除等操作的,数据库应用系统是用来操作数据库的。
2、数据管理技术的发展主要经历了哪几个阶段?
答:
两个阶段,文件管理和数据库管理。
3、比较用文件管理和用数据库管理数据的主要区别。
答:
数据库系统与文件系统相比实际上是在应用程序和存储数据的数据库之间增加了一个系统软件,即数据库管理系统,使得以前在应用程序中由开发人员实现的很多繁琐的操作和功能,都可以由这个系统软件完成,这样应用程序不再需要关心数据的存储方式,而且数据的存储方式的变化也不再影响应用程序。
而在文件系统中,应用程序和数据的存储是紧密相关的,数据的存储方式的任何变化都会影响到应用程序,因此不利于应用程序的维护。
4、数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?
答:
数据库系统由三个主要部分组成,即数据库、数据库管理系统和应用程序。
数据库是数 据的汇集,它以一定的组织形式存于存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;应用程序指以数据库数据为核心的应用程序。
第二章
1、解释数据模型的概念,为什么要将数据模型分成两个层次?
答:
数据模型是对现实世界数据特征的抽象。
数据模型一般要满足三个条件:
第一是数据模型要能够比较真实地模拟现实世界;第二是数据模型要容易被人们理解;第三是数据模型要能够很方便地在计算机上实现。
由于用一种模型同时很好地满足这三方面的要求在目前是比较困难的,因此在数据库系统中就可以针对不同的使用对象和应用目的,采用不同的数据模型。
根据模型应用的不同目的,将这些模型分为概念层数据模型和组织层数据模型两大类,以方便对信息的描述。
2、概念层数据模型和组织层数据模型分别是针对什么进行的抽象?
答:
概念层数据模型是对现实世界的抽象,形成信息世界模型;组织层数据模型是对信息世界进行抽象和转换,形成具体的DBMS支持的数据组织模型。
3、解释关系模型中的主码、外码、主属性、非主属性的概念,并说明主码、外码的作用。
答:
主码是关系表中用于唯一确定一个元组的一个属性或最小属性组,其作用是使表中的每一行数据彼此不重复且有意义。
外码是引用另一个表的主键(也可以是候选键)的表中的一个列,其作用是表示两个或多个实体之间的关联关系。
主属性:
关系模型中使用主码作为记录的唯一标识,主码所包含的属性称为关系的主属性。
非主属性:
关系模型中使用主码作为记录的唯一标识,主码所包含的属性称为关系的主属性,其他的非主码属性称为非主属性。
4、设有如下两个关系模式,试指出每个关系模式的主码、外码,并说明外码的引用关系。
产品表(产品号,产品名,价格,生产日期),其中“产品名”可能会有重复,同一天可以生产多种产品,每种产品有唯一的产品号 。
销售表(产品号,销售时间,销售数量),假设可同时销售多种产品,但同一产品在同 一时间只销售一次。
答:
产品表主键:
产品号。
销售表主键为:
(产品号,销售时间)。
销售表的“产品号”引 用了产品表的“产品号”。
5、关系模型的数据完整性包含哪些内容?
分别说明每一种完整性的作用。
答:
数据完整性约束主要包括三大类,即实体完整性、参照完整性和用户定义的完整性。
实体完整性是保证关系数据库中所有的表都必须有主键,且主键不允许为空。
参照完整性用于描述实体之间的关联关系。
用户定义的完整性实际上是约束关系中属性的取值范围,即保证数据库中的数据符合现实语义。
6、数据库系统包含哪三级模式?
试分别说明每一级模式的作用?
答:
数据库系统包含的三级模式为:
内模式、模式和外模式。
外模式是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部重构。
模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
内模式是对整个数据库的底层表示,它描述了数据的存储结构。
7、数据库系统的两级映像的功能是什么?
它带来了哪些功能?
答:
数据库系统的两级映像是外模式/模式映像和模式/内模式映像。
模式/内模式映像定义了概念视图和存储的数据库的对应关系,它说明了概念层的记录和字段在内部层次怎样表示。
如果数据库的存储结构改变了,那么,必须对模式/内模式映像进行必要的调整,使模式能够保持不变。
外模式/模式映像定义了特定的外部视图和概念视图之间的对应关系,当概念模式的结构可发生改变时,也可以通过调整外模式/模式映像间的映像关系,使外模式可以保持不变。
8、数据库三级模式划分的优点是什么?
它能带来哪些数据独立性?
答:
数据库的三级模式的划分实际上将用户、逻辑数据库与物理数据库进行了划分,使彼此之间的相互干扰减到最少。
这三个模式的划分实际上带来了两个数据独立性,即物理独立性和逻辑独立性。
这使得底层的修改和变化尽量不影响到上层。
9、简单说明数据库管理系统包含的功能。
答:
数据库管理系统是数据库系统的核心软件,一般说来,其功能主要包括以下5个方面。
(1)数据定义和操纵功能
(2)数据库运行控制功能(3)数据库的组织、存储和管理(4)建立和维护数据库(5)数据通信接口
第三章
1、char(10)和nchar(10)的区别是什么?
它们各能存放多少个字符?
占用多少空间?
答:
char(10)是定长字符串类型,是普通字符编码,nchar(10)是定长字符串类型,统一字符编码。
char(10)存放10个字符,占用10个字节空间;nchar(10)存放10个字符,占用20个字节空间。
2、char(n)和varchar(n)的区别是什么?
其中n的含义是什么?
各占用多少空间?
答:
char(n)是定长字符串类型,varchar(n)是可变长字符串类型,它按数据的实际长度来分配空间。
其中n的含义都是能够存储的字符的个数,对于char(n)类型其所占的空间固定为n个字节;对于varchar(n)其所占空间最多不超过n或2*n个字节。
3、数据完整性的含义是什么?
答:
数据的完整性是为了防止数据库中存在不符合应用语义的数据,为了维护数据的完整性,数据库管理系统提供了一种机制来检查数据库中的数据,看其是否满足语义规定的条件。
这些加在数据库数据之上的语义约束条件就是数据完整性约束条件。
4、 在对数据进行什么操作时,系统检查DEFAULT约束?
在进行什么操作时,检查CHECK约束?
答:
在进行插入操作时检查DEFAULT约束。
在进行插入和更新操作时检查CHECK约束。
5、UNIQUE 约束的作用是什么?
答:
UNIQUE 约束的作用是保证数据的取值不重复。
第四章
建立教学数据库文件,并插入相关元组。
数据库中包括5个表:
学生表:
S(SNO,SNAME,SEX,SAGE,SDEPT,BPLACE)
课程表:
C(CNO,CNAME,CREDIT,SEMSTER)
学生选课表:
SC(SNO,CNO,GRADE)
教师表:
T(TNO,TNAME,TAGE,PROF,SAL)
教师授课表:
TC(TNO,CNO,TIME)
以上面的教学数据库文件为例,完成以下查询:
1)查询学生的全部信息。
SELECT*FROMStudent
2)查询选修了课程的学生号
SELECTDISTINCTSNOFROMSC
3)查询选修C1或C2且分数大于等于85分学生的学号、课程号。
SELECTDISTINCTSNO,CNOFROMSCWHERECNOIN(C1,C2)
4)找出年龄在20~23岁之间的学生的学号、姓名和年龄
SELECTSNO,SNAME,SAGEFROMStudentWHERESAGEBETWEEN20AND23
5)查询姓名中第二个汉字是“力”的教师号和姓名
SELECTTNO,TNAMEFROMTeacherWHERETNAMELIKE‘-力%’。
6)查询选修该课程的学生人数超过3的课程号。
SELECTCNOFROMSCGROUPBYCNOHAVINGCOUNT(*)>3
7)查询所有选课学生的学号、姓名、选课名称及成绩。
SELECTS.SNO,SNAME,CNAME,GRADEFROMSTUDENTSJOINSCONS.SNO=SC.SNOJOINCOURSECONC.CNO=SC.CNO
8)查询其他系中比计算机系任一教师工资高的教师的姓名和工资。
SELECTTNAME,SALFROMTeacherWHERESAL>(SELECTMAX(SAL)FROMTeacherJOINTCONT.TNO=TC.TNOWHERETDEPT=‘计算机系’)
9)查询讲授课程号为C5的教师姓名。
SELECTTNAMEFROMTeachertJOINTCONt.TNO=TC.TNO
10)将学号为960100的学生全部选课记录(课程号、分数)插入到学生选课SC表中
INSERTINTOSCVALUES(‘960100’,‘C1’,80)
11)将信息系所有学生年龄增加1岁。
UPDATESTUDENTSETSAGE=SAGE+1WHERESDEPT=‘信息系’。
12)删除刘伟教师的记录。
DELETEFROMTEACHERWHERETNAME=‘刘伟’。
第五章
一、试说明使用视图的好处。
答:
1、简化数据查询语句
2、使用户能从多角度看待同一数据
3、提高了数据的安全性
4、提供了一定程度的逻辑独立性
二、使用视图可以加快数据的查询速度,这句话对吗?
为什么?
答:
不对。
因为数据库管理系统在对视图进行查询时,首先检查要查询的视图是否存在,如果存在,则从数据字典中提取视图的定义,把视图的定义语句对视图语句结合起来,转换成等价的对基本表的查询,然后再执行转换后的查询,所以使用视图不可以加快数据的查询速度。
三、利用第3章建立的Student、Course和SC表,写出创建满足下述要求的视图的SQL语句。
(1)查询学生的学号、姓名、所在系、课程号、课程名、课程学分。
答:
CREATEVIEWIS_S_C
AS
SELECTSno,Sname,Sdept,Cno,Cname,Credit
FROMStudentSJOINSCONS.Sno=SC.Sno
JOINCourseCONC.Cno=SC.Cno
四、利用第三题建立的视图,完成如下查询:
(1)查询考试成绩大于等于90分的学生的姓名、课程号和成绩。
答:
SELECTSname,Cno,Grade
FROMIS_SC
WHEREGrade>=90
五、修改第三题(4)定义的视图,使其查询每个学生的学号,总学分以及总的选课门数。
答:
ALTERVIEWIS_CC
AS
SELECTSno,COUNT(Credit),COUNT(Cno)
FROMSCJOINCourseCONSC.Cno=C.Cno
GROUPBYSno
第六章
一、关系规范化中的操作异常有哪些?
它是由什么引起的?
解决的方法是什么?
答:
操作异常:
数据冗余问题、数据更新问题、数据插入问题和数据删除问题。
它是由关系模式中某些属性之间存在的“不良”的函数依赖关系一起的。
解决的方法是进行模式分解,即把一个关系模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。
二、第一范式、第二范式和第三范式关系的定义分别是什么?
答:
不包含重复组的关系(即不包含非原子项的属性)是第一范式的关系。
如果R(U,F)∈1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)∈2NF。
如果R(U,F)∈2NF,并且所以的非主属性都不传递依赖于主码,则R(U,F)∈3NF。
三、什么是部分依赖?
什么是传递依赖?
请举例说明。
答:
如果X→Y,有对于X的真子集Xˊ→Y成立,则称Y部分函数依赖于X。
如果X→Y,Y→Z,则称Z传递函数依赖于X。
例:
1、SC(Sno,Sname,Cno,Credit,Grade)主码为(Sno,Cno)
Sno→Sname(Sno,Cno)→Sname姓名部分函数依赖于学号和课程号
2、S(Sno,Sname,Dept,Dept_master)主码为Sno
Sno→DeptDept→Dept_master
Sno→Dept_master系主任传递函数依赖于学号
四、第三范式的关系模式是否一定不包含部分依赖关系?
答:
是。
因为满足第三范式的关系模式一定满足第二范式,一定不包含部分函数依赖关系。
六、设有关系模式:
学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。
设一个学生可以选多门课程,一门课程可以被多名学生选。
一个学生有唯一的所在系,每门课程有唯一的课程号和学分。
请指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答:
候选码为:
(学号,课程号)第一范式
学生(学号,姓名,所在系,性别)
课程(课程号,课程名,学分)
学生修课(学号,课程号,成绩)
学号为引用学生关系模式的外码
课程号为引用课程关系模式的外码
七、设有关系模式:
学生(学号,姓名,所在系,班号,班主任,系主任),其语义为:
一个学生只在一个系的一个班学习,一个系只有一个系主任,一个班只有一个班主任,一个系可以有多个班。
请指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答:
候选码为:
学号第二范式
学生(学号,姓名,所在系,班号)
所在系为引用系关系模式的外码
班号为引用班关系模式的外码
系(所在系,系主任)
班(班号,班主任)
八、设有关系模式:
教师授课(课程号,课程名,学分,授课教师号,教师名,授课时数),其语义为:
一门课程(由课程号决定)有确定的课程名和学分,每名教师(由教师号决定)有确定的教师名,每门课程可以由多名教师教授,每名教师也可以讲授多门课程,每名教师对每门课程有确定的授课时数。
指出此关系模式的候选码,判断此关系模式属于第几范式,若不属于第三范式,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。
答:
候选码为:
(课程号,授课教师号)第一范式
课程(课程号,课程名,学分)
教师(授课教师号,教师名)
教师授课(课程号,授课教师名,授课时数)
课程号为引用课程关系模式的外码
授课教师号为引用教师关系模式的外码
练习1:
下表给出的关系R为第几范式?
是否存在操作异常?
若存在,将其分解为高一级范式。
工程号
材料号
数量
开工日期
完工日期
单价
P1
I1
4
9805
9902
250
P1
I2
6
9805
9902
300
P1
I3
15
9805
9902
180
P2
I1
6
9811
9912
250
P2
I4
18
9811
9912
300
R满足1NF
码:
工程号+材料号
操作异常:
数据冗余,插入异常,删除异常,修改异常
分析原因:
(工程号,材料号)开工日期
工程号开工日期
存在部分函数依赖,不满足2NF
(工程号,材料号)单价
材料号单价
存在部分函数依赖,不满足2NF
分解为:
R1(工程号,材料号,数量)
R2(材料号,单价)
R3(工程号,开工日期,完工日期)
第七章
一、试说明事务的概念及四个特征。
答:
事务是用户定义的数据操作系列,这些操作可作为一个完整的工作单元,一个事务内的
所有语句被作为一个整体,要么全部执行,要么全部不执行。
四个特征:
原子性、一致性、隔离性和持续性
三、在数据库中为什么要有并发控制机制?
答:
数据库系统一个明显的特点是多个用户共享数据库资源,尤其是多个用户可以同时存取相同数据。
在这样的系统中,在同一时刻同时运行的事务可达数百个。
若对多用户的并发操作不加控制,就会造成数据库存、取的错误,破坏数据的一致性和完整性。
所以数据库中要有并发控制机制。
四、并发控制的措施是什么?
答:
在数据库环境下,进行并发控制的主要方式是使用封锁机制,即加锁。
具体的控制由锁的类型决定。
基本的锁类型有两种:
排它锁(X锁)和共享锁(S锁)。
共享锁:
若事务T给数据对象A加了S锁,则事务T可以读A,但不能修改A,其他事务只能再给A加S锁,而不能加X锁,直到T释放了A上的S锁为止。
排他锁:
若事务T给数据对象A加了X锁,则允许T读取和修改A,但不允许其他事务再给A加任何类型的锁和进行任何操作。
五、设有3个事务:
T1、T2和T3,其所包含的动作为:
T1:
A=A+2
T2:
A=A*2
T3:
A=A**2
设A的初值为1,若这三个事务运行并行执行,则可能的调度策略有几种?
A最终的结果分别是什么?
答:
6种策略。
分别是T1T2T3,T1T3T2,T2T1T3,T2T3T1,T3T1T2,T3T2T1
结果分别是
六、当某个事务对某段数据加了S锁之后,在此事务释放锁之前,其他事物还可以对此段数据添加什么锁?
答:
S锁
七、什么是死锁?
如何预防死锁?
答:
如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁数据R2,由于T2已经封锁了数据R2,因此T1等待T2释放R2上的锁,然后T2又请求封锁数据R1,由于T1封锁了数据R1,因此T2也只能等待T1释放R1上的锁.这样就会出现T1等待T2先释放R2上的锁,而T2又等待T1先释放R1上的锁的局面,此时T1和T2都在等待对方先释放锁,因而形成死锁。
预防死锁的方法有多种,常用的方法有一次封锁法和顺序封锁法。
八、三级封锁协议分别是什么?
各级封锁协议的主要区别是什么?
每一级封锁协议能保证什么?
答:
一级封锁协议:
对事务T要修改的数据加X锁,直到事务结束才释放。
二级封锁协议:
一级封锁协议加上事务T对要读取的数据加S锁,读完后即释放S锁。
三级封锁协议:
一级封锁协议加上事务T对要读取的数据加S锁,并直到事务结束才释放。
各级封锁协议的主要区别在于读操作是否需要申请封锁,以及何时释放锁。
一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。
二级封锁协议除了可以防止丢失修改外,还可以防止读“脏”数据。
三级封锁协议除了可以防止丢失修改和不读“脏”数据外,还可以进一步防止不可重复读。
十二、数据库故障大致分为几类?
(考题:
判断故障类型)
答:
1、事务内部的故障
2、系统故障
3、其他故障
十四、数据库恢复的技术有哪些?
答:
1、数据库备份技术2、事务日志备份技术
第八章
三、数据库结构设计包含那几个过程?
答:
数据库结构设计包括概念结构设计、逻辑结构设计和物理结构设计。
五、概念结构应该具有哪些特点?
答:
有丰富的语义表达能力。
易于交流和理解。
易于更改。
易于像各种数据模型转换。
六、概念结构设计的策略是什么?
答:
自底向上。
先定义每个局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念结构。
自顶向下。
先定义全局概念结构。
然后在逐步细化。
由里向外。
先定义最重要的核心结构,然后再逐步向外扩展。
混合策略。
将自顶向下和自底向上方法结合起来使用。
先用自顶向下方法设计一个概念结构的框架,然后以它为框架再用自底向上策略设计局部概念结构,最后把它们集成起来。
七、什么是数据库的逻辑结构设计?
简述其设计步骤。
答:
逻辑结构设计的任务是把在概念结构设计中设计的基本E-R模型转换为具体的数据库管理系统支持的组织层数据模型,也就是导出特定的DBMS可以处理的数据库逻辑结构。
步骤:
1、将概念结构转换为某种组织层数据模型。
2、对组织层数据模型进行优化。
八、把E-R模型转换为关系模式的转换规则有哪些?
答:
一个实体转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的主码。
九、数据模型的优化包含哪些方法?
答:
1、确定各属性间的函数依赖关系。
根据需要分析阶段得出的语义,分别写出每个关系模式的各属性之间的函数依赖以及不同关系模式中各属性之间的数据依赖关系。
2、对各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
3、判断每个关系模式的范式,根据实际需要确定最合适的范式。
4、根据需要分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行分解或合并。
十、设有如图8-15所示的两个E-R模型,分别将它们转换为合适的关系模式,并指出每个关系模式的主码和外码。
答:
出版日期书号联系电话顾客号
读者顾客
作者m书名顾客名
m
借书日期借阅还书日期订购日期职工编号
联系电话n读者编号订购销售人员职工姓名
读者订购数量
单位读者编号n所在部门
库存量商品商品编号
商品分类商品名称
a)b)
a)图书(书号,书名,作者,出版日期)
读者(读者编号,读者姓名,联系电话,单位)
借阅(书号,读者编号,借书日期,还书日期)
书号为引用图书关系模式的外码
读者编号为引用读者关系模式的外码
b)顾客(顾客号,顾客名,联系电话)
商品(商品编号,商品名称,库存量,商品分类)
销售人员(职工编号,职工姓名,所在部门)
订购(顾客号,商品编号,职工编号,订购日期,订购数量)
顾客号为引用顾客关系模式的外码
商品编号为引用商品关系模式的外码
职工编号为引用销售人员关系模式的外码