数据库原理复习题

来源:互联网 发布:淘宝日韩女鞋店铺推荐 编辑:程序博客网 时间:2024/06/10 16:01

<<数据库原理>>复习题

 

1.              简述数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系。

答:数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共

享的数据集合。

数据库系统( DataBas Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。

DBS包含DBDBMS

2.              DBMS的主要功能有哪些?

答:数据定义功能;数据组织、存储和管理;数据操纵功能;数据库的事务管理和运行管理;数据库的建立和维护;其它功能,包括DBMS与网络中其它软件系统的通信功能,一个DBMS与另一个DBMS或文件系统的数据转换功能等。

3.              为什么数据库系统具有数据与程序的独立性?

答:数据与程序的独立,把数据的定义从程序中分离出去,加上存取数据的方法又由DBMS负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

4.              数据模型由哪几部分组成?各部分的功能如何?

答:数据模型由数据结构、数据操作和完整性约束三部分构成。

数据结构描述数据库的组成对象以及对象之间的联系。

数据操作指对数据库中各种对象的实例允许执行的操作的集合。是对系统动态特性的描述。

完整性约束是给定的数据模型中数据及其联系所具有的制约和依存规则,用于限定复合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

5.              试述数据库系统三级模式结构。

答:三级模式结构:是指数据库系统是由外模式、模式和内模式三级构成。

模式:也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。定义模式时不仅要定义数据的逻辑结构而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。

外模式:也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与应用有关的数据的逻辑表示。一个数据库可以有多个外模式。它是保证数据库安全性的一个有力措施。

内模式:也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

6.              专门的关系运算符有哪些?各完成什么功能?

答:选择,投影,连接,除运算。

选择是在关系R中选择满足给定条件的诸元素。

投影是从R中选择出若干属性列组成新的关系。

连接是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。

除运算:R S的除运算得到一个新的关系PX),PR中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。

7.              SQL语言有几种使用方式,各自在什么情况下使用?

答:自定义:作为独立语言,在终端交互方式下使用;嵌入式:能嵌入到高级语言中,供程序员设计程序时使用。

8.              什么是视图?它有何优点?

答:视图是从一个或几个基本表(或视图)导出的表。

视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。

视图的作用:视图能够简化用户的操作;视图使用户能以多种角度看待同一数据;视图对重构数据库提供了一定程度的逻辑独立性;视图能够对机密数据提供安全保护;适当的利用视图可以更清晰的表达查询。

9已知学生课程数据库包括三个表:

Student (Sno,Sname,Ssex,Sage,Sdept)

Sno—学号,Sname—姓名,Ssex—性别,Sage—年龄,Sdept—所在系,Sno为主码;

Course (Cno,Cname,Cpno,Ccredit),

     Cno—课程号,Cname—课程名,Cpno—先修课号,Ccredit—学分,Cno为主码;

SC (Sno,Cno,Grade),

    Sno—学号, Cno--课程号,Grade—成绩,(SnoCno)为主码;

SQL语句完成以下任务:

(1)查询年龄在20—23岁(包括20岁和23岁)之间的学生姓名,系别和年龄;

Select sname ,sdept,sage

From student

Where sage >=20 and sage<=23;

(2)查询选修2号课程且成绩在90分以上的所有学生;

Select student.*

From student,SC

Where student.sno=SC.sno and SC.Cno=’2’;

(3)查询选修了课程名为“信息系统”的学生学号和姓名;

Select student.sno,student.sname

From student,course,SC

Where student.sno=SC.sno and SC.cno=sourse.cno and cname=’信息系统’;

(4)查询没有选修1号课程的学生姓名.

Select student.sname

From student,SC

Where student.sno=cs.sno and cs.cno=’1’;

10已知学生课程数据库包括三个表:

Student (Sno,Sname,Ssex,Sage,Sdept),

Sno—学号,Sname—姓名,Ssex—性别,Sage—年龄,Sdept—所在系,Sno为主码;

Course (Cno,Cname,Cpno,Ccredit),

Cno—课程号,Cname—课程名,Cpno—先修课号,Ccredit—学分,Cno为主码;

SC (Sno,Cno,Grade),

    Sno—学号, Cno--课程号,Grade—成绩,(SnoCno)为主码;

完成以下任务:

1)查询没有选修1号课程的学生姓名;(用ALPHA语言表示)

GET  W (student.sname):

    2)查询选修了全部课程的学生号码和姓名;(用关系代数表示)

    3)查询选修了3门以上课程的学生学号;(用SQL语句)

Select sno

From SC

Where count(cno)>=3;

    4)删除计算机系所有学生的选课记录;(用SQL语句)

Delete

Form SC

Where ‘计算机系’=(select sdept

                    From student

                     Where student.sno=SC.sno

);

     (5)建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生;(用SQL语句).

Create view IS_Student

As

Select sno,sname,sage

From student

Where sdept=’IS’

WITH CHECK OPTION

11.试述规范化的概念及1 NF,2NF,3NF,BCNF之间有何关系.

答:一个低一级的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这个过程就是规范化。

BCNF包含于3NF包含于2NF包含于1NF

12.将一个关系模式由1NFà2NFà3NF的转化过程中分别做了哪些工作?

