目录

数据库原理

目录

数据库原理

数据库原理

第一章

1.四个基本概念:

数据(Data )是数据库中存储的基本对象。

数据库(Database,简称DB )是长期储存在计算机内、有组织的、可共享的大量数据集合。

数据库管理系统(Database Management System,简称DBMS )是位于用户与操作系统之间的一层数据管理软件。

数据库系统(Database System,简称DBS )是指在计算机系统中引入数据库后的系统构成。常常把数据库系统简称为数据库。

2.数据库系统的构成:

数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户 )构成。

3.数据库系统人员

数据库管理员(简称DBA)、系统分析员和数据库设计人员、应用程序员、用户。

4.数据库管理系统DBMS的功能

(1)数据库定义功能 。DBMS提供数据定义语言(Data Definition Language, DDL),用户通过它可以方便地对数据库中的数据对象进行定义。

(2)数据组织、存储和管理功能 。通过对数据的组织和存储提高存储空间利用率和方便存取,数据库管理系統提供多种存取方法(如索引查找、Hash查找、顺序查找等)来提高存取效率。

(3)数据操纵功能 。DBMS还提供数据操纵语言(Data Manipulation Language, DML), 用户可以使用DML操纵数据。实现对数据库的基本操作,如查询、插入、删除和修改等。

(4)数据库的事务管理和运行管理 。数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

(5)数据库的建立和维护功能 。数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能通常是由一些实用程序或管理工具完成的。

(6)其他功能 。例如DBMS与网络中其他软件系统的通信功能:一个DBMS与另一个DBMS或文件系统的数据转换功能:异构数据库之间的互访和互操作功能等。

5.数据库系统DBS的特点

(1)数据结构化 。数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。

(2)数据的共享性高,冗余度低,易扩充 。数据库的数据不再面向某个应用而是而向整个系统。因此可以被多个用户。多个应用以名种不同的语言共享使用。由于数据面向整个系统,是有结构的数据。不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。

(3)数据独立性高 。数据独立性包括数据的物理独立性和数据的逻辑独立性。数据率管理系统的模式结构和二级映像功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。

(4)数据由DBMS统一管理和控制 。数据库的共享是井发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此。DBMS必须提供统的数据控制功能,包括数据的安全性保护。数据的完整性检查、并发控制和数据库恢复。

6.数据模型的分类及三要素:

(1)分类: 层次模型(树形结构)、网状模型(图)、关系模型(二维表)

(2)数据模型通常由数据结构、数据操作和完整性约束三部分组成:

①数据结构 :它是所研究的对象类型的集合,是对系统 静态 特性的描述。

②数据操作 :是指对数据库中各种对象(型)的实例(值)允许进行的操作的集合,包括操作及有关的操作规则,是对系统 动态 特性的描述。

③完整性约束条件 :数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

7.关系数据模型

关系 :一个关系对应通常说的一张表

元组 :表中的一行即为一个元组

属性 :表中的一列即为一个属性,给每个属性起一个名称即属性名

:也称码键。表中的某个属性组,它可以唯一确定一个元组

:域是一组具有相同数据类型的值的集合

分量 :元组中的一个属性值

关系模型 :对关系的一种描述,一般表示为

关系名(属性1,属性2,…,属性n)

8.数据库系统的三级模式二级映像

模式 是相对 稳定 的,而 实例 是相对 变动

三级模式 :模式、外模式、外模式

二级映像外模式/模式映像 —保证 数据的逻辑独立性

内模式/模式映像 —保证 数据的物理独立性

9.数据独立性:

物理独立性、逻辑独立性

(1)数据与程序的物理独立性:当数据库的存储结构改变,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。

(2)数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等)。由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的。从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

第二章

1.关系、关系模式概念

①关系: 笛卡尔积 D1XD2X…XDn的子集称叫做在域D1,D2, …, Dn上的关系,表示为R (D1,D2, … Dn)这里R表示关系的名字,n表示关系的目或度。 两关系的行数相乘,列数相加

②关系模式:关系的描述称为关系模式,它可以形式化地表示为: R (U, D, Dom. F), 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的城,Dom为属性向城的映射集合,F为属性间数据的依赖关系集合。

