1、1. 人工管理阶段:数据不保存,应用程序管理数据,数据不共享,数据不具有独立性2. 文件系统阶段:数据可以长期保存,由文件系统管理数;数据共享性差,冗余度大,数据独立性差3. 数据库系统阶段:数据结构化;数据的共享性高,冗余度低,易扩充;数据独立性高;数据由 DBMS 统一管理和控制4. 试述概念模型的作用:概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。5. 实体:客观存在并可以相互区分的事物叫实体。6. 实体型:具有相同属性的实体具有相同的特
2、征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。7. 实体集:同型实体的集合称为实体集。8. 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。9. 码:惟一标识实体的属性集称为码。10.实体联系图( E 一 R 图):提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型( 1 : 1 , 1 : n 或 m : n ) 。11.关系模型:由关系数据结构、关系操作集合和关系完整性约束三部分组
3、成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 ( l )关系:一个关系对应通常说的一张表; ( 2 )属性:表中的一列即为一个属性; ( 3 )域:属性的取值范围; ( 4 )元组:表中的一行即为一个元组; ( 5 )主码:表中的某个属性组,它可以惟一确定一个元组; ( 6 )分量:元组中的一个属性值; ( 7 )关系模式:对关系的描述,一般表示为关系名(属性 1 ,属性 2 , ,属性 n ) 12. 关系的完整性约束条件:实体完整性,参照完整性和用户定义完整性13.关系数据模型具有下列优点: ( l )关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的
4、。 ( 2 )关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。 ( 3 )关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。14. 试述数据库系统三级模式结构,这种结构的优点是什么?数据库系统的三级模式结构由外模式、模式和内模式组成。外模式,亦称子模式或用户模式,
5、是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给 DBMs 管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象层次的联系和转换
6、,数据库系统在这三级模式之间提供了两层映像:外模式模式映像和模式内模式映像。正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。15.模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式涉及的是数据的局部逻辑结构,通常是模式的子集。内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。 DDL :数据定义语言,用来定义数据库模式、外模式、内模式的语言。 DML :数据操纵语言,用来对数据库中的数据进行查询、插入、删除和修改的语句。16. 关系数据语言可以分为三类:
7、关系代数语言。关系演算语言:元组关系演算语言和域关系演算语言。SQL:具有关系代数和关系演算双重特点的语言。这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。17.关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。18.关系的三类完整性约束:实体完整性,参照完整性,用户定义的完整性。19.关系代数有并、差、笛卡尔积、投影和选择 5 种运算为基本的运算。其他 3 种运算,即交、连接和除,均可以用这 5 种基本运算来表达。20. 自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取
8、权限。防止不合法用户对数据库的存取。21. 强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。22. 数据库的完整性是指数据的正确性和相容性。23.数据的完整性和安全性是两个不同的概念:但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的无效操作和错误结果。后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,
9、完整性措施的防范对象是不合语义的数据。24.DBMS 的完整性控制机制应具有三个方面的功能: ( l )定义功能,即提供定义完整性约束条件的机制; ( 2 )检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;( 3 )违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。25.完整性约束条件是指数据库中的数据应该满足的语义约束条件。一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。26. 数据库设计过程的六个阶段: ( l )需求分析; ( 2 )概念结构设计; ( 3 )逻辑结构设计; (
10、 4 )数据库物理设计; ( 5 )数据库实施; ( 6 )数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。27.存储过程的用户接口:创建存储过程 CREATE Procedure 过程名(参数 1,2)执行存储过程 CALL/PERFORM Procedure 过程名删除存储过程 DROP PROCEDURE 过程名()28. 试述查询优化在关系数据库系统中的重要性和可能性。重要性:关系系统的查询优化既是 RDBMS 实现的关键技术又是关系系统的优点所在。它减轻
11、了用户选择存取路径的负担。用户只要提出“干什么” ,不必指出“怎么干” 。查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化夕做得更好。可能性:这是因为: ( l )优化器可以从数据字典中获取许多统计信息,例如关系中的元组数、关系中每个属性值的分布情况、这些属性上是否有索引、是什么索引( B 树索引还是 HASH 索引或惟一索引或组合索引)等。优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。 ( 2 )如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划。在非关系系统中必须重写程序,而
12、重写程序在实际应用中往往是不太可能的。 ( 3 )优化器可以考虑数十甚至数百种不同的执行计划,从中选出较优的一个,而程序员一般只能考虑有限的几种可能性。 ( 4 )优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术。29.查询优化的一般准则: ( l )选择运算应尽可能先做; ( 2 )把投影运算和选择运算同时进行; ( 3 )把投影同其前或其后的双目运算结合起来执行; ( 4 )把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算; ( 5 )找出公共子表达式; ( 6 )选取合适的连接算法。30. 数据库系统
13、中可能发生各种各样的故障,大致可以分以下几类:(1 )事务内部的故障;(2)系统故障;(3)介质故障;(4)计算机病毒。事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。31. 数据转储和登录日志文件是数据库恢复的基本技术。当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。32. 事务故障的恢复:事务故障的恢复是由 DBMS DBMs 执行恢复步骤是:自动完成的,对用户是透明的。(1 )反向扫描文件日志(即从最后向前扫描日志文件) ,查找该事务的更新操作;(2 )对该事务的更新操作执行逆操作,即将日志记录中
14、“更新前的值”写入数据库;(3 )继续反向扫描日志文件,做同样处理;(4 )如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。33. 系统故障的恢复:系统故障可能会造成数据库处于不一致状态:一是未完成事务对数据库的更新可能已写入数据库;二是已提交事务对数据库的更新可能还留在缓冲区,没来得及写入数据库。因此恢复操作就是要撤销(UNDO )故障发生时未完成的事务,重做( REDO )已完成的事务。系统的恢复步骤是:(1)正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO 队列)和未完成的事务队列(uNDO 队列) 。(2)对撤销队列中的各个事务进行 UNDO 处理。进行
15、 UNDO 处理的方法是,反向扫描日志文件,对每个 UNDO 事务的更新操作执行逆操作,即将日志记录中“更新前的值”Before Image )写入数据库。( 3 )对重做队列中的各个事务进行 REDO 处理。进行 REDO 处理的方法是:正向扫描日志文件,对每个 REDO 事务重新执行日志文件登记的操作。即将日志记录中“更新后的值”Afte , Image )写入数据库。34. 介质故障的恢复:介质故障是最严重的一种故障。恢复方法是重装数据库,然后重做已完成的事务。具体过程是:( 1 ) DBA 装入最新的数据库后备副本(离故障发生时刻最近的转储副本) , 使数据库恢复到转储时的一致性状态;
16、( 2 ) DBA 装入转储结束时刻的日志文件副本;( 3 ) DBA 启动系统恢复命令,由 DBMS 完成恢复功能,即重做已完成的事务。35. 检查点记录是一类新的日志记录。它的内容包括: 建立检查点时刻所有正在执行的事务清单 这些事务的最近一个日志记录的地址。36. 具有检查点的恢复技术有什么优点?试举一个具体的例子加以说明。利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要 REDO ,哪些事务需要 uNDO 。一般来说,需要检查所有日志记录。这样做有两个问题:一是搜索整个日志将耗费大量的时间;二是很多需要 REDO 处理的事务实际上已经将它们的更新操作结果写到数据库
17、中了,恢复子系统又重新执行了这些操作,浪费了大量时间。检查点技术就是为了解决这些问题。在采用检查点技术之前,恢复时需要从头扫描日志文件,而利用检查点技术只需要从 T 。开始扫描日志,这就缩短了扫描日志的时间。事务 Tl 的更新操作实际上已经写到数据库中了,进行恢复时没有必要再REDO 处理,采用检查点技术做到了这一点。37. 什么是封锁?基本的封锁类型有几种?试述它们的含义封锁就是事务 T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务 T 就对该数据对象有了一定的控制,在事务 T 释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的
18、技术。基本的封锁类型有两种:排它锁( 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 ,但在
19、 T 释放 A 上的 S 锁之前不能对 A 做任何修改。38. 什么是活锁?什么是死锁?如果事务 Tl 封锁了数据 R ,事务几又请求封锁 R ,于是几等待。几也请求封锁 R ,当 Tl 释放了 R 上的封锁之后系统首先批准了几的请求,几仍然等待。然后几又请求封锁 R ,当几释放了 R 上的封锁之后系统又批准了几的请求 几有可能永远等待,这就是活锁的情形。活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活。如果事务 Tl 封锁了数据 Rl ,几封锁了数据凡,然后 Tl 又请求封锁几,因几已封锁了几,于是 Tl 等待几释放几上的锁。接着几又申请封锁 Rl ,因 Tl 已封锁了 Rl ,几也只能等待 Tl 释放 Rl 上的锁。这样就出现了 Tl 在等待几,而几又在等待 T 的局面, T 和几两个事务永远不能结束,形成死锁。