1NFà2NF消除非主属性对码的部分函数依赖;2NFà3NF消除非主属性对码的传递函数依赖;3NFàBCNF消除主属性对码的部分和传递函数依赖。BCNFà4NF消除非平凡且非函数依赖的多值依赖。

13.试述数据库设计的基本步骤。每个步骤分别完成什么任务?

答:各阶段的设计要点如下: ( l )需求分析:准确了解与分析用户需求(包括数据与处

理)。 ( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体

DBMS 的概念模型。 ( 3 )逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模

型,并对其进行优化。 ( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的

物理结构(包括存储结构和存取方法)。 ( 5 )数据库实施:设计人员运用 DBMS 提供的

数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用

程序,组织数据入库,并进行试运行。 ( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改

14一个图书借阅管理数据库要求提供以下服务:

1)可随时查询书库中现有书籍的品种、数量与存放位置,所有各类书籍均可由书号唯一标识;

2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期;

约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性;

3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍;

    约定:一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性;

根据以上情况和假设,完成以下设计:

1)构造满足需求的E-R图;

2)转换为等价的关系模型结构;

3)指出转换结果中每个关系模式的主码.

15某医院病房计算机管理中需要如下信息:

科室:科名,科地址,科电话,医生姓名;

病房:病房号,床位号,所属科室名;

医生:姓名,职称,所属科室名,年龄,工作证号;

病人:病历号,姓名,性别,诊断,主管医生,病房号;

其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。

完成如下设计:

1)设计该计算机管理系统的E-R图;

2)将该E-R图转换为关系模型结构;

3)指出转换结果中每个关系模式的主码.

16设有如下实体:
学生:学号、单位、姓名、性别、年龄、选修课程名
课程:编号、课程名、开课单位、任课教师号
教师:教师号、姓名、性别、职称、讲授课程编号
单位:单位名称、电话、教师号、教师名
上述实体中存在如下联系:
l)一个学生可选修多门课程,一门课程可为多个学生选修;
2)一个教师可讲授多门课程,一门课程可为多个教师讲授;
3)一个单位可有多个教师,一个教师只能属于一个单位。
试完成如下工作:
1)分别设计学生选课和教师任课两个局部信息的结构E-R图。
2)将上述设计完成的E-R图合并成一个全局E-R图。
3)将该全局E-R图转换为等价的关系模型表示的数据库逻辑结构。

 

17.什么是事务?事务的提交和回滚是何含义?

答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

事务的提交:就是提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。事务的回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。

18.在DBMS中为什么要加入数据库恢复功能?

答: 尽管数据库系统中采用了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍然是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失。因此要加入数据库恢复功能。

19.在登记日志文件时为什么先写日志文件后写数据库?

答:把对数据库的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只能完成了一个。如果先写了数据库的修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写了日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性。所以为了安全,一定要先写日志文件,然后写数据库的修改。

20.为什么要引入具有检查点的恢复技术?

答:改善恢复效率。

利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要REDO

哪些事务需要uNDO 。一般来说,需要检查所有日志记录。这样做有两个问题:一是搜索整

个日志将耗费大量的时间;二是很多需要REDO 处理的事务实际上已经将它们的更新操作

结果写到数据库中了,恢复子系统又重新执行了这些操作,浪费了大量时间。

检查点技术就是为了解决这些问题。

21设有两个事务T1T2,它们的并发操作如下图,对这个并发操作给出评价.

              T1                _____  T2

         ①读X=48

                               X=48

         X=X+10写回X               

                              X=X-2写回X

答:两个事务T1T2读入同一数据并修改,T2提交的结构破坏了T1提交的结果,导致T1的修改被丢失。

22在数据库中为什么要有并发控制?

答:当多个用户的并发进程同时进行存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。

23怎样进行系统故障的恢复?

答:系统故障的恢复:

系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入

数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢

复操作就是要撤销(UNDO )故障发生时未完成的事务,重做(REDO )已完成的事务。

系统的恢复步骤是:

1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO 队列)和未完

成的事务队列( uNDO 队列) 。

2 ) 对撤销队列中的各个事务进行UNDO 处理。

进行UNDO 处理的方法是,反向扫描日志文件,对每个UNDO 事务的更新操作执行逆操

作,即将日志记录中“更新前的值”Before Image )写入数据库。( 3 )对重做队列中的各

个事务进行REDO 处理。

进行REDO 处理的方法是:正向扫描日志文件,对每个REDO 事务重新执行日志文件登

记的操作。即将日志记录中“更新后的值”Afte , Image )写入数据库。

24试述活锁的产生原因和解决方法.

答:如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁后系统又批准了T4的请求……T2有可能永远等待下去,这就是活锁。

解决方法:采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排序,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。

25.解释数据库完整性是何含义?

答:数据库完整性是指数据的正确性和相容性。

数据的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。

数据的安全性是指保护数据库防止恶意的破坏和非法的存取。

26.解释数据库安全性是何含义?它与数据库完整性有何区别?

答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存

在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In

Garba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的

存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。

27.试述数据库安全性控制的方法。

答:用户的标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次

用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。

存取控制:通过用户权限定义和合法检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。

视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。

数据加密:对存储的传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等。