2.的完整性约束

实体完整性、参照完整性和用户定义的完整性

关系的两个不变性 :实体完整性、参照完整性

3.关系运算

并 差 交 笛卡尔积 选择 投影 连接 除法

4.关系代数(表示、计算)

五个基本运算 :并 差 笛卡尔积 选择 投影

专门的关系运算 :选择、投影、连接、除运算

5.会根据要求写出关系代数表达式

p70 习题6

6.会根据关系代数表达式计算结果

7.SQL语句与关系代数互转

第三章

1.SQL语言、分类、语句命令(SELECT,排序,条件,分组,模式匹配,聚集函数统计)

SELECT语句的一-般格式:

SELECT [ALLDISTINCT] <日标列表达式> [别名] [.<日标列表达式> [别名]] …

FROM <表名或视图名> [别名] [,<表名或视图名> [别名]] … |(<SELECT语句>) [AS] <别名>

[WHERE <条件农达式>]

[GROUP BY <列名1> [HAVING <条件表达式>]]

[ORDER BY<列名2> [ASCDESC]] ;

2.连接:

交叉连接、等值连接、自然连接、内连接、外连接、左外连接、右外连接、完全外

3.连接、自连接

4.等值连接、自然连接区别

(1)等值连接必须要有等值的条件,当条件不同时连接的结果也不相同,两个关系可以没有相同的属性列。

(2)自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是同名的属性并且在结果中把重复的属性列去掉,即等值连接之后要去除相同的属性列

5.表操作(表结构、数据操作四种)

五种约束

create table student(
	sno char(9) primary key,#1
	sname char(20) unique,#2
	phone char(12) not null,#3
	minzu char(20) default '汉',
	sex char(2) check (sex='男' or sex='女'),#4
	foreign(phone) references person(phone)#5
	)

6.索引的概念,分类及使用

(1)索引的概念:索引就是 加快检索表中数据的方法

(2)分类:顺序文件上的索引、B+树索引、散列索引、位图索引

(3)使用:SQL语句看书

每一张表只能有一个聚簇索引

7.视图的概念,与基本表的区别,优点,创建

(1)基本表概念:是本身独立存在的表,在sql中一个关系就对应一个表。一个(或多个)基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。

(2)视图概念: 是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义 。而不存放视图对应的数据。这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。

(3)基本表与视图的区别:视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。

(4)更新视图: 插入、删除、修改数据。由于视图是不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新。并不是所有的视图都是可更新的

(5)视图有以下五个优点:

视图能够简化用户的操作 :视图机制使用户可以将注意力集中在所关心的数据上,如果这些数据不是直接来自基本表。则可以通过定义视图,使数据库看起来结构简单。清晰。井且可以简化用户的数据查询操作:

视图使用户能以多种角度看待同一数据 :视图机制能使不同的用户以不同的方式看待同一数据,当许

多不同种类的用户共享一个数据库时,这种灵活性是非常重要的:

视图对重构数据库提供了一定程度的逻辑独立性 :数据的逻辑独立性是指当数据库重构时,用户的应用程序不会受影响。

视图能够对机密数据提供安全保护 :有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上.这样视图机制就自动提供了对机密数据的安全保护功能。

使用视图可以更清晰的表达查询。

第四章

1.安全性概念

数据库安全性概述: 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏

2.两类存取控制方法

(1)自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限,防止不合法用户对数据库的存取。

(2)强制存取控制方法:每一个数据对象被强制地标以一定的密级,每一个用户也被强制地授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。

3.身份认证模式,SQL语句相关权限操作

1.授权:grant

grant <权限>[,<权限>]…

on <对象类型><对象名>[,<对象类型><对象名>]…

to <用户>[,<用户>]…

[with grant option];

2.收回:revoke

revoke <权限>[,<权限>]…

on <对象类型><对象名>[,<对象类型><对象名>]…

from <用户>[,<用户>]…[cascade|restrict];

4.角色创建CREATE ROLE<角色名>

5.数据库安全性控制的常用方法

