《第二章数据库系统基本原理.ppt》由会员分享,可在线阅读,更多相关《第二章数据库系统基本原理.ppt(109页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章 数据库系统基本原理2006.2学习重点 n层层次次模模型型、网网状状模模型型和和关关系系模模型型及及其其各各自自的的优优缺点缺点n数据库设计的基本步骤数据库设计的基本步骤n事务和并发的概念事务和并发的概念n数据库恢复技术数据库恢复技术21 数据模型 n数数据据模模型型(Data Data ModelModel)是是一一种种现现实实世世界界数数据据特征的抽象,是对现实世界的模拟。特征的抽象,是对现实世界的模拟。n数据模型应满足三方面的要求:数据模型应满足三方面的要求:n能比较真实地模拟现实世界;能比较真实地模拟现实世界;n容易被人们理解;容易被人们理解;n便于在计算机上实现。便于在计算机
2、上实现。211 数据模型概述 目目前前模模型型划划分分为为概概念念模模型型和和数数据据模模型型两两个个层层次。次。n概概念念模模型型也也称称为为信信息息模模型型,它它是是按按用用户户的的观观点点对数据和信息建模型,主要用于数据库设计。对数据和信息建模型,主要用于数据库设计。n数据模型是数据模型是按计算机系统的观点按计算机系统的观点对数据建模,对数据建模,主要用于主要用于DBMSDBMS的实现,主要包括网状模型、层的实现,主要包括网状模型、层次模型和关系模型等。次模型和关系模型等。信息世界,建立概念模型机器世界,DBMS支持的数据模型认识抽象转换现实世界数据模型组成(1 1)数据结构)数据结构
3、它是指数据库中数据的有关性质和数据之间的它是指数据库中数据的有关性质和数据之间的联系,它是对系统静态特性的描述。联系,它是对系统静态特性的描述。(2 2)数据操作)数据操作 它是指对数据库中允许执行的操作的集合。数它是指对数据库中允许执行的操作的集合。数据操作是对系统动态特性的描述。据操作是对系统动态特性的描述。(3 3)数据的约束条件)数据的约束条件 它是一组完整性规则的集合。它是一组完整性规则的集合。212 概念模型 概念模型是面向现实世界的,而不是面概念模型是面向现实世界的,而不是面向实现,它是为了有效和自然地模拟现实世界,向实现,它是为了有效和自然地模拟现实世界,是数据库设计人员和用户
4、之间进行交流的语言,是数据库设计人员和用户之间进行交流的语言,是数据库设计的有力工具。是数据库设计的有力工具。1基本概念(1 1)实体)实体 实体是客观存在并可相互区别的事物。实体是客观存在并可相互区别的事物。(2 2)实体集)实体集 具有相同的某些性质的实体集合称为实体集。具有相同的某些性质的实体集合称为实体集。(3 3)属性)属性 实体所具有的某一特性称为属性。一个实体可以由实体所具有的某一特性称为属性。一个实体可以由若干个属性来描述。若干个属性来描述。(4 4)域)域 每个属性都有取值范围,属性的取值范围称为该属每个属性都有取值范围,属性的取值范围称为该属性的域。性的域。(5 5)码)码
5、 能能够够唯一唯一标识实标识实体的属性或属性集称体的属性或属性集称为码为码。1基本概念(6 6)联系)联系两个实体之间的联系可分为三类:两个实体之间的联系可分为三类:一对一联系(一对一联系(1 1:1 1)一对多联系(一对多联系(1 1:n n)多多对对多多联联系(系(m m:n n)1校长管理学校11班学习学生nm学生选课课程n两个实体型间的联系 n一对一联系一对一联系n如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1。n实例实例班级与班长之间的联系:一个班级只有一个正班长一个班长只在一个班中任职两个实体型间的联系(
6、续)n一对多联系一对多联系n如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系 记为1:nn实例实例班级与学生之间的联系:一个班级中有若干名学生,每个学生只在一个班级中学习两个实体型间的联系(续)n多对多联系(多对多联系(m:n)n如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体B具有多对多联系。记为m:nn实例实例课程与学生之间的联系:一门课程同时有若干个学
7、生选修一个学生可以同时选修多门课程多个实体型间的联系(续)n多个实体型间的一对多联系多个实体型间的一对多联系n若实体集E1,E2,.,En存在联系,对于实体集Ej(j=1,2,.,i-1,i+1,.,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,.,Ei-1,Ei+1,.,En之间的联系是一对多的。多个实体型间的联系(续)n实例实例 课程、教师与参考书三个实体型如果一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用课程与教师、参考书之间的联系是一对多的E-R图n概念模型的标识方法很多。最常用的是概念模型的标识方法
8、很多。最常用的是1976年年P.P.S.Chen提出的实体联系方法,该方法提出的实体联系方法,该方法用用E-R图描述概念模型。图描述概念模型。n实体型实体型n用矩形表示,矩形框内写明实体名。用矩形表示,矩形框内写明实体名。学生学生教师教师E-R图(续)n属性属性n用椭圆形表示,并用无向边将其与相应的实体连用椭圆形表示,并用无向边将其与相应的实体连接起来接起来学生学生学号学号年龄年龄性别性别姓名姓名E-R图(续)n联系联系n联系本身联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)n联系的属性联系的属性:联系本身也是
9、一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来联系的表示方法实体型实体型1联系名联系名实体型实体型2111:1联系联系实体型实体型1联系名联系名实体型实体型2mnm:n联系联系实体型实体型1联系名联系名实体型实体型21n1:n联系联系联系的表示方法示例班级班级班级班级-班长班长班长班长111:1联系联系课程课程选修选修学生学生mnm:n联系联系班级班级组成组成学生学生1n1:n联系联系联系的表示方法示例(续)课程课程讲授讲授教师教师1m多个实体型间的多个实体型间的1:n联系联系参考书参考书n联系属性的表示方法课程课程选修选修学生学生mn成绩成绩2E-R图
10、 E-RE-R图描述概念模型,图描述概念模型,E-RE-R方法也称为方法也称为E-RE-R模型。模型。例如,在学生选课的概念模型中,涉及到如下实体:例如,在学生选课的概念模型中,涉及到如下实体:学学生生:属属性性有有学学号号、姓姓名名、性性别别、出出生生日日期期、系系别别、专业。学生实体及其属性如图所示。专业。学生实体及其属性如图所示。课程学号姓名出生日期专业性别系别2E-R图 课程:课程号、课程名、学分。课程实体及课程:课程号、课程名、学分。课程实体及其属性如图所示。其属性如图所示。课程课程号课程名学分2E-R图 学生实体与课程实体之间是选课的关系,由于每个学生可学生实体与课程实体之间是选课
11、的关系,由于每个学生可以选多门课程,而每门课程又可以由多门学生选修,因以选多门课程,而每门课程又可以由多门学生选修,因此,它们之间是多对多的关系。学生选课此,它们之间是多对多的关系。学生选课E-RE-R图如图所示。图如图所示。m学生学号姓名出生日期专业性别系别课程课程号课程名学分选课n常用数据模型n非关系模型非关系模型n层次模型(Hierarchical Model)n网状模型(Network Model)常用数据模型(续)n关系模型关系模型(RelationalModel)n数据结构:表数据结构:表n面向对象模型面向对象模型(ObjectOrientedModel)n数据结构:对象数据结构:
12、对象213层次数据模型 1模型结构模型结构层次模型用树形结构表示各类实体以及层次模型用树形结构表示各类实体以及实体间的联系。实体间的联系。在在数数据据库库中中满满足足下下面面两两个个条条件件的的基基本本层层次次联系的集合是层次模型:联系的集合是层次模型:(1 1)有有且且只只有有一一个个结结点点没没有有双双亲亲结结点点,这这个个结结点自然为根结点;点自然为根结点;(2 2)根结点以外的其他结点有且只有一个双)根结点以外的其他结点有且只有一个双亲结点。亲结点。1模型结构 例如,学校人员数据库的层次模型如图所示。例如,学校人员数据库的层次模型如图所示。教师学生学校名称学校地址系编号系名地址部门名称
13、部门地址教研室编号教研室名称学号学生姓名教师号姓名职工号姓名学校系行政机关教研室职工2层次数据模型的优缺点 层次模型的主要优点:层次模型的主要优点:(1 1)层次数据模型本身比较简单。)层次数据模型本身比较简单。(2 2)层层次次模模型型对对具具有有一一对对多多的的层层次次关关系系的的部部门门描描述述非非常常自自然然、直观,容易理解。直观,容易理解。(3 3)层次数据模型提供了良好的完整性支持。)层次数据模型提供了良好的完整性支持。层次模型的主要缺点:层次模型的主要缺点:(1 1)在在现现实实世世界界中中有有很很多多非非层层次次性性的的联联系系,如如多多对对多多的的联联系系,一一个个结结点点具
14、具有有多多个个父父结结点点等等,层层次次模模型型表表示示这这类类联联系系的的方方法法很笨拙。很笨拙。(2 2)对于插入和删除操作的限制比较多。)对于插入和删除操作的限制比较多。(3 3)查询子结点必须通过父结点。)查询子结点必须通过父结点。(4 4)由于结构严密,层次命令趋于程序化。)由于结构严密,层次命令趋于程序化。214网状数据模型 1 1模型结构模型结构网网状状数数据据库库采采用用网网状状模模型型作作为为数数据据的的组组织织方方式式,网网状状模模型型允允许许多多个个结结点点没没有有父父结结点点,允允许许结结点点有有多多个个父父结结点点,允允许许两两个个结结点点之之间间有有多多种种联联系系
15、。也也就就是是说说把把满满足足以以下下两两个个条条件件的的基基本本联联系系集集合合称为网状模型:称为网状模型:(1 1)允许一个以上的结点无父结点;)允许一个以上的结点无父结点;(2 2)一个结点可以有多于一个的双亲。)一个结点可以有多于一个的双亲。实际上层次模型是网状模型的一个特例。实际上层次模型是网状模型的一个特例。1模型结构 例如,一名学生选修多门课程可用例如,一名学生选修多门课程可用“学学生生选课选课”的系表示它们之间的联系。学生的系表示它们之间的联系。学生选课的网状模型如图所示。选课的网状模型如图所示。学号姓名系别学号课程号成绩课程号课程名学分别学生课程选课学 生 选课课 程 选课2
16、网状数据模型的优缺点 网状模型的主要优点:网状模型的主要优点:(1 1)网状模型能够更直接地描述现实世界。)网状模型能够更直接地描述现实世界。(2 2)具有良好的性能,存取效率较高。)具有良好的性能,存取效率较高。网状模型的主要缺点:网状模型的主要缺点:(1 1)网网状状数数据据模模型型结结构构比比较较复复杂杂,应应用用越越大大,数据库的结构越复杂。数据库的结构越复杂。(2 2)网状数据库使用复杂,用户不容易掌握。)网状数据库使用复杂,用户不容易掌握。215关系数据模型 1 1模型结构模型结构关系数据模型是用二维表格数据表示实体和实体间的关系数据模型是用二维表格数据表示实体和实体间的联系。例如
17、,学生基本信息可用表联系。例如,学生基本信息可用表2-12-1表示。表示。学生基本信息表学生基本信息表学号姓名性别系别20040101张大海男计算机科学系20040102王丽丽女数学系20040103杨 超男外语系.2关系数据模型的优缺点 关系模型的主要优点:关系模型的主要优点:(1 1)关关系系模模型型是是建建立立在在严严格格的的数数学学概概念念基基础础上上的,以集合论、关系代数为基础。的,以集合论、关系代数为基础。(2 2)关关系系模模型型的的概概念念单单一一,数数据据结结构构简简单单用用户户易懂易用。易懂易用。(3 3)具有较高的数据独立性。)具有较高的数据独立性。关系模型的主要缺点是运
18、行效率不够高。关系模型的主要缺点是运行效率不够高。关系代数n传统的集合运算传统的集合运算n专门的关系运算专门的关系运算2.4.1 传统的集合运算n并并n差差n交交n广义笛卡尔积广义笛卡尔积1.并(Union)nR和和Sn具有相同的目具有相同的目n(即两个关系都有(即两个关系都有n个属性)个属性)n相应的属性取自同一个域相应的属性取自同一个域nR Sn仍为仍为n目关系,由属于目关系,由属于R或属于或属于S的元组组成的元组组成 R S=t|t R t S 并(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c
19、1RSRS2.差(Difference)nR和和Sn具有相同的目具有相同的目nn相应的属性取自同一个域相应的属性取自同一个域nR-Sn仍仍为为n目目关关系系,由由属属于于R而而不不属属于于S的的所所有有元元组组组组成成R-S=t|t R t S差(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S3.交(Intersection)nR和和Sn具有相同的目具有相同的目nn相应的属性取自同一个域相应的属性取自同一个域nRSn仍仍为为n目目关关系系,由由既既属属于于R又又属属于于S的的元元组组组组成成 RS=t|t R t S RS=
20、R(R-S)交(续)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S4.广义笛卡尔积(Extended Cartesian Product)nRnn目关系,目关系,k1个元组个元组nSnm目关系,目关系,k2个元组个元组nRSn列:(列:(n+m)列的元组的集合)列的元组的集合n元组的前元组的前n列是关系列是关系R的一个元组的一个元组n后后m列是关系列是关系S的一个元组的一个元组n行:行:k1k2个元组个元组nRS=trts|tr R ts S广义笛卡尔积(续)ABCa1 b1c1a1 b2c2a2 b2c1ABCa1
21、b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR SABCa1b2 c2a1b3 c2a2b2 c1a1b2 c2a1b3 c2a2b2 c1a1b2 c2a1b3 c2a2b2 c12.4 关系代数n概述概述n传统的集合运算传统的集合运算n专门的关系运算专门的关系运算2.4.2 专门的关系运算n选择选择n投影投影n连接连接1.选择(Selection)n1)选择又称为限制(选择又称为限制(Restriction)n2)选择运算符的含义选择运算符的含义n在关系在关系R中选择满足给定条件的诸元
22、组中选择满足给定条件的诸元组F(R)=t|t R F(t)=真真nF:选择条件,是一个逻辑表达式,基本形式为:选择条件,是一个逻辑表达式,基本形式为:(X1Y1)(X2Y2)n:比较运算符(,:比较运算符(,或,或)nX1,Y1等等:属属性性名名、常常量量、简简单单函函数数;属属性性名名也也可可以以用用它的序号来代替;它的序号来代替;n:逻辑运算符(:逻辑运算符(或或)n:表示任选项:表示任选项n:表示上述格式可以重复下去:表示上述格式可以重复下去选择(续)n3)选择运算是从行的角度进行的运算选择运算是从行的角度进行的运算n4)举例举例设设有有一一个个学学生生-课课程程数数据据库库,包包括括学
23、学生生关关系系Student、课程关系、课程关系Course和选修关系和选修关系SC。选择(续)学学号号Sno姓姓名名Sname性性别别Ssex年年龄龄Sage所所在在系系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS(a)Student选择(续)(b)Course课程号课程号课程名课程名先行课先行课学分学分CnoCnameCpnoCcredit1数据库数据库542数学数学23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理27PASCAL语言语言64例9选择(续)(c)SC学
24、学号号课课程程号号成成绩绩SnoCnoGrade9500119295001285950013889500229095002380例7例9选择(续)例例1查询信息系(查询信息系(IS系)全体学生系)全体学生Sdept=IS(Student)或或5=IS(Student)结果:结果:SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95004张立张立男男19IS选择(续)例例2查询年龄小于查询年龄小于20岁的学生岁的学生Sage20(Student)或或40)0)Period Period intint CHECK(Period0)CHECK(Period0)Primary
25、key(Primary key(CnoCno)2数据装载 数据装载方法有:人工方法和计算机辅助数据入库。数据装载方法有:人工方法和计算机辅助数据入库。人工方法适用于小型系统,其步骤如下:(1)筛选数据。(2)转换数据格式。(3)输入数据。(4)校验数据。计算机辅助数据入库:适用于中大型系统,其步骤如下:(1)筛选数据(2)输入数据。(3)校验数据。(4)转换数据。(5)综合数据。3编制与调试应用程序 数据库应用程序的设计应该与数据设计并数据库应用程序的设计应该与数据设计并行进行。行进行。在数据库实施阶段,当数据库结构建立在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的应用程
26、好后,就可以开始编制与调试数据库的应用程序。调试应用程序时由于数据入库尚未完成,序。调试应用程序时由于数据入库尚未完成,可先使用模拟数据。可先使用模拟数据。4数据库试运行 数数据据库库试试运运行行也也称称为为联联合合调调试试,其其主主要要工工作作包包括:括:(1 1)功能测试。)功能测试。(2 2)性能测试)性能测试。在数据在数据库试库试运行运行阶阶段,系段,系统还统还不不稳稳定,定,硬、硬、软软件故障随件故障随时时都可能都可能发发生,系生,系统统的操作人的操作人员对员对新系新系统还统还不熟悉,不熟悉,误误操作也不可避免,因操作也不可避免,因此必此必须须做好数据做好数据库库的的转储转储和恢复工
27、作,尽量减和恢复工作,尽量减少少对对数据数据库库的破坏。的破坏。245数据库的实施和维护 数据库的转储和恢复数据库的转储和恢复 数据库的安全性、完整性控制数据库的安全性、完整性控制数据库性能的监督、分析和改进数据库性能的监督、分析和改进数据库的重组织和重构造数据库的重组织和重构造(1 1)数据库的重组织)数据库的重组织(2 2)数据库的重构造)数据库的重构造25 数据库保护 251 事务的基本概念1 1什么是事务什么是事务 事务事务(Transaction)Transaction)是用户定义的一个数据库操作是用户定义的一个数据库操作序列,是一个不可分割的工作单位。一旦事务开始运行,序列,是一个
28、不可分割的工作单位。一旦事务开始运行,必须做完事务中的所有操作。必须做完事务中的所有操作。例如,在关系数据库中,一个事务可以是一条例如,在关系数据库中,一个事务可以是一条SQLSQL语语句,一组句,一组SQLSQL语句或整个程序,一个应用程序通常包含语句或整个程序,一个应用程序通常包含多个事务。多个事务。事务和程序是两个概念。程序是静止的,事务是动事务和程序是两个概念。程序是静止的,事务是动态的,是程序的某一次执行。事务是恢复和并发控制的态的,是程序的某一次执行。事务是恢复和并发控制的基本单位。基本单位。事务的定义方式(1)显示定义方式)显示定义方式BEGINTRANSATIONBEGINTR
29、ANSACTIONSQL语句语句1SQL语句语句1SQL语句语句2SQL语句语句2 COMMITROLLBACK (2 2)隐式方式隐式方式 当用户没有显式地定义事务时,当用户没有显式地定义事务时,DBMSDBMS按缺省规按缺省规定自动划分事务定自动划分事务2事务的特性(ACID特性)(1 1)原子性()原子性(AtomicAtomicityity)(2 2)一致性()一致性(CoConsistencynsistency)(3 3)隔离性(隔离性(IsolationIsolation)(4 4)持续性(持续性(Durability Durability)保证事务保证事务ACIDACID特性是事
30、务处理的重要任务。破坏事特性是事务处理的重要任务。破坏事务务ACIDACID特性的因素有:特性的因素有:(1 1)多个事务并行运行时,不同事务的操作交叉执行。多个事务并行运行时,不同事务的操作交叉执行。(2 2)事务在运行过程中被强行停止。事务在运行过程中被强行停止。数据数据库库管理系管理系统统必必须须保保证证多个事多个事务务并行运行并行运行时时不影响不影响这这些事些事务务的原子性;必的原子性;必须须保保证证被被被被终终止的事止的事务对务对数据数据库库和其他事和其他事务务没有任何影响。没有任何影响。252 并发控制 数据库系统一般都是多用户系统,它支数据库系统一般都是多用户系统,它支持多个不同
31、程序同时存取数据库中相同的数据,持多个不同程序同时存取数据库中相同的数据,或同一程序的多个独立执行同时存取数据库中或同一程序的多个独立执行同时存取数据库中相同的数据,因此,系统必须控制这种并发操相同的数据,因此,系统必须控制这种并发操作,防止它们彼此干扰,保证数据的正确性,作,防止它们彼此干扰,保证数据的正确性,这就是这就是“并发控制并发控制”。事务并发执行可能会存。事务并发执行可能会存取和存储不正确的数据,破坏事务的隔离性和取和存储不正确的数据,破坏事务的隔离性和数据库的一致性。因此,必须提供并发控制机数据库的一致性。因此,必须提供并发控制机制。制。T1的修改被T2覆盖了!读读A=16AA-
32、3写回写回A=13读读A=16AA-1写回写回A=15事务事务T2事务事务T1数据不一致实例:飞机订票系统数据不一致实例:飞机订票系统1多事务执行方式(1)(1)事务串行执行事务串行执行;(2);(2)交叉并发方式交叉并发方式;(3)(3)同同时并发方式时并发方式并并发发控控制制机机制制是是衡衡量量一一个个数数据据库库性性能能的的重重要要标标志志之之一一。但但并并发发操操作作可可以以会会带带来来以以下下几几种数据不一致性。种数据不一致性。并发操作带来的数据不一致性n丢失修改(丢失修改(lostupdate)n不可重复读(不可重复读(non-repeatableread)n读读“脏脏”数据(数据
33、(dirtyread)1.丢失修改丢失修改是指事务丢失修改是指事务1与事务与事务2从数据库中读从数据库中读入同一数据并修改入同一数据并修改事务事务2的提交结果破坏了事务的提交结果破坏了事务1提交的结果,提交的结果,导致事务导致事务1的修改被丢失。的修改被丢失。图8.1 三种数据不一致性 T1T2读读A=16AA-1写回写回A=15读读A=16AA-1写回写回A=15(a)丢失修改丢失修改2.不可重复读不可重复读是指事务不可重复读是指事务1读取数据后,事务读取数据后,事务2执行更新操作,使事务执行更新操作,使事务1无法再现前一次读无法再现前一次读取结果。取结果。三类不可重复读事务事务1读取某一数
34、据后:读取某一数据后:1。事务事务2对其做了修改,对其做了修改,当事务当事务1再次读该再次读该数据时,得到与前一次不同的值。数据时,得到与前一次不同的值。2.事务事务2删除了其中部分记录删除了其中部分记录,当事务,当事务1再次再次读取数据时,发现某些记录神密地消失了。读取数据时,发现某些记录神密地消失了。3.事务事务2插入了一些记录插入了一些记录,当事务,当事务1再次按相再次按相同条件读取数据时,发现多了一些记录。同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为后两种不可重复读有时也称为幻影幻影现象(现象(phantomrow)图8.1 三种数据不一致性(续)读读B=100BB*
35、2写回写回B=200读读A=50读读B=100求和求和=150读读A=50读读B=200求和求和=250(验算不对验算不对)T2T1(b)不可重复读不可重复读3.读“脏”数据事务事务1修改某一数据,并将其写回磁盘修改某一数据,并将其写回磁盘事务事务2读取同一数据后读取同一数据后事务事务1由于某种原因被撤消,这时事务由于某种原因被撤消,这时事务1已修改过已修改过的数据恢复原值的数据恢复原值事务事务2读到的数据就与数据库中的数据不一致,读到的数据就与数据库中的数据不一致,是不正确的数据,又称为是不正确的数据,又称为“脏脏”数据。数据。图8.1 三种数据不一致性(续)读读C=200读读C=100CC
36、*2写回写回CROLLBACKC恢复为恢复为100T2T1(c)读读“脏脏”数据数据2.封锁 封锁是事务封锁是事务T T在对某个数据对象(例如表、记在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁,录等)操作之前,先向系统发出请求,对其加锁,加锁后事务加锁后事务T T就对该数据对象有了一定的控制,在就对该数据对象有了一定的控制,在事务事务T T释放它的锁之前,其它的事务不能更新此数释放它的锁之前,其它的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的据对象。封锁是实现并发控制的一个非常重要的技术。基本封锁类型有:技术。基本封锁类型有:(1 1)排它锁(排它锁(e
37、XclusiveeXclusive lock lock,简记为简记为X X锁)锁)排排它它锁锁又又称称为为写写锁锁。若若事事务务T T对对数数据据对对象象A A加加上上X X锁锁,则则只只允允许许T T读读取取和和修修改改A A,其其它它任任何何事事务务都都不不能能再再对对A A加任何类型的锁,直到加任何类型的锁,直到T T释放释放A A上的锁上的锁2.封锁(2 2)共享锁()共享锁(Share lockShare lock,简记为简记为S S锁)锁)共享共享锁锁又称又称为读锁为读锁。若事。若事务务T T对对数据数据对对象象A A加上加上S S锁锁,则则其它事其它事务务只能再只能再对对A A加
38、加S S锁锁,而不能加,而不能加X X锁锁,直到,直到T T释释放放A A上的上的S S锁锁 .253 数据库备份与恢复 在计算机系统中各种故障和一些恶意破在计算机系统中各种故障和一些恶意破坏是不可避免的,这时就有可能造成数据的丢坏是不可避免的,这时就有可能造成数据的丢失,因此,数据库系统必须采取必要的措施,失,因此,数据库系统必须采取必要的措施,保证数据受到损失时能恢复,数据库系统出现保证数据受到损失时能恢复,数据库系统出现故障时能让数据库系统还原到正确的状态。故障时能让数据库系统还原到正确的状态。1数据库故障的种类(1 1)计算机硬件故障)计算机硬件故障(2 2)系统故障)系统故障(3 3
39、)事务内部的故障)事务内部的故障(4 4)恶意的破坏)恶意的破坏 总之,各类故障对数据库的影响有两种总之,各类故障对数据库的影响有两种可能,一是数据库本身受到破坏,另一类是数可能,一是数据库本身受到破坏,另一类是数据库没有被破坏,由于事务的运行被非正常终据库没有被破坏,由于事务的运行被非正常终止,使得数据可能不正确。这时需要用恢复技止,使得数据可能不正确。这时需要用恢复技术,保证数据库的正确性和一致性。术,保证数据库的正确性和一致性。2恢复技术 恢复操作的基本原理是建立冗余数据,利用存储在恢复操作的基本原理是建立冗余数据,利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正系统其它地方
40、的冗余数据来重建数据库中已被破坏或不正确的那部分数据。确的那部分数据。(1 1)数据库备份)数据库备份 数据库备份是通过数据转储技术实现的,转储是指数据库备份是通过数据转储技术实现的,转储是指DBADBA将将整个数据库复制到磁带或另一个磁盘上保存起来的过程。整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。这些备用的数据文本称为后备副本或后援副本。备份的内容备份的内容备份的频率备份的频率确定备份频率一般要考虑两个因素:一是存储介质出现故障确定备份频率一般要考虑两个因素:一是存储介质出现故障时丢失的数据量的大小;另一个是数据库的事务类型是读时丢失的数据量
41、的大小;另一个是数据库的事务类型是读多还是写多,故障发生的频率是否高等。多还是写多,故障发生的频率是否高等。转储的方法转储的方法 转储的方式可分为静态转储和动态转储。转储的方式可分为静态转储和动态转储。(2)恢复数据库 恢复数据库是当系统运行过程中发生故障恢复数据库是当系统运行过程中发生故障后利用数据库后备副本和日志文件将数据库恢后利用数据库后备副本和日志文件将数据库恢复到故障前的某个状态的过程。复到故障前的某个状态的过程。恢复策略恢复策略 事务故障的恢复事务故障的恢复 系统故障的恢复系统故障的恢复介质故障的恢复介质故障的恢复恢复方法恢复方法 l l利用备份技术利用备份技术 l l利用日志文件利用日志文件 l l利用镜像技术利用镜像技术