的框架,以它为顾家记成由自底向上策略中设计的各局部概念结构。
3、逻辑结构设计
4、物理结构设计
5、数据库实施
6、数据库运行和维护
2、什么是数据库的概念结构设计及其设计步骤,E-R图的设计
E-R图P213
3、什么是数据库的逻辑结构设计?试述其设计步骤?E-R图向关系模型的转换
逻辑结构设计P224
4、数据库的再组织和重构造
第八章:数据库编程
1、嵌入式SQL与主语言之间的通信
2、游标的概念,用法,作用
第十章:数据库恢复技术
1、事务概念和四个特性,恢复技术能保证事务的哪几个特性
事务是用户所定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务具有四个特性:
1、原子性:事务是数据库的逻辑单位,事务中所包括的读项操作要么都做,要么都不做。 2、一致性:事务执行的结果必须是使数据库从某个一致性状态转变到另一个一致性状态。 3、隔离性:一个事务的执行不能被其他事务干扰,即一个事务内部的操作及所试用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 4、持续性:(永久性)事务一旦提交,它对数据库中主句的改变就应该是永久的。接下来的其他操作或昂不应对其执行结果产生任何影响。
为了保证事务的原子性、一致性与持续性。DBMS必须对事务故障、系统故障和介质故障进行恢复;为了保证事务的隔离性和一致性,DBMS需要对并发操作进行控制。
2、数据库中为什么要有恢复子系统?它的功能是什么?
因为计算机系统中的硬件的故障、软件的错误、操作员的失误及恶意的破坏都是不可避免的,这些故障轻则造成当前运行事务非正常中断,影响数据库中数据的正确性,重则会破坏数据库,导致数据库中的全部或部分数据丢失,因此必须要有恢复子系统。
29
恢复子系统的功能:把数据从错误状态恢复到某一已知的正确状态,也称为一致状态或完整状态。
3、日志文件的内容,作用,登记原则P283
日志文件是用来记录事务对数据库所做的更新操作的文件。
目的:进行事务故障恢复;进行系统故障恢复;协助后背副本进行截至故障恢复。 内容:
事务标识(标明是哪个事务); 操作的类型(插入、删除或修改); 操作对象(记录内部标识);
更新前数据的旧值(对插入操作而言,此项为空值) 更新后数据的新值(对删除操作而言,此项为空值) 作用:
1、事务故障恢复和系统故障恢复必须用到日志文件。
2.在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。
3、在静态转储方式中,也可以建立日志文件。当数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对鼓掌发生时尚未完成的事务进行撤销处理。
登记原则:
1、登记的次序严格按并发事务执行的时间测序。 2、必须先写日志文件,后写数据库。
4、数据库恢复的基本技术
P279
5、故障的种类及其影响以及相应的恢复策略
1、事务内部故障的恢复:事务内部故障的恢复由DBMS自动完成,对用户而言是透明的。DBMS执行的恢复步骤如下:
(1)反向扫描文件日志(即从后向前扫描日志文件),查找该事务的更新操作。
(2)对该事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。 (3)继续反向扫描日志文件,进行同样的处理。
(4)如此继续下去,直至独到此事务的开始标记,该事务故障恢复就完成了。
2、系统故障的恢复:会造成数据库处于不一致的状态,主要是一方面,为完成事务对数据库所做的更新可能已写入数据库;另一方面,已提交事务对数据库做的更新可能尚留在缓冲区,未能及时写入数据库。因此恢复操作就是撤销(UNDO)故障发生时为完成的事务,重做(REDO)已完成的事务。恢复步骤如下:
(1)正向扫描日志文件,找出在故障发生之前已经提交的事务队列(REDO队列)和为完成的事务队列(UNDO队列)。
(2)对于撤销队列中的各个事务进行UNDO处理。进行UNDO处理的方法是:反向扫描日志文件,对每个UNDO事务的过呢更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库中。
(3)对重做队列中的各个事务进行REDO处理。进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行日志文件中所登记的操作,激将日志记录中“更新
30
后的值”写入数据库。
3、截至故障的恢复:恢复方法是重装数据库,然后重做已完成的事务,具体操作如下: (1)DBA装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库回复到转储时的一致性状态。
(2)DBA装入转储结束时的日志文件副本。
(3)DBA启动系统恢复命令,有DBMS实现恢复功能,即重做已完成的事务。
6、具有检查点的恢复技术,检查点记录以及包括的内容P287
检查点记录是一类新的日志记录。包括以下内容:
1、建立检查点时刻所有正在执行的事务的清单,如书图T。 2、这些事务最近一个日志记录的地址,如书图D。
第十一章:数据库并发控制技术
1、数据库中为什么要并发控制?能保证事务的哪些特性
数据库是共享资源,通常有许多事务同时运行。
当多个事务并发存取数据库中的数据时,会产生同时读取和/或修改同意数据的情况。若对并发操作不加以控制,可能会存取和存储不正确的数据,破坏数据库的一致性。所以,数据库管理系统必须提供并发控制机制。
并发控制可以保证事务的一致性和隔离性,保证数据库的一致性。
2、并发操作可能产生哪几类数据不一致
1、丢失修改:两个事务1、2同时读入同意数据并进行修改,2所提交的结果破坏(覆盖)了1提交的结果,导致1所做的修改被丢失。
2、不可重复读:事务1读取某一数据后,事务2对其执行更新操作,使1无法再现前一次读取的结果。
3、读‘脏’数据:事务1修改某一数据,将其协会磁盘,事务2读取同意数据后,事务1由于某种原因被撤销,这是事务1已修改过的数据将恢复原值,事务2所读取的数据就与数据库中的数据不一致,则事务2所独到的就是‘脏’数据,即不正确的数据。
避免不一致性的方法是并发控制机制。最常用的并发控制技术是封锁技术。
3、活锁和死锁的概念 P296
4、封锁以及不同的封锁类型和相关的相容性矩阵
5、并发调度的可串行性,冲突可串行性化调度的概念,如何判断一个并发调度是正确的? P299
6、两段锁协议的概念 P301
7、封锁的粒度,多粒度封锁协议 P302
31