(1) 用户标识和鉴别 :该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。

(2) 多层存取控制 :通过用户权限定义和合法权检查确保只有合法权限的用户访间数据库,所有未被授权的人员无法存取数据。

(3) 视图机制 :为不同的用户定义不同的视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一一定程度的安 全保护。

(4) 审计 :建立审计日志。把用户对数据库的所有操作自动记录下来放入审计日志中。DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

(5) 数据加密 :对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

第五章

1.完整性概念、分类,创建约束,及主要工作

数据库的完整性是指数据的正确性和相容性。数据库的完整性是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。

2.数据完整性规则:实体及实体间相互依存和制约的规则

3.字段约束

4.触发器的概念及创建,作用

触发器(Tigger)是用户定义在关系表上的一-类由事件驱动的特殊过程。

CREATE TRIGGER <触发器名> / 每当触发事件发生时,该触发器被激活 /

{BEFORE |AFTER} <触发事件> ON <表名>

/ 指明触发器激活的时间是在执行触发事件前或后 /

REFERENCING NEWOLD ROW AS<变量> / PREFERENCING 指出引用的变量 /

FOR EACH{ROW I STATEMENT} / 定义触发器的类型,指明动作体执行的频率 /

[WHEN <触发条件>] <触发动作体> / 仅当触发条件为真时才执行触发动作体 /

5.理解两个临时的关系表的用途

6.安全性和完整性的联系和区别

数据库的安全 是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 数据库的完整性 是指数据的正确性和相容性。数据库的完整性视为防止数据库中存在不符合语义的数据,防止错误的信息输入和输出。数据库的安全性是保护数据库防止恶意的破坏和非法的存储。也就是说,完整性措施的防范对象是 不合法的语义数据 ,安全性措施的防范对象是 非法用户和非法操作。

第六章

1.规范化的概念

一个低一级范式的关系模式通过模式分解(schema decomposition) 可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(normalzation)。

2.函数依赖、多值依赖的概念

函数依赖:设R (U)是属性集u上的关系模式,X, Y是U的子集。若对于R (U)的任意一个可能的关系n r中不可能存在两个元组在x上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X.记作X→Y。

多值依赖:设R (U)是属性集U上的一个关系模式。x,Y,Z是U的子集,并且Z=U-X-Y。关系模式R (U)中多值依赖X→→Y成立,当且仅当对R (U)的任一关系r,给定的一对(x,z)值,有一组r的值,这组值仅仅决定于x值而与z值无关。

3.候选码的确定:Armstrong公理及推论

包含在任何一个候选码中的属性称为 主属性 ;在不包含在候选码中的属性称为 非主属性或者非码属性

自反律、增广律、传递律、合并规则、伪传递规则、分解规则

4.范式的定义及证明

(1) INF:关系模式R的每一个分量是不可再分的数据项。

(2) 2NF:关系模式R是 INF,且每一个非主属性完全函数依赖于码。

(3) 3NF:关系模式R<U, P>中不存在这样的码X.属性组Y及非主属性Z(Z不是Y的子集)使得X→Y, Y→Z成立,Y→/X.

(4) BCNF: 关系模式R<U, P>EINF, X→Y且Y不是X的子集时,X必含有码。

5Armstrong公理及推论的应用 P190—191

6会判断有损无损分解,是否保持函数依赖

第七章

1.数据库设计过程及各过程中的主要任务:(六个步骤)

数据库设计过程的六个阶段:需求分析:概念结构设计:逻辑结构设计:数据库物理设计:数据库实施:数据库运行和维护。.

(1)需求分析阶段 :进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础。是最困难,最耗费时间的一步。

(2)概念结构设计阶段 :概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合。归纳与抽象。形成一个独立于具体DBMS的概念模型。.E-R图

(3)逻辑结构设计阶段 :逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。

(4)物理设计阶段 :物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。.

(5)数据库实施阶段 :在数据库实施阶段,设计人员运用DBMS提供的数据库语言(如SQL)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

(6)数据库运行和维护阶段 :数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。

设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。

2.需求分析

概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库运行和维护。

3.实体间联系的类型

