数据库期末考试简答题题型
第1章 绪论
1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答:
( l)数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。
( 2 ) 数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
( 3 )数据库系统( DataBase Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具) 、应用系统、数据库管理员构成。
4) 数据库管理系统( DataBase Management Sytem ,简称 DBMS ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 5 .试述数据库系统的特点。
( l )数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一
( 2 )数据的共享性高,冗余度低
(3)数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。数据独立性高
(4)数据由 DBMS 统一管理和控制数据库的共享是并发的共享,即多
个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。
6 .数据库管理系统的主要功能有哪些?
答:
( l )数据定义功能;
( 2 )数据存取功能;
(5)数据操作功能
( 3 )数据库运行管理;
( 4 )数据库的建立和维护功能
19 .试述关系数据库的特点。
答:
关系数据模型具有下列优点: ( l )关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。
(2)所以其数据结构简单、清晰,用户易懂易用
( 3 )关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,但是查询效率往往不如非关系数据模型。
21 .定义并解释以下术语:模式、外模式、内模式、 DDL 、 DML 模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。 DDL :数据定义语言,用来定义数据库模式、外模式、内模式的语言。 DML :数据操纵语言,
22:什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?
答:
数据与程序的逻辑独立性:当模式改变时,由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
数据与程序的物理独立性:当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
24 . DBA 的职责是什么?
答:
负责全面地管理和控制数据库系统。具体职责包括: ① 决定数据库的信息内容和结构; ② 决定数据库的存储结构和存取策略; ③ 定义数据的安全性要求和完整性约束条件; ④ 监督和控制数据库用和运行; ⑤数据库的改进和重组重构
第2章 关系数据库
5.设有一个SPJ 数据库,包括S ,P ,J ,SPJ 四个关系模式:
1) 求供应工程J1零件的供应商号码SNO :
πSno (σjno=‘J1’(SPJ))
2) 求供应工程J1零件P1的供应商号码SNO :
πSno (σSno=‘J1’∧P no=’P1’(SPJ))
3) 求供应工程J1零件为红色的供应商号码SNO :
πSno (σPno=‘P1‘ (σCOLOR=’红‘ (P)∞SPJ))
4) 求没有使用天津供应商生产的红色零件的工程号JNO : πJno (SPJ)- πJNO (σcity=‘天津’∧Color=‘红‘ (S∞SPJ ∞P)
5) 求至少用了供应商S1所供应的全部零件的工程号JNO : πJno ,Pno (SPJ)÷ πPno (σSno=‘S1‘ (SPJ))
第3章 关系数据库标准语言SQL
1 .试述 sQL 语言的特点。
(l)综合统一(2)高度非过程化(3)面向集合的操作方式。
(4)以同一种语法结构提供两种使用方式。(5)语言简捷,易学易用。 ( 4 )求没有使用天津供应商生产的红色零件的工程号 JNO ;
SELECT distinct JNO
FROM SPJ
WHERE JNO NOT IN
(SELECT JNO
FROM SPJ,P,S
WHERE S.CITY='天津' AND
COLOR='红' AND
S.SNO=SPJ.SNO AND
P.PNO=SPJ.PNO)。
7 .试述视图的优点。
答
( l )视图能够简化用户的操作; ( 2 )视图使用户能以多种角度看待同一数据; ( 3 )视图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。(5)适当的运用视图可以更加清晰的表达查询
第4章 数据库安全性
1 .什么是数据库的安全性?
答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
5 .试述实现数据库安全性控制的常用方法和技术。
答:实现数据库安全性控制的常用方法和技术有:
( l )用户标识和鉴别
( 2 )存取控制
( 3 )视图机制:
( 4 )审计
( 5 )数据加密
( c ) 每个职工只对自己的记录有SELECT 权力。
GRANT SELECT
ON 职工
WHEN USER( )=NAME TO ALL;
( g )用户杨兰具有从每个部门职工中SELECT 最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。
CREATE VIEW 部门工资
AS
GRANT SELECT
ON 部门工资
TO 杨兰; SELECT 部门. 名称,MAX(工资),MIN(工资),A VG(工资) FROM 职工, 部门 WHERE 职工. 部门号=部门. 部门号 GROUP BY 职工. 部门号
第5章 数据库完整性
1什么是数据库的完整性?
答:
数据库的完整性是指数据的正确性和相容性。
2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系? 答:
数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进出( Garba : e In Garba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
第6章 关系数据库理论
1 .理解并给出下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(All-key )、1 NF 、2NF 、3NF 、BCNF 、多值依赖、4NF 。
定义1:设R(U)是属性集U 上的关系模式。X ,Y 是属性集U 的子集。若对于R(U)的任意一个可能的关系r ,r 中不可能存在两个元组在X 上的属性值相等,而在Y 上的属性值不等,则称X 函数确定Y 或Y 函数依赖于X ,记作X →Y 。(即只要X 上的属性值相等,Y 上的值一定相等。)
术语和记号:
X →Y ,但Y 不是X 的子集,则称X →Y 是非平凡的函数依赖。若不
特别声明,总是讨论非平凡的函数依赖。
X →Y ,但Y 是X 的子集,则称X →Y 是平凡的函数依赖。 若X →Y ,则X 叫做决定因素(Determinant)。
若X →Y ,Y →X ,则记作X ←→Y 。
若Y 不函数依赖于X X → Y。
定义2:在R(U)中,如果 X →Y ,并且对于X X ’,
都有X ’ → Y,则称Y 对X 完全函数依赖
若X →Y ,但Y 不完全函数依赖于X ,则称Y 对X 部分函数依赖
定义3:若关系模式R 的每一个分量是不可再分的数据项,则关系模式R 属于第一范式(1NF)。
定义4:若关系模式R ∈1NF ,且每一个非主属性完全函数依赖于码,则关系模式R ∈2NF 。(即1NF 消除了非主属性对码的部分函数依赖则成为2NF) 。
定义5:R 中若不存在这样的码X 、属性组Y 及非主属性Z(Z不是Y 的子集) 使得X →Y ,Y → X,Y → Z成立,则称R∈3NF 。
定义6:关系模式R∈1NF 。若X →Y 且Y 不是X 的子集时,X 必含有码,则R∈BCNF 。
定义7:关系模式R∈1NF ,如果对于R 的每个非平凡多值依赖X →→Y(Y不是X 的子集,Z=U-X-Y不为空) ,X 都含有码,则称R∈4NF 。
2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。 学生:学号、姓名、出生年月、系名、班号、宿舍区。
班级:班号、专业名、系名、人数、入校年份。
系:系名、系号、系办公地点、人数。
学会:学会名、成立年份、办公地点、人数。
语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。 请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?
解:(1)关系模式如下:
学生:S(Sno,Sname ,Sbirth ,Dept ,Class ,Rno)
班级:C(Class,Pname ,Dept ,Cnum ,Cyear)
系:D(Dept,Dno ,Office ,Dnum)
学会:M(Mname,Myear ,Maddr ,Mnum)
(2)每个关系模式的最小函数依赖集如下:
A 、学生S (Sno,Sname ,Sbirth ,Dept ,Class ,Rno) 的最小函数依赖集如下:
Sno →Sname ,Sno →Sbirth ,Sno →Class ,Sno →Rno
Class →Dept ,
DEPT →Rno
传递依赖如下:
由于Sno →Dept →Sno ,Dept →Rno(宿舍区)
所以Sno 与Rno 之间存在着传递函数依赖。
由于Class →Dept Dept → Class,Dept →Rno
所以Class 与Rno 之间存在着传递函数依赖。 由于Sno →Class Class →Sno ,Class →Dept
所以Sno 与Dept 之间存在着传递函数依赖。
B 、班级C(Class,Pname ,Dept ,Cnum ,Cyear) 的最小函数依赖集如下:
Class →Pname ,Class →Cnum ,Class →Cyear ,Pname →Dept. 由于Class →Pname ,Pname →Class ,Pname →Dept 所以C1ass 与Dept 之间存在着传递函数依赖。
C 、系D(Dept,Dno ,Office ,Dnum) 的最小函数依赖集如下:
Dept →Dno ,Dept →Office ,Dept →Dnum
Dno →Dept ,Dno →Office ,Dno →Dnum
根据上述函数依赖可知,Dept 与Office ,Dept 与Dnum 之间不存在传递依赖。
D 、学会M(Mname,Myear ,Maddr ,Mnum) 的最小函数依赖集如下:
Mname →Myear ,Mname →Maddr ,Mname →Mnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A 、学生S 候选码:Sno ;外部码:Dept 、Class ;无全码
B 、班级C 候选码:Class ;外部码:Dept ;无全码
C 、系D 候选码:Dept 或Dno ;无外部码;无全码
D 、学会M 候选码:Mname ;无外部码;无全码
第10章 数据库恢复技术
1.试述事务的概念及事务的4 个特性。
答:
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有4 个特性:原子性(Atomicity ) 、一致性(consistency ) 、隔离性( Isolation )和持续性(Durability )。
4 .数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?
答:
数据库系统中可能发生各种各样的故障,大致可以分以下几类:
(1)事务内部的故障;
(2)系统故障;
(3)介质故障;
(4)计算机病毒。
事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。
8 .登记日志文件时为什么必须先写日志文件,后写数据库? 答:
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO 操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
8 .登记日志文件时为什么必须先写日志文件,后写数据库? 答:
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO 操作,并不会影响数据库的正确性。
所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
9 .针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?)
答:
事务故障的恢复:
事务故障的恢复是由DBMS DBMs 执行恢复步骤是:
自动完成的,对用户是透明的。
(1)反向扫描文件日志(即从最后向前扫描日志文件) ,查找该事务的更新操作;
(2)对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库;
(3)继续反向扫描日志文件,做同样处理;
(4)如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。
系统故障的恢复:
系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢复操作就是要撤销(UNDO )故障发生时未完成的事务,重做(REDO )已完成的事务。 系统的恢复步骤是:
(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO 队列) 和未完成的事务队列(UNDO 队列) 。
(2)对撤销队列中的各个事务进行UNDO 处理。
进行UNDO 处理的方法是,反向扫描日志文件,对每个UNDO 事务的更新操作执行逆操作,即将日志记录中“更新前的值”Before Image )写入数据库。( 3 )对重做队列中的各个事务进行REDO 处理。 进行REDO 处理的方法是:正向扫描日志文件,对每个REDO 事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”Afte , Image )写入数据库。
介质故障的恢复:
介质故障是最严重的一种故障。
恢复方法是重装数据库,然后重做已完成的事务。具体过程是: ( 1 ) DBA 装入最新的数据库后备副本(离故障发生时刻最近的转储副本) , 使数据库恢复到转储时的一致性状态;
( 2 ) DBA 装入转储结束时刻的日志文件副本;
( 3 ) DBA 启动系统恢复命令,由DBMS 完成恢复功能,即重做已完成的事务。
3 .什么是封锁?基本的封锁类型有几种?试述它们的含义。
答:封锁就是事务 T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务 T 就对该数据对象有了一定的控制,在事务 T 释放它的锁之前,其他的事务不能更新此数
据对象。封锁是实现并发控制的一个非常重要的技术。
基本的封锁类型有两种:排它锁( Exclusive Locks ,简称 x 锁) 和共享锁 ( Share Locks,简称 S 锁) 。排它锁又称为写锁。若事务 T 对数据对象 A 加上 X 锁,则只允许 T 读取和修改 A ,其他任何事务都不能再对 A 加任何类型的锁,直到 T 释放 A 上的锁。这就保证了其他事务在 T 释放 A 上的锁之前不能再读取和修改 A 。共享锁又称为读锁。若事务 T 对数据对象 A 加上 S 锁,则事务 T 可以读 A 但不能修改 A ,其他事务只能再对 A 加 S 锁,而不能加 X 锁,直到 T 释放 A 上的 S 锁。这就保证了其他事务可以读 A ,但在 T 释放 A 上的 S 锁之前不能对 A 做任何修改。
6 .试述活锁的产生原因和解决方法。
答:活锁产生的原因:当一系列封锁不能按照其先后顺序执行时,就可能导致一些事务无限期等待某个封锁,从而导致活锁。避免活锁的简单方法是采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。
11 .请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁? 答:数据库系统一般采用允许死锁发生, DBMS 检测到死锁后加以解除的方法。 DBMS 中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。