数据库原理与技术习题答案.docx
《数据库原理与技术习题答案.docx》由会员分享,可在线阅读,更多相关《数据库原理与技术习题答案.docx(28页珍藏版)》请在冰豆网上搜索。
数据库原理与技术习题答案
习题1
1.数据与信息有何区别?
有何联系?
数据的概念:
数字、文字、图画、声音和活动图象
信息的概念:
信息是对人有用的数据
(1)数据与信息的区别:
数据包含信息
数据处理之后产生结果为信息
信息具有相对性,时效性
(2)数据与信息的联系:
信息是客观事物属性的反映。
是经过加工处理并对人类客观行为产生影响的数据表现形式。
数据是反映客观事物属性的记录,是信息的具体表现形式。
数据经过加工处理之后,成为信息。
而信息必须通过数据才能传播,才能对人类有影响。
2.简述数据库、数据库管理系统、数据库系统的概念。
(1)数据库(DataBase,简称DB):
数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
(2)数据库管理系统(DataBaseManagementsytem,简称DBMs):
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
DBMS是一个大型的复杂的软件系统,是计算机中的基础软件。
目前,专门研制DBMS的厂商及其研制的DBMS产品很多。
著名的有美国IBM公司的DB2关系数据库管理系统和IMS层次数据库管理系统、美国Oracle公司的oracle关系数据库管理系统、美国微软公司的SQLServer关系数据库管理系统等。
(3)数据库系统(DataBaseSystem,简称DBS):
数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。
但是在日常工作中人们常常把数据库系统简称为数据库。
3.数据管理技术经历了哪几个阶段?
各阶段的主要特点是什么?
(1)人工管理阶段。
特点:
数据的管理者:
人
数据面向的对象:
某一应用程序
数据的共享程度:
无共享,冗余度极大
数据的独立性:
不独立,完全依赖于程序
数据的结构化:
无结构
数据控制能力:
应用程序自己控制
(2)文件系统阶段。
特点:
数据的管理者:
文件系统
数据面向的对象:
某一应用程序
数据的共享程度:
共享性差,冗余度大
数据的独立性:
独立性差
数据的结构化:
记录内有结构,整体无结构
数据控制能力:
应用程序自己控制
(3)数据库系统阶段。
特点:
数据的管理者:
数据库管理系统
数据面向的对象:
整个应用系统
数据的共享程度:
共享性高,冗余度小
数据的独立性:
具有高度的物理独立性和逻辑独立性
数据的结构化:
整体结构化,用数据模型描述
数据控制能力:
由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力
4.文件系统与数据库系统有什么本质的区别?
文件系统把数据组织成相互独立的数据文件,实现了记录内的结构性,但整体无结构;而数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
5.简述数据库系统的特点。
数据库系统的主要特点有:
(1)数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
在数据库系统中,数据不再针对某一个应用,而是面向全组织,具有整体的结构化。
不仅数据是结构化的,而且数据的存取单位即一次可以存取数据的大小也很灵活,可以小到某一个数据项(如一个学生的姓名),大到一组记录(成千上万个学生记录)。
而在文件系统中,数据的存取单位只有一个:
记录,如一个完整的服装订单记录。
(2)数据的共享性高,冗余度低,易扩充,数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用以多种不同的语言共享使用。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用程序共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。
数据共享可以大大减少数据冗余,节约存储空间,同时还能够避免数据之间的不相容性与不一致性。
(3)数据独立性高,数据独立性包括数据的物理独立性和数据的逻辑独立性。
数据库管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。
(4)数据由DBMS统一管理和控制,数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。
DBMS提供了统一的数据控制功能,包括数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。
DBMS数据控制功能包括四个方面:
数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。
6.简述数据库管理系统的主要功能。
(1)数据库定义功能:
提供数据定义语言(DataDefinitionLanguage,DDL),让用户能够方便地定义数据库的逻辑结构、存储结构和存取路径,描述对数据的完整性和安全性等要求;
(2)数据存取功能:
提供数据操纵语言(DataManipulationLanguage,DML),在保证数据的完整性和安全性基础上,方便、高效地实现数据的查找、插入、修改和删除等操作;
(3)数据组织与存储功能:
提供数据在外围存储设备上的物理组织和存储方式;
(4)事务运行管理功能:
提供事务运行管理及运行日志,事务运行的安全性监控和数据完整性检查,事务的并发控制及系统恢复等功能;
(5)数据库建立维护功能:
提供了数据安全控制、完整性保障、数据库备份、数据库重组和性能监控等维护工具软件,用于提高系统运行效率;
(6)通信接口:
提供与其他类型数据库系统或软件之间的格式转换和网络通信功能,实现异构数据库互访和互操作。
7.简述数据库系统的三级模式结构。
这种结构的优点是什么?
如何实现模式间的转换?
(1)数据库系统的三级模式结构由外模式、模式和内模式组成。
(参见书上图1.29)外模式,亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式描述的是数据的全局逻辑结构。
外模式涉及的是数据的局部逻辑结构,通常是模式的子集。
内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。
(2)特点:
数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。
(3)为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两层映像:
外模式/模式映像和模式/内模式映像。
正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
8.什么是数据独立性?
为什么数据库系统具有数据独立性?
数据独立性包括数据的物理独立性和数据的逻辑独立性。
数据与程序的逻辑独立性表现在当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据与程序的物理独立性表现在当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
9.简述数据库系统的组成。
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。
10.数据库管理员、系统分析员、数据库设计人员、应用程序员的职责分别是什么?
数据库管理员:
负责全面地管理和控制数据库系统。
具体职责包括:
①决定数据库的信息内容和结构;②决定数据库的存储结构和存取策略;③定义数据的安全性要求和完整性约束条件;④监督和控制数据库的使用和运行;⑤改进和重组数据库系统。
系统分析员:
负责系统的需求分析和规范说明,需要与用户以及数据库管理员相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。
数据库设计员:
负责数据库中数据的确定以及数据库各级模式的设计。
应用程序员:
负责设计和编写应用系统的程序模块,并进行调试和安装。
11.观察和分析一个实际的数据库管理系统。
它支持三级模式结构吗?
两层之间的映像是如何定义的?
是否有完整性和安全性机制?
是否具有分布式处理功能?
有哪些特色功能?
12.(1990年高级程序员考试试题)从下列关于数据库系统特点的叙述中选出5条正确的叙述。
②④⑤⑦⑨
①数据库避免了一切数据重复。
②数据库减少了数据冗余。
③各类用户程序均可随意地使用数据库中的各种数据。
④用户程序按所对应的子模式使用数据库中的数据。
⑤数据库数据可经DBA认可的各用户所共享。
⑥数据库系统中如概念模式有所改变,则需将与其有关的子模式做相应改变,否则用户程序需改写。
⑦数据库系统中概念模式如有改变,子模式不必变,因而用户程序亦不必改写。
⑧数据库系统的存储模式如有改变,则概念模式应予调整,否则用户程序会在执行中出错。
⑨数据库系统的存储模式如有所改变,概念模式不需改动。
⑩数据一致性是指数据库中数据类型一致。
习题2
1.答:
数据模型通常由数据结构、数据操作和完整性约束三部分组成:
数据结构是所研究的对象类型的集合,刻画对象和对象间的联系,是对数据库系统静态特性的描述。
如对象的类型、性质、对象之间的参照、所属关系等。
数据操作是指对数据库中各种对象的值允许执行的操作的集合,包括有关的操作要求,是对数据库系统动态特性的描述。
数据库主要有查询和更新(增加、删除和修改)操作。
数据模型中需要定义这些操作的具体含义、操作符号、操作规则和实现操作的语句。
完整性约束即数据和数据间应该满足的条件,是一组完整性规则的集合,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确性、有效性和相容性。
2.答:
略
3.答:
可参加本章图2-2所示的1:
1、1:
n、n:
m三种实体与实体的联系。
4.答:
UML中主要的图有:
Usecasediagram(用例图)、Classdiagram(类图)、Sequencediagram(顺序图)、Collaborationdiagram(协作图)、Activitydiagram(活动图)。
功能如下:
用例图:
说明的是谁要使用系统以及使用该系统可以做些什么。
UML9种图中一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。
类图:
类图是一种模型类型,确切的说,是一种静态模型类型。
一个类图根据系统中的类以及各个类之间的关系描述系统的静态视图。
顺序图:
用来展示对象之间是如何进行交互的。
顺序图将显示的重点放在消息序列上,即消息是如何在对象之间被发送和接收的。
协作图:
可以看成类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此的通信方式。
活动图:
活动图能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
5.答:
在层次模型中,实体之间联系用树形结构(指针)来实现。
在网状模型中,实体之间联系用指针实现。
在关系模型中,实体之间联系用关键码(外键或关系运算)来实现。
6.答:
7.答:
8.答:
A
B
C
D
E
9.答:
A
B
C
D
E
习题3
5.
(1)σ专业=‘通信工程’(学生)
(2)∏课程号,学分(课程)
(3)∏课程号,成绩(σ姓名='张珊'(学生)
选修)
(4)∏学号,课程号(选修)课程
6.A:
④,B:
②,C:
③,D:
④,E:
①
7.C,D
习题4
3.
(1)Select服装ID,型号,颜色,价格from服装关系where品牌=‘佐丹奴’;
(2)select姓名,电话from顾客关系where顾客IDin(select顾客ID from 购买记录关系 where 服装ID in(select 服装ID from 服装关系 where 品牌=‘美津浓’));
(3)select*from顾客关系where顾客编号notin(select顾客编号from购买记录关系);
(4)select*from顾客关系wherenotexist(select*from服装关系where品牌=‘佐丹奴’andnotexist(select*from购买记录关系where购买记录关系.服装编号=服装关系.服装编号and购买记录关系.顾客编号=顾客关系.顾客编号))
4.
(1)select*from学生where专业=‘通信工程’;
(2)select课程号,学分from课程;
(3)select课程号,成绩from选修where学号=(select学号from学生where姓名=‘张珊’);
(4)SELECT姓名
FROM学生
WHERENOTEXISTS
(SELECT*FROM课程
WHERENOTEXISTS
(SELECT*FROM选修
WHERE学号=学生.学号
AND课程号=课程.课程号));
(5)select*from学生where学号notin(select学号from选修);
(6)select学号from选修where课程号in(select课程号from课程课程1where课程1.先行课课程号=(select课程号from课程课程2where课程2.课程名=‘数据库原理’));
(7)deletefrom选修where学号=‘9501’;
(8)update选修set成绩=89where学号=(select学号from学生where姓名=‘张林’)and课程号=(select课程号from课程where课程名=‘数据库原理’);
(9)createviewv1asselect学号,姓名,成绩from学生,选修,课程where学生.学号=选修.学号and选修.课程号=课程.课程号and课程名=‘数据库原理’;
(10)select*fromv1wheregrade>90;
习题5
2.
(1)学生(学号,姓名,出生日期,班号,宿舍区),候选码:
学号。
外码:
班号
班级(班号,专业名,系名,人数,入校年份),候选码:
班号。
外码:
系名
系(系号,系名,系办公室地点,人数),候选码:
系号
学会(学会名,成立年份,地点,人数),候选码:
学会名
学生-学会(学号,学会名,入会年份),候选码:
(学号,学会名),外码:
学号,学会名
(2)学生关系的最小依赖集为{学号→姓名,学号→出生日期,学号→班号,学号→宿舍区}
班级关系的最小依赖集为{班号→专业名,班号→系名,班号→人数,班号→入校年份}
系关系的最小依赖集为{系号→系名,系号→系办公室地点,系号→人数}
学会关系的最小依赖集为{学会名→成立年份,学会名→地点,学会名→人数}
学生-学会关系的最小依赖集为{(学号,学会名)→入会年份}
以上依赖集均无传递依赖,部分依赖。
(3)各关系模式的候选码、外码已在
(1)中注明。
无全码。
3.
(1)最小依赖集为{A→C,C→A,B→C,D→C}
(2)候选码:
BD
(3){AC,BC,DC,BD}
4.F是最小依赖集。
(1)(AB)+=U,A+=A,B+=BCD。
故AB是候选码。
同理可证AC,AD均是候选码。
(2)因B→C,故C部分依赖于AB。
因AD→B,B→C,故C传递依赖于AD。
因C→D,故D部分依赖于AC。
因AB→C,C→D,故D传递依赖于AB。
5.{AB→E,BE→C,CE→F,CF→B,CF→D,C→A,D→E,D→F}
6.
(1)是。
按BCNF的定义,若XY,且Y不是X的子集时,每个决定因素都包含码,对于二元关系决定因素必然包含码。
(2)是。
唯一的决定因素(学号,课程号)就是码。
(3)F是最小依赖集。
把所有属性分类:
L类:
D,N类:
无,LR类:
A,B,C,E,R类:
无
(DA)+=U,(DB)+=DB,(DC)+=DC,(DE)+=DEC,故DA是唯一候选码。
并非所有决定因素都包含码,该关系模式不是BCNF。
7.因为ABE∩CDEF=E,ABE-CDEF=AB,E→AB∈F+,故该分解是无损连结分解。
8.F的最小依赖集为{S→D,I→S,I→Q,B→Q}。
把所有属性分类:
L类:
I、B,N类:
O,LR类:
S,R类:
DQ
(IBO)+=U,故IBO为码。
具有无损连接性的BCNF分解为:
{SD,IS,IQ,BQ,IBO}
9.不正确。
不符合多值依赖定义。
10.BCNF。
因为C→→A是非平凡且非函数依赖的多值依赖。
11.
(1)候选码:
AC,AD,BC,BD
(2)不是4NF。
存在非平凡且非函数依赖的多值依赖。
(3)不是BCNF。
决定因素A、B都不包含码。
(4)是3NF。
所有属性都是主属性,不存在非主属性到码的部分函数依赖或传递函数依赖。
习题6
14.
A:
②
B:
④
C:
④
D:
③
E:
②
15.
【问题1】
(1)n
(2)m
(3)1
(4)n,或m
(5)m
(6)n
其中,
(1)、
(2)的答案可互换,(5)、(6)的答案可互换。
【问题2】
(a)读者ID,图书ID
(b)读者ID,ISBN号
【问题3】
关系模式
主键
外键
读者
读者ID
/
书目
ISBN号
/
图书
图书ID
ISBN号
借还记录
读者ID,图书ID,借书时间
读者ID,图书ID
预约登记
读者ID,ISBN号,预约时间
读者ID,ISBN号,图书ID
习题7
1.简述查询优化的必要性。
答:
查询优化使得用户不必考虑如何最好地表达查询,简化了用户的工作。
同时,同一个查询可以有不同的查询计划,而不同的查询计划执行的效率也不一样,因而对提高RDBMS的查询效率是非常必要的,是影响RDBMS性能的关键因素。
2.简述查询优化的一般准则。
答:
(1)选择运算应尽可能先做。
选择运算一般使计算的中间结果大大变小,提前处理常常可使查询代价降低几个数量级。
(2)在执行连接前对关系适当地预处理。
如执行连接前事先在连接属性上建立索引,可以减少对表的扫描次数,从而大大减少连接处理的时间。
(3)投影运算和选择运算同时进行。
如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。
(4)把投影同其前或其后的双目运算结合起来。
没有必要为了去掉某些字段而扫描一遍关系。
(5)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡尔积省很多时间。
(6)找出公共子表达式。
对那些重复出现且结果不是很大的子表达式,可以先计算一次并把结果写入中间文件,需要时从外存中读入。
3.简述查询优化的处理步骤。
答:
(1)将查询转换成某种内部表示
(2)根据一定的等价变换规则把语法树转换成标准(优化)形式
(3)选择低层的操作算法
(4)生成查询计划
习题8
1.试述事务的概念及事务的四个特性。
答:
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
2.并发操作可能产生哪几类数据不一致?
用什么方法可以避免各种不一致的情况。
答:
并发操作可能产生丢失修改、不可重复读、读“脏”数据。
为避免不一致的情况,一般采用封锁技术,一级封锁协议可避免丢失修改,二级封锁协议可避免丢失修改和读“脏”数据,三级封锁协议可避免丢失修改、不可重复读、读“脏”数据。
3.试述死锁的处理方法?
并说明各方法的优缺点。
答:
对于死锁处理,可以采用预防的策略,如一次封锁法和顺序封锁法,但实际中很难操作,因此,实际中一般允许死锁,但必须提供死锁的诊断和解除方法。
4.数据库运行中可能产生的故障有哪几类?
答:
事务内部的故障、系统故障、介质故障、计算机病毒。
5.数据库的恢复技术有哪些?
答:
数据转储和登录日志文件。
习题9
1.答:
数据库完整性是指数据库中数据的正确性和相容性。
数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。
数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。
2.答:
数据库的安全机制主要包括用户标识和鉴别、存取控制策略、视图机制和数据加密审计跟踪等技术构成。
3.答:
数据的完整性和安全性是两个不同的概念,但是有一定的联系。
数据库完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。
因此完整性检查和控制的防范对象是不合语义、不正确的数据,防止它们进入数据库。
数据库的安全性是保护数据库,防止恶意的破坏和非法的存取。
因此安全性措施的防范对象是非法用户和非法操作。
4.答:
完整性约束条件是指数据库中的数据应该满足的语义约束条件。
一般可以分为六类:
静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。
静态列级约束是对一个列的取值域的说明,包括以下几个方面:
(l)对数据类型的约束,包括数据的类型、长度、单位、精度等;
(2)对数据格式的约束;(3)对取值范围或取值集合的约束;(4)对空值的约束;(5)其他约束。
静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。
静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。
常见的静态关系约束有:
(l)实体完整性约束;
(2)参照完整性约束;(3)函数依赖约束。
动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:
(l)修改列定义时的约束;
(2)修改列值时的约束。
动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件。
动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。
5.答:
CREATETABLEDEPT
(DeptnoNUMBER(6),
DeptnameVARCHAR(30),
ManagernameVARCHAR(20),
PhoneNumberChar(11)
CONSTRAINTPK_SCRIMARYKEY(Deptno