a.一对一联系(1: 1)

如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系。反之亦然。则称实体集A与实体集B具有一对一联系,记为1 :1.

b.一对多联系(1:n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n20) 与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系。则称实体集A与实体集B有一对多联系。记为1 :n.

c.多对多联系(m: n)

如果对于实体集A中的每一个实体。实体集B中有n个实体(n>10) 与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m>10) 与之联系,则称实体集A与实体集B具有多对多联系,记为m:n

4.E-R图合并时的冲突

a.属性冲突。

b.命名冲灾。

e.结构冲突。

5.概念模型向逻辑模型的转换规则

(1)一对一联系 :不必要单独成为一个关系,可以将它与联系中的任何一方实体转化成的关系合并,一般与元祖较少的关系 合并 .

(2) 一对多联系: 不必要单独作为一个关系模式,可 将其与联系中的N方实体转化成的关系合并

(3)多对多联系:必须 单独成为一个关系模式,不能与任何一方实体联系

要求:画E-R图,转换关系数据模型

注意:最好铅笔画图,三种图形,联系类型,标注主外关键字

第八章

1.存储过程的概念及创建

存储过程是由过程化SQL语句书写的过程。

①创建存储过程

CREATE OR REPLACE PROCEDURE过程名([参数1,参数…]) / 存储过程首部 /

AS <过程化SQL块>; / 存储过程体,描述该存储过程的操作 /

2.与触发器两者的区别

第九章

1.查询处理的步骤

(1)查询分析

首先对查询语句进行扫描、词法分析和语法分析。从查询语句中识别出语言符号,如SQL 关键字、属性名和关系名等,进行语法检查和语法分析,即判断查询语句是否符合SQL语法规则。

(2)查询检查

