的表示方式。例如,记录的存储方式是顺序结构存储还是B树结构存储;索引按什么方式组织;数据是否压缩,是否加密;数据的存储记录结构有何规定等
4. 试述数据库系统的组成。
答:数据库;硬件平台;软件;人员
5. 简述文件系统与数据库系统的区别和联系。
答:区别:(1) 文件系统用文件将数据长期保存在外存上,数据库系统用数据库统一存储数据;(2) 文件系统中的程序和数据有一定的联系,数据库系统中的程序和数据分离;(3) 文件系统用操作系统中的存取方法对数据进行管理,数据库系统用DBMS统一管理和控制数据;(4) 文件系统实现以文件为单位的数据共享,数据库系统实现以记录和字段为单位的数据共享。
联系:1) 均为数据组织的管理技术;(2) 均由数据管理软件管理数据,程序与数据之间用存取方法进行转换;(3) 数据库系统是在文件系统的基础上发展而来的。
6. DBA的职责是什么?
答:负责全面地管理和控制数据库系统。具体职责包括:
① 决定数据库的信息内容和结构; ② 决定数据库的存储结构和存取策略;
③ 定义数据的安全性要求和完整性约束条件; ④ 监督和控制数据库的使用和运行; ⑤ 改进和重组数据库系统。
7. 关系代数的基本运算有哪些 ?
答:并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。
8. 什么是基本表?什么是视图?两者的区别和联系是什么?
答:基本表是本身独立存在的表,在 sQL 中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
9. 简述视图的优点
答:l )视图能够简化用户的操作;
2 )视图使用户能以多种角度看待同一数据; 3 )视图对重构数据库提供了一定程度的逻辑独立性; 4 )视图能够对机密数据提供安全保护
10. 所有的视图是否都可以更新? 哪类视图是可以更新的,哪类视图是不可更新
的?
答:一般的,行列子集试图使可更新的。除此之外,还有些视图理论上可更新,有些理论上不可更新。
目前各个关系数据库一般都只允许对行列子集视图进行更新,对视图的更新还有进一
步的规定。
例如DB2规定:
1)若视图是由两个以上的基本表导出的,则此视图不允许更新。 2)若视图的字段来自字段表达式或常数,则此视图不允许更新。 3)若视图的字段来自集函数,则此视图不允许更新。
4)视图定义中有Group By或Distinct字句,不允许更新。 5)若视图定义中有嵌套查询,并且内层查询的From字句中涉及的表也是导出该视图的基本表,此视图不允许更新。
6)一个不允许更新的视图上定义的视图也不允许更新。
11. 简述 SQL 的特点。
答:1.综合统一 2.高度非过程化 3.面向集合的操作方式 4.以同一种语法结构提供多种使用方式 5.语言简洁,易学易用 6.对于数据统计方便直观
12. 在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理
方式的?
答:游标是用于协调SQL语言的集合处理方式和主语言的单记录处理方式.
SQL语言与主语言具有不同的数据处理方式.SQL语言是面向集合的,一条SQL语句原则上可以产生或处理多条记录.
主语言是面向记录的,一组主变量一次只能存放一条记录.所以仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求,为此嵌入式SQL引入了游标的概念,用游标来协调这两种不同的处理方式.
13. 关系数据库的完整性规则有哪几类?
答:域完整性规则,用于定义属性的取值范围;
域联系的规则,定义一个或多个关系中,属性值间的联系、影响和约束。 关系完整性规则,定义更新操作对数据库中值的影响和限制。
14. 试述查询优化在关系数据库系统中的重要性和可能性。
答:重要性:关系系统的查询优化既是 RDBMS 实现的关键技术又是关系系统的优点所在。它减轻了用户选择存取路径的负担。用户只要提出“干什么”,不必指出“怎么干”。查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化’夕做得更好。
可能性:这是因为: ( l )优化器可以从数据字典中获取许多统计信息,例如关系中的元组数、关系中每个属性值的分布情况、这些属性上是否有索引、是什么索引( B +树索引还是 HASH 索引或惟一索引或组合索引)等。优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。 ( 2 )如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划。在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。 ( 3 )优化器可以考虑数十甚至数百种不同的执行计划,从中选出较优的一个,而程序员一般只能考虑有限的几种可能性。 ( 4 )优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术。
15. 写出 Armstrong 推理规则中自反律、增广律、传递律的形式化定义。
答:自反律:若属性集Y 包含于属性集X,属性集X 包含于U,则X→Y 在R 上成立。(此处X→Y是平凡函数依赖)
增广律:若X→Y 在R 上成立,且属性集Z 包含于属性集U,则XZ→YZ 在R 上成立。 传递律:若X→Y 和 Y→Z在R 上成立,则X →Z 在R 上成立。
16. 简述日志文件的内容。
答:日志文件是用来记录事务对数据库的更新操作的文件。
17. 简述SQL中的自主存取控制机制。
答:同一用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,用户还可将其拥有的存取权限转授给其他用户大型数据库管理系统几乎都支持自主存取控制,目前的SQL标准也对自主存取控制提供支持,这主要通过SQL 的GRANT语句和REVOKE语句来实现。
18. 简述数据库中事务的概念及其性质.
答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有4 个特性:原子性(Atomicity )、一致性(consistency )、隔离性( Isolation )和持续性(Durability )。这4 个特性也简称为ACID 特性。
19. 简述事物的原子性。
答:原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
20. 简述并发操作带来的三类数据不一致性。
答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏’夕数据。 ( l )丢失修改(lost update ) 两个事务 Tl 和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了) Tl 提交的结果,导致 Tl 的修改被丢失。 ( 2 )不可重复读( Non 一 Repeatable Read ) 不可重复读是指事务 Tl 读取数据后,事务几执行更新操作,使 Tl 无法再现前一次读取结果。( 3 )读“脏”数据( Dirty Read ) 读“脏’夕数据是指事务 Tl 修改某一数据,并将其写回磁盘,事务几读取同一数据后, Tl 由于某种原因被撤销,这时 Tl 已修改过的数据恢复原值,几读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据。
21. 在数据库中为什么要并发控制?并发控制技术可以保证事务的哪些特征?
答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制
22. 什么是封锁?基本的封锁类型有几种?
答:封锁就是事务 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 做任何修改。
23. 简述两段封锁协议的内容。
答:1. 在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁。2. 在释放一个封锁之后,事务不再获得任何其他封锁。
24. 简述数据库系统中活锁和死锁的含义。避免活锁的简单方法是什么?
答:活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活.避免活锁的简单方法是采用先来先服务的策略。当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对事务排队,数据对象上的锁一旦释放就批准申请队列中第一个事务获得锁。
25. 什么叫做数据库的恢复?数据库恢复的基本技术有哪些?
答:数据库恢复是指通过技术手段,将保存在数据库中上丢失的电子数据进行抢救和恢复的技术。1、数据转储 2、登录日志文件
26. 简述数据库系统中可能发生的故障类型,以及数据恢复方法。
答:(1)事务内部的故障; (2)系统故障; (3)介质故障; (4)计算机病毒。
27. 简述“运行记录优先原则”。
答:在数据库系统中,写一个修改到数据库中和写一个表示这个修改的登记记录到日志文件中是两个不同的操作,在这两个操作之间有可能发生故障。这时,如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改,那么以后也就无法撤消这个修改。为了安全起见,采用“运行记录优先原则”。它包括两点: (1)至少要等相应运行记录已经写入“日志”文件后,才能允许事务往数据库中写记录。 (2)直至事务的所有运行记录都已写入运行“日志”文件后,才能允许事务完成“END
TRANSACTION”处理。
28. 简述日志文件内容及其作用。
答:(1)日志文件是用来记录事务对数据库的更新操作的文件。
(2)设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副
本进行介质故障恢复。
29. 简述数据库设计过程。
答:这里只概要列出数据库设计过程的六个阶段: ( l)需求分析; ( 2)概念结构设计; ( 3)逻辑结构设计; ( 4 )数据库物理设计; ( 5 )数据库实施; ( 6 )数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。
30. 需求分析阶段的设计目标是什么?调查的内容是什么?
答:需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的内容是“数据”和“处理”,即获得用户对数据库的如下要求: ( l )信息要求,指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据; ( 2 )处理要求,指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理; ( 3 )安全性与完整性要求。
31. 数据字典的内容和作用是什么?
答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括: ( l )数据项; ( 2 )数据结构; ( 3 )数据流; ( 4 )数据存储; ( 5 )处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。
32. 在全局 ER 模型设计过程中,需要消除局部 ER 模型之间存在的哪三种冲
突?
答:属性;结构;命名
33. 简述数据库完整性和安全性的概念。
答:完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
三、SQL
1、有4个关系模式如下:
出版社(出版社编号,出版社名称) 图书(图书编号,书名,出版社编号,定价) 作者(作者编号,姓名)
著书(图书编号,作者编号,作者排序) 注:作者排序=1表示第一作者,依此类推。 用SQL语句,完成: