数据库设计与数据库恢复技术
5.1 数据库设计的步骤
5.2 需求分析第章5
5.3 数据库实施
5.4 数据库运行与维护
5.5 数据库恢复概述
5.6 数据库复制与主 要 内 容第 5章数据库镜像数据库设计的步骤5.1
用户需求的收集和分析,结果得到数据字典描述的数据需求和数据流图描述的处理需求。
⒈ 需求分析阶段,
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS的概念模型,可以用 E-R图表示。
2,概念结构设计阶段:
一,数据库设计的特点:
● 数据库建设是硬件、软件和干件 (技术与管理的界面称为干件 )的结合。
● 数据库设计应该和应用系统设计相结合,在整个设计过程中要把结构 (数据 )设计和行为 (处理、功能 )设计密切结合起来。
二,数据库设计的步骤:
数据库设计是一项涉及多学科的综合性技术,是一项庞大的工程项目。
数据库设计的步骤5.1
为逻辑数据模型选取一个最适合应用环境的物理结构
(包括存储结构和存取方法)。
⒋ 数据库物理设计阶段,
运用 DBMS提供的数据语言(例如 SQL)及其宿主语言
(例如 C),根据逻辑设计和物理设计的结果建立数据库,
编制与调试应用程序,组织数据入库,并进行试运行。
⒌ 数据库实施阶段,
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
⒍ 数据库运行和维护阶段,
将概念结构转换为某个 DBMS所支持的数据模型(例如关系模型),并对其进行优化。
⒊ 逻辑结构设计阶段:
需求分析的任务5.2.1
5.2 需求分析需求分析任务,
通过详细调查现实世界要处理的对象(组织、部门、企业等),
充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
需求分析重点 调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
信息要求是用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。
收集资料,了解用户需求需求分析的方法5.2.2
5.2 需求分析
⑴ 首先调查组织机构情况
⑵ 然后调查各部门的业务活动情况
⑶ 协助用户明确对新系统的各种要求
⑷ 确定新系统的边界用户缺少计算机知识;设计人员缺少用户的专业知识;用户需求发生变化难!
分析和表达用户的需求:
主要包括自顶向下和自底向上两类方法
⑴ 跟班作业
⑵ 开调查会
⑶ 请专人介绍
⑷ 询问
⑸ 设计调查表请用户填写
⑹ 查阅记录
『
常用调查方法』
自顶向下的结构化分析方法
5.2.2 需求分析的方法
5.2 需求分析从最上层的系统组织机构入手,采用逐层分解的方式分析系统,
并且把每一层用数据流图和数据字典描述。
( Structured Analysis),
图书借阅管理系统
1
学 生 数 据图 书 数 据图书库存数据
●
数据流图
5.2.2 需求分析的方法
5.2 需求分析借书 处理系 统
1.1
学生数据借书信息还书 处理系 统
1.2
还书信息图书库存数据
:●
细化的数据流图学生数据学生数据借书信息借 书数 据检 查1.1.2
还书信息图书库存量检查 1.2.1
修改库存状 态
(入)1.1.3
现 有 库 存 数 据修改库存状 态(出)
1.2.2
学 生 数据 检 查
1.1.1
借出图书数据图书库存数据
●
数据字典5.2.3
5.2 需求分析数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典( Data Dictionary)来描述。
数据字典
– 用来说明或描述系统中数据的静态组成结构的
– 数据库系统中所有数据的详尽描述,是各类数据属性的清单
– 包括:
数据项:数据的最小单位
数据结构:若干数据项有意义的集合
数据流:表示某一处理过程的输入或输出
数据存储:处理过程中存取的数据
处理过程:该过程的功能等
– 数据字典在需求分析阶段建立,在数据库设计过程中不断修改、
充实、完善数据字典 (1)5.2.3
5.2 需求分析
“学号”数据项,
数据项,学号含义说明:唯一标识每个学生别名,学生编号类型,字符型长度,8
取值范围,00000000至 99999999
取值含义:前两位标别该学生所在年级,后六位按顺序编号与其他数据项的逻辑关系:
“学生” 数据结构,
数据结构:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组 成,学号,姓名,性别,
年龄,所在系,年级数据字典 (2)5.2.3
5.2 需求分析数据流“体检结果”,
数据流,体检结果说 明,学生参加体格检查的最终结果数据流来源:体检数据流去向:批准组 成,……
平均流量,……
高峰期流量,……
数据存储“学生登记表”,
数据存储,学生登记表说明,记录学生的基本情况流入数据流,……
流出数据流,……
组成,……
数据量,每年 3000张存取方式,随机存取数据字典 (3)5.2.3
5.2 需求分析处理过程“分配宿舍”,
处理过程:分配宿舍说明,为所有新生分配学生宿舍输入,学生,宿舍,
输出,宿舍安排处理,在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于 3平方米。安排新生宿舍其处理时间应不超过 15分钟。
数据库实施5.3
数据库实施主要包括以下工作:
1,用 DDL定义数据库结构
1.筛选数据
2.转换数据格式
3.输入数据
4.校验数据
● 2,组织数据入库
● 3,编制与调试应用程序
4,数据库试运行功能测试:即实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。
性能测试:即测量系统的性能指标,分析是否符合设计目标。
数据库运行与维护5.4
数据库投入运行并不意味着设计过程的终结,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,数据库经常性的维护工作主要是由 DBA完成的,它包括:
⒈ 数据库的转储和恢复
⒉ 数据库的安全性、完整性控制定期对数据库和日志文件进行备份,以保证一旦发生故障,能利用数据库备份及日志文件备份,尽快将数据库恢复到某种一致性状态,并尽可能减少对数据库的破坏。
DBA必须根据用户的实际需要授予不同的操作权限。另外,由于应用环境的变化,数据库的完整性约束条件也会变化,也需要 DBA不断修正,以满足用户要求。
数据库运行与维护5.4
⒊ 数据库性能的监督、分析和改进
⒋ 数据库的重组织和重构造目前许多 DBMS产品都提供了监测系统性能参数的工具,DBA可以利用这些工具方便地得到系统运行过程中一系列性能参数的值。 DBA应该仔细分析这些数据,通过调整某些参数来进一步改进数据库性能。
数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时 DBA就要对数据库进行重组织,或部分重组织(只对频繁增、删的表进行重组织);
若 原有的数据库设计不能满足新的需求,需对数据库结构进行 重构造 。
DBMS一般都提供了重组织数据库用的实用程序,帮助 DBA重新组织数据库。
数据库恢复概述5.5
尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此数据库管理系统(恢复子系统)必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。
恢复子系统是数据库管理系统的一个重要组成部分,占整个系统代码的百分之十以上。
一、事务 (Transaction)
所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元。
一个程序中可以包含多个事务。
事务的开始与结束可以由用户显式控制。
事务是恢复和并发控制的基本单位。
5.5 数据库恢复概述
5.5.1 事务的基本概念
● 用 SQL定义事务在 SQL语言中,定义事务的语句有三条:
COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,
事务正常结束。
ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,
事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始时的状态。
BEGIN TRANSACTION
COMMIT
ROLLBACK
5.5 数据库恢复概述
5.5.1 事务的基本概念事务的基本概念
5.5 数据库恢复概述
5.5.1
二、事务的特性
4.持续性
3.隔离性
2.一致性
1.原子性事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一个事务的执行不能被其他事务干扰。并发执行的各个事务之间不能互相干扰。
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
事务的基本概念
5.5 数据库恢复概述
5.5.1
二、事务的特性
4.持续性
3.隔离性
2.一致性
1.原子性事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一个事务的执行不能被其他事务干扰。并发执行的各个事务之间不能互相干扰。
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
事务的基本概念
5.5 数据库恢复概述
5.5.1
三、破坏事务特性的因素
1,多个事务并行运行时,不同事务的操作交叉执行。
2,事务在运行过程中被强行停止。
数据库管理系统必须保证多个事务的交叉运行不影响这些事务的原子性。
数据库管理系统必须保证被强行终止的事务对数据库和其它事务没有任何影响。
这些就是数据库管理系统中恢复机制和并发控制机制的责任。
故障的种类 (1)
5.5 数据库恢复概述
5.5.2
数据库运行过程中可能发生的故障主要有三类:事务故障、
系统故障、介质故障和计算机病毒。各类故障,对数据库的影响有两种可能性。一是数据库本身被破坏;二是数据库没有破坏,但数据可能不正确。
一、事务故障事务故障意味着事务没有达到预期的终点( COMMIT或 ROLLBACK),
因此,数据库可能处于不正确状态。恢复程序要在不影响其它事务运行的情况下,强行回滚( ROLLBACK)该事务,即撤消该事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动一样。
—— 这类恢复操作称为事务撤消( UNDO)。
二、系统故障三、介质故障这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。
恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消( UNDO)所有未完成事务。重做( Redo)所有已提交的事务这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。
恢复子系统将装入发生故障前某个时刻的数据副本,并重做自此时始的所有成功事务。
故障的种类 (2)
5.5 数据库恢复概述
5.5.2
四、计算机病毒恢复的实现技术
5.5 数据库恢复概述
5.5.3
恢复的基本原理可以用一个词来概括,冗余 。即,数据库中任何一部分被破坏的或不正确的数据可以根据存储在系统别处的冗余数据来重建。
一、数据转储所谓转储即 DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,并重新运行自转储以后的所有更新事务冗余!
建立冗余数据最常用的技术是数据转储和登记日志文件恢复涉及的两个关键问题是,第一,如何建立冗余数据第二,如何利用冗余数据
5.5.3 恢复的实现技术登记日志文件( logging)二、
● 转储可分为静态转储和动态转储:
静态转储是在系统中无运行事务时进行的转储操作。
动态转储是指转储期间允许对数据库进行存取或修改。
● 转储还可以分为海量转储和增量转储两种方式。
● 日志文件的内容
● 日志文件 用来记录事务对数据库的更新操作的文件。
以记录为单位的日志文件以数据块为单位的日志文件
● 日志文件的类型
5.5.3 恢复的实现技术
● 日志文件的内容
各个事务的开始标记
各个事务的结束标记
各个事务的所有更新操作
事务标识(标明是哪个事务)
操作的类型(插入、删除或修改)
操作对象 (记录内部标识 )
更新前数据的旧值
更新后数据的新值每个日志记录的内容主要包括:以记录为单位的日志文件内容:
事务标识
被更新的数据块以数据块为单位的日志文件内容:
恢复的实现技术
5.5 数据库恢复概述
5.5.3
● 日志文件的作用
● 登记日志文件( logging)
事务故障恢复和系统故障必须用日志文件。
1,登记的次序严格按并发事务执行的时间次序。
2,必须先写日志文件,后写数据库。
登记日志文件时必须遵循两条原则:
恢复策略5.5.4
● 介质故障的恢复
● 系统故障的恢复 (由系统在重新启动时自动完成)
● 事务故障的恢复 (由系统自动完成 )
1,反向扫描文件日志,查找该事务的更新操作。
2,对该事务的更新操作执行逆操作。
3,继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
4,如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。
1,正向扫描日志文件,对已经提交事务,将其事务标识记入重做队列;
尚未完成的事务,将其事务标识记入撤消队列。
2,对撤消队列中的各个事务进行撤消 (UNDO)处理。
3,对重做队列中的各个事务进行重做 (REDO)处理。
1.装入最新的数据库后备副本。
2.装入相应的日志文件副本重做已完成的事务。
数据库复制与数据库镜像5.6
一、数据库复制数据库复制指在多各场地保留多个数据库备份,这些备份可以是整个数据库的副本也可以是部分数据库的副本。各个场地的用户可以并发地存取不同的数据库副本。
数据库复制通常有三种方式:对等复制、主 / 从复制和级联复制应用应用复制数据库复制数据库 复制数据库复制数据库事务事务对等复制数据库复制
5.6 数据库复制与数据库镜像一、
数据库复制通常有三种方式:对等复制、主 / 从复制和级联复制应用复制数据库主数据库 复制数据库复制数据库事务主 / 从复制数据库复制通常有三种方式:对等复制、主 / 从复制和级联复制应用复制数据库主数据库 复制数据库复制数据库事务复制数据库 复制数据库级联复制数据库复制
5.6 数据库复制与数据库镜像一、
数据库镜像
5.6 数据库复制与数据库镜像二、
镜像镜像×
复制恢复应用应用应用 2
应用 3
应用 4
read
应用 2
应用 3
应用 4
read
update
update
数据库管理系统提供了数据库镜像( Mirror)功能用于数据库恢复。
即根据 DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去总 结
5.1 数据库设计的步骤
5.2 需求分析
5.3 数据库实施
5.4 数据库运行与维护
● 5.5 数据库恢复概述
5.6 数据库复制与数据库镜像
⒈ 需求分析阶段
⒉概念结构设计阶段
⒊逻辑结构设计阶段
⒋数据库物理设计阶段
⒌数据库实施阶段
⒍数据库运行和维护阶段收集资料,了解用户需求
● 数据字典,● 数据流图事务 (Transaction)
事务的特性故障的种类恢复的实现技术及策略
5.1 数据库设计的步骤
5.2 需求分析第章5
5.3 数据库实施
5.4 数据库运行与维护
5.5 数据库恢复概述
5.6 数据库复制与主 要 内 容第 5章数据库镜像数据库设计的步骤5.1
用户需求的收集和分析,结果得到数据字典描述的数据需求和数据流图描述的处理需求。
⒈ 需求分析阶段,
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS的概念模型,可以用 E-R图表示。
2,概念结构设计阶段:
一,数据库设计的特点:
● 数据库建设是硬件、软件和干件 (技术与管理的界面称为干件 )的结合。
● 数据库设计应该和应用系统设计相结合,在整个设计过程中要把结构 (数据 )设计和行为 (处理、功能 )设计密切结合起来。
二,数据库设计的步骤:
数据库设计是一项涉及多学科的综合性技术,是一项庞大的工程项目。
数据库设计的步骤5.1
为逻辑数据模型选取一个最适合应用环境的物理结构
(包括存储结构和存取方法)。
⒋ 数据库物理设计阶段,
运用 DBMS提供的数据语言(例如 SQL)及其宿主语言
(例如 C),根据逻辑设计和物理设计的结果建立数据库,
编制与调试应用程序,组织数据入库,并进行试运行。
⒌ 数据库实施阶段,
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
⒍ 数据库运行和维护阶段,
将概念结构转换为某个 DBMS所支持的数据模型(例如关系模型),并对其进行优化。
⒊ 逻辑结构设计阶段:
需求分析的任务5.2.1
5.2 需求分析需求分析任务,
通过详细调查现实世界要处理的对象(组织、部门、企业等),
充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
需求分析重点 调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
信息要求是用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。
收集资料,了解用户需求需求分析的方法5.2.2
5.2 需求分析
⑴ 首先调查组织机构情况
⑵ 然后调查各部门的业务活动情况
⑶ 协助用户明确对新系统的各种要求
⑷ 确定新系统的边界用户缺少计算机知识;设计人员缺少用户的专业知识;用户需求发生变化难!
分析和表达用户的需求:
主要包括自顶向下和自底向上两类方法
⑴ 跟班作业
⑵ 开调查会
⑶ 请专人介绍
⑷ 询问
⑸ 设计调查表请用户填写
⑹ 查阅记录
『
常用调查方法』
自顶向下的结构化分析方法
5.2.2 需求分析的方法
5.2 需求分析从最上层的系统组织机构入手,采用逐层分解的方式分析系统,
并且把每一层用数据流图和数据字典描述。
( Structured Analysis),
图书借阅管理系统
1
学 生 数 据图 书 数 据图书库存数据
●
数据流图
5.2.2 需求分析的方法
5.2 需求分析借书 处理系 统
1.1
学生数据借书信息还书 处理系 统
1.2
还书信息图书库存数据
:●
细化的数据流图学生数据学生数据借书信息借 书数 据检 查1.1.2
还书信息图书库存量检查 1.2.1
修改库存状 态
(入)1.1.3
现 有 库 存 数 据修改库存状 态(出)
1.2.2
学 生 数据 检 查
1.1.1
借出图书数据图书库存数据
●
数据字典5.2.3
5.2 需求分析数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典( Data Dictionary)来描述。
数据字典
– 用来说明或描述系统中数据的静态组成结构的
– 数据库系统中所有数据的详尽描述,是各类数据属性的清单
– 包括:
数据项:数据的最小单位
数据结构:若干数据项有意义的集合
数据流:表示某一处理过程的输入或输出
数据存储:处理过程中存取的数据
处理过程:该过程的功能等
– 数据字典在需求分析阶段建立,在数据库设计过程中不断修改、
充实、完善数据字典 (1)5.2.3
5.2 需求分析
“学号”数据项,
数据项,学号含义说明:唯一标识每个学生别名,学生编号类型,字符型长度,8
取值范围,00000000至 99999999
取值含义:前两位标别该学生所在年级,后六位按顺序编号与其他数据项的逻辑关系:
“学生” 数据结构,
数据结构:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组 成,学号,姓名,性别,
年龄,所在系,年级数据字典 (2)5.2.3
5.2 需求分析数据流“体检结果”,
数据流,体检结果说 明,学生参加体格检查的最终结果数据流来源:体检数据流去向:批准组 成,……
平均流量,……
高峰期流量,……
数据存储“学生登记表”,
数据存储,学生登记表说明,记录学生的基本情况流入数据流,……
流出数据流,……
组成,……
数据量,每年 3000张存取方式,随机存取数据字典 (3)5.2.3
5.2 需求分析处理过程“分配宿舍”,
处理过程:分配宿舍说明,为所有新生分配学生宿舍输入,学生,宿舍,
输出,宿舍安排处理,在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于 3平方米。安排新生宿舍其处理时间应不超过 15分钟。
数据库实施5.3
数据库实施主要包括以下工作:
1,用 DDL定义数据库结构
1.筛选数据
2.转换数据格式
3.输入数据
4.校验数据
● 2,组织数据入库
● 3,编制与调试应用程序
4,数据库试运行功能测试:即实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。
性能测试:即测量系统的性能指标,分析是否符合设计目标。
数据库运行与维护5.4
数据库投入运行并不意味着设计过程的终结,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,数据库经常性的维护工作主要是由 DBA完成的,它包括:
⒈ 数据库的转储和恢复
⒉ 数据库的安全性、完整性控制定期对数据库和日志文件进行备份,以保证一旦发生故障,能利用数据库备份及日志文件备份,尽快将数据库恢复到某种一致性状态,并尽可能减少对数据库的破坏。
DBA必须根据用户的实际需要授予不同的操作权限。另外,由于应用环境的变化,数据库的完整性约束条件也会变化,也需要 DBA不断修正,以满足用户要求。
数据库运行与维护5.4
⒊ 数据库性能的监督、分析和改进
⒋ 数据库的重组织和重构造目前许多 DBMS产品都提供了监测系统性能参数的工具,DBA可以利用这些工具方便地得到系统运行过程中一系列性能参数的值。 DBA应该仔细分析这些数据,通过调整某些参数来进一步改进数据库性能。
数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时 DBA就要对数据库进行重组织,或部分重组织(只对频繁增、删的表进行重组织);
若 原有的数据库设计不能满足新的需求,需对数据库结构进行 重构造 。
DBMS一般都提供了重组织数据库用的实用程序,帮助 DBA重新组织数据库。
数据库恢复概述5.5
尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但是计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏仍是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此数据库管理系统(恢复子系统)必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。
恢复子系统是数据库管理系统的一个重要组成部分,占整个系统代码的百分之十以上。
一、事务 (Transaction)
所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元。
一个程序中可以包含多个事务。
事务的开始与结束可以由用户显式控制。
事务是恢复和并发控制的基本单位。
5.5 数据库恢复概述
5.5.1 事务的基本概念
● 用 SQL定义事务在 SQL语言中,定义事务的语句有三条:
COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,
事务正常结束。
ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,
事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始时的状态。
BEGIN TRANSACTION
COMMIT
ROLLBACK
5.5 数据库恢复概述
5.5.1 事务的基本概念事务的基本概念
5.5 数据库恢复概述
5.5.1
二、事务的特性
4.持续性
3.隔离性
2.一致性
1.原子性事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一个事务的执行不能被其他事务干扰。并发执行的各个事务之间不能互相干扰。
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
事务的基本概念
5.5 数据库恢复概述
5.5.1
二、事务的特性
4.持续性
3.隔离性
2.一致性
1.原子性事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一个事务的执行不能被其他事务干扰。并发执行的各个事务之间不能互相干扰。
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
事务的基本概念
5.5 数据库恢复概述
5.5.1
三、破坏事务特性的因素
1,多个事务并行运行时,不同事务的操作交叉执行。
2,事务在运行过程中被强行停止。
数据库管理系统必须保证多个事务的交叉运行不影响这些事务的原子性。
数据库管理系统必须保证被强行终止的事务对数据库和其它事务没有任何影响。
这些就是数据库管理系统中恢复机制和并发控制机制的责任。
故障的种类 (1)
5.5 数据库恢复概述
5.5.2
数据库运行过程中可能发生的故障主要有三类:事务故障、
系统故障、介质故障和计算机病毒。各类故障,对数据库的影响有两种可能性。一是数据库本身被破坏;二是数据库没有破坏,但数据可能不正确。
一、事务故障事务故障意味着事务没有达到预期的终点( COMMIT或 ROLLBACK),
因此,数据库可能处于不正确状态。恢复程序要在不影响其它事务运行的情况下,强行回滚( ROLLBACK)该事务,即撤消该事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动一样。
—— 这类恢复操作称为事务撤消( UNDO)。
二、系统故障三、介质故障这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。
恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消( UNDO)所有未完成事务。重做( Redo)所有已提交的事务这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。
恢复子系统将装入发生故障前某个时刻的数据副本,并重做自此时始的所有成功事务。
故障的种类 (2)
5.5 数据库恢复概述
5.5.2
四、计算机病毒恢复的实现技术
5.5 数据库恢复概述
5.5.3
恢复的基本原理可以用一个词来概括,冗余 。即,数据库中任何一部分被破坏的或不正确的数据可以根据存储在系统别处的冗余数据来重建。
一、数据转储所谓转储即 DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,并重新运行自转储以后的所有更新事务冗余!
建立冗余数据最常用的技术是数据转储和登记日志文件恢复涉及的两个关键问题是,第一,如何建立冗余数据第二,如何利用冗余数据
5.5.3 恢复的实现技术登记日志文件( logging)二、
● 转储可分为静态转储和动态转储:
静态转储是在系统中无运行事务时进行的转储操作。
动态转储是指转储期间允许对数据库进行存取或修改。
● 转储还可以分为海量转储和增量转储两种方式。
● 日志文件的内容
● 日志文件 用来记录事务对数据库的更新操作的文件。
以记录为单位的日志文件以数据块为单位的日志文件
● 日志文件的类型
5.5.3 恢复的实现技术
● 日志文件的内容
各个事务的开始标记
各个事务的结束标记
各个事务的所有更新操作
事务标识(标明是哪个事务)
操作的类型(插入、删除或修改)
操作对象 (记录内部标识 )
更新前数据的旧值
更新后数据的新值每个日志记录的内容主要包括:以记录为单位的日志文件内容:
事务标识
被更新的数据块以数据块为单位的日志文件内容:
恢复的实现技术
5.5 数据库恢复概述
5.5.3
● 日志文件的作用
● 登记日志文件( logging)
事务故障恢复和系统故障必须用日志文件。
1,登记的次序严格按并发事务执行的时间次序。
2,必须先写日志文件,后写数据库。
登记日志文件时必须遵循两条原则:
恢复策略5.5.4
● 介质故障的恢复
● 系统故障的恢复 (由系统在重新启动时自动完成)
● 事务故障的恢复 (由系统自动完成 )
1,反向扫描文件日志,查找该事务的更新操作。
2,对该事务的更新操作执行逆操作。
3,继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
4,如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。
1,正向扫描日志文件,对已经提交事务,将其事务标识记入重做队列;
尚未完成的事务,将其事务标识记入撤消队列。
2,对撤消队列中的各个事务进行撤消 (UNDO)处理。
3,对重做队列中的各个事务进行重做 (REDO)处理。
1.装入最新的数据库后备副本。
2.装入相应的日志文件副本重做已完成的事务。
数据库复制与数据库镜像5.6
一、数据库复制数据库复制指在多各场地保留多个数据库备份,这些备份可以是整个数据库的副本也可以是部分数据库的副本。各个场地的用户可以并发地存取不同的数据库副本。
数据库复制通常有三种方式:对等复制、主 / 从复制和级联复制应用应用复制数据库复制数据库 复制数据库复制数据库事务事务对等复制数据库复制
5.6 数据库复制与数据库镜像一、
数据库复制通常有三种方式:对等复制、主 / 从复制和级联复制应用复制数据库主数据库 复制数据库复制数据库事务主 / 从复制数据库复制通常有三种方式:对等复制、主 / 从复制和级联复制应用复制数据库主数据库 复制数据库复制数据库事务复制数据库 复制数据库级联复制数据库复制
5.6 数据库复制与数据库镜像一、
数据库镜像
5.6 数据库复制与数据库镜像二、
镜像镜像×
复制恢复应用应用应用 2
应用 3
应用 4
read
应用 2
应用 3
应用 4
read
update
update
数据库管理系统提供了数据库镜像( Mirror)功能用于数据库恢复。
即根据 DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去总 结
5.1 数据库设计的步骤
5.2 需求分析
5.3 数据库实施
5.4 数据库运行与维护
● 5.5 数据库恢复概述
5.6 数据库复制与数据库镜像
⒈ 需求分析阶段
⒉概念结构设计阶段
⒊逻辑结构设计阶段
⒋数据库物理设计阶段
⒌数据库实施阶段
⒍数据库运行和维护阶段收集资料,了解用户需求
● 数据字典,● 数据流图事务 (Transaction)
事务的特性故障的种类恢复的实现技术及策略