根据数据字典中有关的模式定义检查语句中的数据库对象,如关系名、属性名是否存在和有效。如果是对视图的操作,则要用视图消解方法把对视图的操作转换成对基本表的操作。还要根据数据字典中的用户权限和完整性约束。对用户的存取权限进行检查时,如果该用户没有相应的访问权限或违反了完整性约束,就拒绝执行该查询。检查通过后便把SQL查询语句转换成内部表示,即等价的关系代数表达式。这个过程中要把數据库对象的外部:名称转换为内部表示。关系數据库管理系统- -般都用查询树(query tee,也称为语法分析树(syntax tree)来表示扩展的关系代数表达式。

(3)查询优化

查询优化就是选择-一个高效执行的查询处理策略。查询优化有多种方法。按照优化的层次一般可将查询优化分为代数优化和物理优化。

①代数优化:代数优化是指关系代数表达式的优化,即按照-一定的规则,通过对关系代数表达式进行等价变换,改变代数表达式中操作的次序和组合,使查询执行更高效。

②物理优化:物理优化则是指存取路径和底层操作算法的选择。

(4)查询执行

依据优化器得到的执行策略生成查询执行计划,由代码生成器(code generator)生成执行这个查询计划的代码。

2.查询数的启发式优化

选择运算尽可能先做

把投影运算和选择运算同时进行

把投影同其前或后的双目运算结合起来

把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算

第十章

1.事务的概念及特性

事务是用户定 义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分制的工作单位。

在SQL中,定义事务的语句一般有三条:

begin transaction;

commit;

rollback;

事务通常是以begin transaction开始,以commit或rollback结束。 commit表示提交,即提交事务的所有操作 。具体地说就是 将事务中所有对数据库的更新写回到磁盘上的物理数据库中去 ,事务正常结束。 rollback表示回滚 ,即在事务运行的过程中发生了某种故障,事务不能继续执行, 系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始的状态。

(1)原子性.

事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

(2)一致性

事务执行的结果必须是使数据库从一个-致性状态变到另一个-一致性状态。

(3)隔离性

一个事务的执行不能被其他事务干扰。即一个事务的内邮操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

(4)持续性

持续性也称水久性(Permanence), 指一个事务一旦提交,它对数据库中数据的改变就应该是水久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

2.故障的种类

事务内部的故障、系统故障(软故障)、介质故障(硬故障)、计算机病毒

3.恢复的实现技术

建立 冗余 数据最常用的技术是 数据存储登记日志文件

数据存储的方法分为4类: 动态海量存储、动态增量存储、静态海量存储、静态增量存储

日志文件 是用来记录 事务数据库更新操作 (增删改)的文件

日志文件中需要登记的内容包括:

每个日志记录的内容主要包括:

日志文件及作用

日志文件是用来记录事务对数据库的更新操作的文件。

①事务故障恢复和系统故障恢复必须用日志文件。

②在动态转 储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复发生故障时的数据库。

③在静态转储方式中,也可以建立日志文件。当数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某- -时刻的正确状态。

登记日志文件

为保证数据库是可恢复的,登记日志文件时必须遵循两条原则

  1. 登记的次序严格按并发事务执行的时间次序
  2. 必须先写日志文件,后写数据库

4.恢复策略

事务故障的恢复 :

(1)事务故障的恢复是由DBMS执行的。恢复步骤是自动完成的,对用户是透明的。具体过程是:

  • ①反向扫描文件日志(即从后向前扫描日志文件),查找该事务的更新操作;
  • ②对该事务的更新操作执行逆操作,即将8志记录中“更新前的值”写入数据库:
  • ③继续反向扫描日志文件,做同样处理;
  • ④如此处理下去,直至读到此事务的开始标记,该事务故障的恢复就完成了。

系统故障的恢复

(2)系统故障的恢复操作是指撒销(UNDO)故障发生时未完成的事务,重做(REDO)已完成的事务。系统的恢复步骤是:

  • ①正向扫描日志文件,找出在故障发生前已经提交的事务队列(REDO队列)和未完成的事务队列(UNDO队列);
  • ②对撒销队列中的各个事务进行UNDO处理;
  • ③对重做队列中的各个事务进行REDO处理。

介质故障的恢复

(3)介质故障是最严重的一种故障。 恢复方法是重装数据库,重做已完成的事务 。具体过程是:

  • ① DBA装入最新的数据库后备副本(离故障发生时刻最近的转储副本) ,使数据库恢复到转储时的一致性状态:
  • ②DBA装入转储结束时刻的日志文件副本:
  • ③DBA启动系统恢复命令,由DBMS完成恢复功能,即重做已完成的事务。

第十一章

1.并发控制

事务是并发控制的基本单位,保证事务ACID特性是事务处理的重要任务,

三类并发问题及判断

并发操作带来的数据不一致性主要包括 丢失修改(WW并发)、不可重复读(RW并发)和读“脏”数据(WR并发) 。产生三类数据不一致性的主要原因是并发操作破坏了事务的隔离性。

并发控制的主要技术有 封锁 (locking)、 时间戳 (timestamp)、 乐观控制法 (optimistic scheduler)和 多版本开发控制 (multi-version coneurreney control,MVCC)等。

2.封锁

排他锁又称为写锁 。若事务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做任何修改。

3.封锁协议

一级封锁协议 :事务T在修改数据R之前必须先对其加X锁,直到事物结束才释放。 解决WW丢失修改

二级封锁协议 :在一级封锁协议的基础上增加事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。 解决WW丢失修改和WR读脏数据

三级封锁协议 :在一级封锁协议的基础上增加事务T在读取数据R之前必须先对其加S锁,直到事物结束才释放。 解决WW丢失修改和WR读脏数据和RW不可重复读

4.死锁

T1在等待T2,而T2又在等待T1的局面,T1和T2两个事物永远不能结束,形成死锁。

死锁的预防:一次封锁法,顺序封锁法

死锁的诊断与解除:超时法,等待图法

5.可串行化调度

多个事务的并发执行是正确的,当且仅当其结果与按某- -次序串行地执行这些事务时的结果相同,称这种调度策略为可串行化(serializable) 调度。可串行性srializbili)是并发事务正确调度的准则。

6.两段锁协议

两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁:在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁:在释放-一个封锁之后,事务不再申请和获得任何其他封锁。“两段"锁的含义是,事务分为两个阶段。第一阶段是获得封锁:第二阶段是释放封锁。