数据库原理复习资料整理综述.pdf

上传人:tbuqq 文档编号:4954771 上传时间:2020-01-19 格式:PDF 页数:15 大小:344.57KB
返回 下载 相关 举报
数据库原理复习资料整理综述.pdf_第1页
第1页 / 共15页
数据库原理复习资料整理综述.pdf_第2页
第2页 / 共15页
数据库原理复习资料整理综述.pdf_第3页
第3页 / 共15页
数据库原理复习资料整理综述.pdf_第4页
第4页 / 共15页
数据库原理复习资料整理综述.pdf_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据库原理复习资料整理综述.pdf》由会员分享,可在线阅读,更多相关《数据库原理复习资料整理综述.pdf(15页珍藏版)》请在三一文库上搜索。

1、第一章 1.四大基本概念: 数据 :数据库中存储的基本对象,它是描述事物的符号记录。种类有:文字、图形、 图象、声音等。特点是:数据与其语义是不可分的。 数据库 :(Database,简称DB) 是长期储存在计算机内、有组织的、可共享的大量数据集 合。其特点是: 数据按一定的数据模型组织、描述和储存; 可为各种用户共享;冗余度较小; 数据独立性较高;易扩展。(特点:永久存储、有组织、可共享) 数据库管理系统:是位于用户与操作系统之间的一层数据管理软件。 数据库管理系统的主要功能:数据定义功能;数据组织、存储和管理;数据操纵功 能;数据库的事物管理和运行管理;数据库的建立和维护功能;其他功能。

2、数据库系统 :是指在计算机系统中引入数据库后的系统。一般由数据库、 数据库管理系 统(及其开发工具) 、应用系统、数据库管理员(和用户)构成。 在不引起混淆的情况下常常把数据库系统简称为数据库。 2.数据管理技术的三个阶段及其特点 人工管理阶段:特点: 1、数据不保存。 2、没有软件系统对数据进行管理。 3、这一时期没有文件的概念,数据的组织方式必须由程序员自行 设计。 4、一组数据对应一组程序,数据是不共享的。 5、数据不具有独立性,当数据结构发生变化时,应用程序要变化。 文件系统阶段:特点: 1、数据可以长期保存。 2、由文件系统管理数据。 3、数据共享性差, 冗余度大文件是面向应用的。

3、4、 数据独立性差是不具有弹性的无结构的数据集合,文 件之间是孤立的,不能反映事物间联系。 数据库系统阶段:特点:数据的管理者:DBMS 数据面向的对象:现实世界 数据的共享程度:共享性高 数据的独立性:高度的物理独立性和一定的逻辑独立性 数据的结构化:整体结构化 数据控制能力:由DBMS 统一管理和控制 3、数据库系统的特点:数据结构化;数据的共享性高,冗余度低,易扩充;数据独立性高; 数据有 DBMS 统一管理和控制。 4、数据模型的组成要素:数据结构、数据操作和完整性约束。 数据结构是对系统静态特性的描述。 数据操作是对系统动态特性的描述。 5、概念模型: 基本概念 :实体: 客观存在并

4、可相互区别的事物称为实体。 属性: 实体所具有的某一特性称为属性。 码: 唯一标识实体的属性集称为码。 域: 属性的取值范围称为该属性的域。 实体型: 具有相同属性的实体具有的共同的特征和性质,即: 用实体名及其 属性名集合来抽象和刻画同类实体。 实体集: 同型实体的集合称为实体集。 联系: 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体 (型)内部的联系和实体(型)之间的联系。 概念模型的表示方法:实体联系方法,用E-R 图来描述。 E-R 图: 实体型 :矩形表示,矩形框内写明实体名。 属性: 椭圆表示,用无向边将其与相应实体连接起来。 联系: 菱形表示,菱形框内写明联系名,并

5、用无向边分别与有关实体连接起来,同 时在无向边旁标上联系的类型(1:1、1:n 或 m:n) 。联系可以有属性。 课程学生选修 课程号 课程名成绩学号姓名 mn 6、关系模型: 在用户观点下, 关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 关系模型中的基本概念:关系( Relation) :一个关系通常对应一张表; 元组( Tuple) :表中的一行即为一个元组; 属性( Attribute ) :表中的一列即为一个属性,给每一个属性起一个名称即属性名; 主码( Key) :表中的某个属性组,它可以唯一确定一个元组; 域( Domain) :属性的取值范围; 分量:元组中的一个属性值

6、; 关系模式:对关系的描述,一般表示为: 关系名(属性1,属性 2,属性n) 关系模型中,实体及实体间的联系都是用关系来表示。 例学生、课程、学生与课程之间的多对多联系: 学生(学号,姓名,年龄,性别,系号,年级) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 关系必须是规范化的,满足一定的规范条件。最基本的规范条件:关系的每一个分量 必须是一个不可分的数据项。 关系模型的优缺点: 优点: 建立在严格的数学概念的基础上。 概念单一。数据结构简单、清晰,用户易懂易用 关系模型的存取路径对用户透明。 缺点 存取路径对用户透明导致查询效率往往不如非关系数据模型 7、数据库系统的三级模式

7、数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。 模式(逻辑模式) ,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数 据视图。一个数据库只有一个模式。 定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有 关的安全性、完整性要求 外模式 (子模式Subschema)或用户模式,是数据库用户能够看见和使用的局部数据的 逻辑结构和特征的表述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集,一个数据库可以有多个外模式。 外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式 中的数据

8、,数据库中的其余数据是不可见的。 内模式 (存储模式Storage Schema),是数据物理结构和存储方式的描述,是数据在数据 库内部的表示方式。一个数据库只有一个内模式。 8、数据库的二级映像功能:数据库管理系统在三级模式之间提供了两层映象:外模式 /模式 映象、模式 /内模式映象。 外模式 /模式映象 定义外模式与模式之间的对应关系 每一个外模式都对应一个外模式模式映象 映象定义通常包含在各自外模式的描述中 外模式 /模式映象如何保证数据的逻辑独立性? 当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变。 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数

9、据与程序的逻辑独 立性,简称数据的逻辑独立性。 模式 /内模式映象 模式内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。 数据库中模式内模式映象是唯一的 该映象定义通常包含在模式描述中 模式 /内模式映象如何保保证数据的物理独立性? 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式 内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称 数据的物理独立性。 9、数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统和数据库管理 员构成。 第四章 1、安全性级别 TCSEC将系统划分为四组(ABCD )七个等级,依次是D、C

10、1、C2、B1、B2、B3、A1。 D级: 是最低级别 。将一切不符合更高标准的系统均归于D 组。如 DOS实操作系统中 安全标准为D级的典型例子。 C1级:非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控制 (DAC ) ,保护或限制用户权限的传播。 C2级: 安全产品的最低档次。提供受控的存取保护,将C1 级的 DAC进一步细化,以 个人身份注册负责,并实施审计和资源隔离。达到C2级的产品在其名称中往往不突出“安 全” (Security)这一特色。 B1级: 标记安全保护。 “安全” (Security)或“可信的” (Trusted)产品。 对系统的数据加以标记,对标

11、记的主体和客体实施强制存取控制 ( MAC ) 、审计等安全机制。 B2级: 结构化保护。 建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC 和 MAC 。经过认证的B2级以上的安全系统非常稀少。 B3级:安全域。 A1级:验证设计,即提供B3 级保护的同时给出系统的形式化设计说明和验证以确信 各安全保护真正实现。 2、数据库安全性控制方法: 3、用户标识与鉴别 是系统提供的最外层安全保护措施。 用户标识:用一个用户名或用户标识号来标明用户身份。 口令:系统核对口令以鉴别用户身份。 基本方法 系统提供一定的方式让用户标识自己的名字或身份; 系统内部记录着所有合法用户的标识; 每次用

12、户要求进入系统时,由系统核对用户提供的身份标识; 通过鉴定后才提供机器使用权。 用户标识和鉴定可以重复多次 该方法简单易行,但用户名和口令容易被人窃取。 4、存取控制 存取控制机制的组成:定义存取(用户)权限检查存取权限 定义存取权限:指定哪些用户可以对数据对象进行哪些操作。 检查存取权限:检查操作请求是否超出了定义的权限。 常用存取控制: 自主存取控制(DAC ) :C2级,非常灵活。 同一用户对于不同的数据对象有不同的存取权限 不同的用户对同一对象也有不同的权限 用户还可将其拥有的存取权限转授给其他用户 强制存取控制(MAC): B1级,比较严格。 每一个数据对象被标以一定的密级 每一个用

13、户也被授予某一个级别的许可证 对于任意一个对象,只有具有合法许可证的用户才可以存取 5、用户权限有数据库对象 和操作类型 两个要素组成。 6、自主存取控制(DAC )方法 主要通过SQL提供的 grant语句和 revoke 语句来实现。 授权: 定义存取权限成为授权。 GRANT语句的 一般格式: GRANT ,. ON TO ,. WITH GRANT OPTION; GRANT 功能(作用) :将对指定操作对象的指定操作权限授予指定的用户。 发出 GRANT 语句的对象: DBA (数据库管理员), 数据库对象创建者,已经拥有该权限的 用户。 DBA 拥有对数据库所有对象的所有权限,用户

14、对自己建立的基本表和视图拥有全部 的操作权限。 接受权限的用户:一个或多个具体用户,或PUBLIC ,即全体用户。 WITH GRANT OPTION:获得某种权限的用户还可以把这种权限再授予别的用户。若没有指 定该语句,则用户只能使用该权限,不能传播该权限。 例 1 把查询 Student 表权限授给用户U1 GRANT SELECT(INSERT/UPDATE(Sno) )或者为 ALL PRIVILEGES( 全部操作权限) ON TABLE Student TO U1;或者 TO U1,U2, U3;或者 TO PUBLIC; 例 2 把对表 SC的 insert权限授予U5,并允许将

15、此权限在授予其他用户。 GRANT INSERT ON SC TO U5 WITH GRANT OPTION; 执行例 2 后, U5不仅拥有了对表SC的 INSERT权限,还可以传播此权限: U5 可以将此权限授予U6(即有 U5发出下列语句) GRANT INSERT ON SC TO U6 WITH GRANT OPTION; REVOKE( 回收) REVOKE 语句的一般格式为: REVOKE ,. ON FROM ,.CASCADE|RESTRICT; REVOKE 语句功能:从指定用户那里收回对指定对象的指定权限 CASCADE:联级回收 例把用户 U4修改学生学号的权限收回 R

16、EVOKE UPDATE(Sno) ON TABLE Student FROM U4; 或者为 PUBLIC 例把用户 U5对 SC表的 INSERT权限收回 REVOKE INSERT ON TABLE SC FROM U5 CASCADE;/ 直接或间接从U5得到的 insert权限也将被回收 注: 系统不同,缺省回收不同,有的是缺省为CASCADE,有的为RESTRICT 7、强制存取控制(MAC )方法 在 MAC 中, DBMS 所管理的全部实体被分为主体 和 客体 两大类。 主体 是系统中的活动实体, 既包括 DBMS 所管理的实际用户, 也包括代表用户的各进程。 客体 是系统中的

17、被动实体,是受主体操纵的,包括文件、基表、索引、视图等等。 对于主体和客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label ) 。 敏感度标记被分成若干级别 ,通常为:绝密(Top Secret)、机密 (Secret)、可信 (Confidential)、公开 (Public)等。 主体的敏感度标记被称为许可证级别 ,客体的敏感度标记称为密级 。 当某一用户(或一主体)以标记label注册入系统时,系统要求他对任何客体的存取 必须遵循如下 规则 : (1) 仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; (2)仅当主体的许可证级别等于客体的密级时,该主体

18、才能写相应的客体。 第五章 1、数据库的完整性是指数据的正确性和相容性。 2、完整性控制机制: (1)提供定义完整性月数条件的机制 (2)提供完整性检查的方法(3)违约处理 3、实体完整性定义:PRIMARY KEY 定义 , 表级完整性约束或列级完整性约束。 实体完整性:主属性不能为空。 例: CREATE TABLE Student (Sno CHAR(5) PRIMARY KEY, /*在列级定义主码*/ Sname CHAR(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sdept CHAR(15); CREATE TABLE Student (Sno

19、CHAR(5) , Sname CHAR(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sdept CHAR(15), PRIMARY KEY ( Sno) /*在表级定义主码*/ ); CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY ( Sno,Cno) /*一组属性为主码,只能在表级定义主码*/ ) ; 4、实体完整性检查和违约处理 按照实体完整性规则, 系统自动检查 :1 )主码值是否唯一。2)主码各属性是否为空。 5、参照完整

20、性定义:创建表时 ,FOREIGN KEY定义。 参照完整性:外码取值为空或者等于相对应的主码的某个元祖的值。 例: CREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , Grade int, Primary key (Sno, Cno) foreign key (Sno) references Student(Sno), foreign key (Cno) references Course(Cno) ); 6、实现参照完整性要考虑的几个问题: 1)外码能否接受空值问题 2) 在被参照关系中删除元组的问题 3)在参照关系中插入元组时的问题 4)修改关系中主

21、码的问题 1 ) 外码能否接受空值问题 在实现参照完整性时,系统除了应该提供定义外码的机制,还应提供定义外码列是否 允许空值的机制。 例 1: 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 在学生关系中的专业号列可以取空值。 例 2: 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 选修关系中的学号列不能取空值。 2 )在被参照关系中删除元组的问题 一般地, 当删除被参照关系的某个元组,而参照关系存在若干元组,其外码值与被参照 关系删除元组的主码值相同,这时可有三种不同的策略: (1) 级联删除( CASCADES) (2)

22、受限删除( RESTRICTED ) 仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同 时,系统才执行删除操作,否则拒绝此删除操作。 (3) 置空值删除( NULLIFIES) 删除被参照关系的元组,并将参照关系中相应元组的外码值置空值。 这三种处理方法,哪一种是正确的,要依应用环境的语义来定 3 )在参照关系中插入元组时的问题 一般地, 当参照关系插入某个元组,而被参照关系不存在相应的元组,其主码值与参照 关系插入元组的外码值相同,这时可有以下策略: (1)受限插入 仅当被参照关系中存在相应的元组,其主码值与参照关系插入元组的外码值相同 时,系统才执行插入操作,否则拒绝

23、此操作。 (2)递归插入 首先向被参照关系中插入相应的元组,其主码值等于参照关系插入元组的外码值, 然后向参照关系插入元组。 4 ) 修改关系中主码的问题 (1) 不允许修改主码 在有些 RDBMS 中,修改关系主码的操作是不允许的。 (2) 允许修改主码 在有些 RDBMS 中, 允许修改关系主码,但必须保证主码的唯一性和非空,否则拒绝修改。 若修改的是被参照关系,则与删除类似,有三种策略: 级联修改:修改被参照关系主码值的同时,修改参照关系中相应的外码值。 受限修改:拒绝此修改操作。只当参照关系中没有任何元组的外码值等于被参照关 系中某个元组的主码值时,才能被修改。 置空值修改: 修改被参

24、照关系主码值的同时,将参照关系中相应的外码值置为空值。 例: CREATE TABLE SC( Sno CHAR(5) NOT NULL, Cno CHAR(3) NOT NULL, Grade SMALLINT, Primary key (Sno, Cno) foreign key (Sno) references Student(Sno), ON DELETE CASCADE 级连删除 ON UPDATE CASCADE, 级连更新 foreign key (Cno) references Course(Cno) ON DELETE CASCADE ON UPDATE CASCADE);

25、7、用户定义的完整性:元组上的约束条件的定义。 列值非空( NOT NULL )列值唯一 (UNIQUE) CHECK短语 例: CREATE TABLE Student (Sno CHAR(5) , Sname CHAR(20) NOT NULL, Ssex CHAR(1) , Sage INT, Sdept CHAR(15), PRIMARY KEY ( Sno) CHECK (Ssex=女 OR Sname NOT LIKE Ms.% ) ); 8、完整性约束命名子句 CREATE TABLE Student (Sno NUMERIC(6) CONSTRAINT C1 CHECK(Sno

26、 BETWEEN 90000 AND 99999 ) , Sname CHAR(20) CONSTRAINT C2 NOT NULL, Ssex CHAR(2) CONSTRAINT C3 CHECK(Ssex IN (男,女) , CONSTRAINT C4 PRIMARY KEY (Sno) ); 注:C1、 C2 、C3、C4为约束名 constraint为定义约束名的关键字 修改表中的完整性限制 ALTER TABLE Student DROP CONSTRAINT C4 ; ALTER TABLE Student ADD CONSTRAINT C1 CHECK (Sno BETWEE

27、N 900000 AND 999999 ) ; 第九章 1、RDBMS 查询处理的4 个阶段:查询分析,查询检查,查询优化和查询执行。 2、集中式数据库中 查询总代价 =磁盘存取块数(I/O 代价) +处理机时间(CPU代价) +内存代价 在集中式数据库中I/O 代价是最主要的。 分布式数据库中 查询总代价 =I/O 代价 +CPU代价 +内存代价 +通信代价 3、查询优化的总目标:(1)选择有效的策略(2)求得给定关系表达式的值(3)使得查询 代价最小 (实际上是较小) 4、代数优化 常用的等价变换规则: (1)连接、笛卡尔积交换律 设 E1和 E2是关系代数表达式,F 是连接运算的条件,则

28、有 (2)连接、笛卡尔积的结合律 设 E1,E2, E3是关系代数表达式,F1 和 F2 是连接运算的条件,则有 (3) 投影的串接定律 这里, E是关系代数表达式,Ai(i=1,2, n) ,Bj(j=1 ,2, m)是属性名且 A1, A2, An构成 B1,B2, Bm的子集。 (4) 选择的串接定律 这里, E是关系代数表达式,F1、 F2是选择条件。 选择的串接律说明选择条件可以合并。这样一次就可检查全部条件。 (5) 选择与投影操作的交换律 选择条件F只涉及属性A1, An。 若 F 中有不属于A1, An的属性 B1, Bm则有更一般的规则: (6) 选择与笛卡尔积的交换律 如果

29、 F中涉及的属性都是E1 中的属性,则 如果 F=F1 F2,并且 F1 只涉及 E1 中的属性, F2只涉及 E2中的属性, 则由上面的等价 变换规则1,4, 6 可推出: 若 F1只涉及 E1中的属性, F2 涉及 E1和 E2两者的属性,则仍有 它使部分选择在笛卡尔积前先做。 (7) 选择与并的分配律 设 E=E1 E2,E1,E2 有相同的属性名,则 F(E1E2)F(E1) F(E2) (8) 选择与差运算的分配律 若 E1与 E2有相同的属性名,则 F(E1-E2) F(E1)- F(E2) (9) 选择对自然连接的分配律 F(E1 E2)F(E1) F(E2) F只涉及 E1 与

30、 E2的公共属性 (10) 投影与笛卡尔积的分配律 设 E1和 E2是两个关系表达式,A1, An 是 E1的属性, B1, Bm是 E2的属性, 则 (11) 投影与并的分配律 设 E1和 E2有相同的属性名,则 5、查询树的启发式优化 1. 选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条 2. 把投影运算和选择运算同时进行 3. 把投影同其前或其后的双目运算结合起来 4. 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算 5. 找出公共子表达式 6、查询优化树的示例 例 3 求选修了2 号课程的学生姓名。用SQL表达: SELECT Student.Sname FR

31、OM Student,SC WHERE Student.Sno=SC.Sno AND SC.Cno=2 ; 把 SQL语句转换成查询树,如下图所示 为了使用关系代数表达式的优化法,假设内部表示是关系代数语法树,则上面的查询 树如下图所示。 对查询树进行优化如下图 第十章 1、事务: 是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不 可分割的工作单位。 2、事务的四大特点:原子性( Atomicity)一致性( Consistency )隔离性( Isolation) 持续性( Durability ) 。 3、事务是恢复和并发控制的基本单位。 4、四大类故障 :事务内部的

32、故障、系统故障、介质故障、计算机病毒 5、恢复机制涉及的两个关键问题: 第一, 如何建立冗余数据;第二, 如何利用这些冗余数据 实施数据库恢复。 6、建立冗余数据值常用的技术 是:数据转储和登录日志文件。 7、数据转储分类 静态转储: 在系统中无运行事务是进行的转储操作。简单, 但会降低数据库的可用性。 动态转储 :转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。 优点:不用等待正在运行的用户事务结束,不会影响新事务的运行。 缺点:不能保证副本中的数据正确有效。 海量转储: 每次转储全部数据库。 增量转储: 每次只转储上一次转储后更新过的数据。 8、日志文件 :用来记录事务对

33、数据库的更新操作的文件。 登记日志文件时必须遵循的两条原则 : (1)登记的次序严格按并发事务执行的时间 次序。 (2)必须先写日志文件,在写数据库。 9、事务故障的回复(由系统自动完成) 步骤: (1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。 (2)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”(Befor Image, BI )写入数据库。 插入操作,“更新前的值”为空,则相当于做删除操作 删除操作,“更新后的值”为空,则相当于做插入操作 若是修改操作,则用BI(Before Image ) 代替 AI (After Image) (3) 继续反向扫

34、描日志文件,查找该事务的其他更新操作,并做同样处理。 (4)如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。 10、 系统故障的回复(由系统在重新启动时自动完成) 步骤: (1)正向扫描日志文件(即从头扫描日志文件) Redo队列 : 在故障发生前已经提交的事务 T1, T3, T8 Undo队列 : 故障发生时尚未完成的事务 T2, T4, T5, T6, T7, T9 . (2)对 Undo队列事务进行UNDO 处理。反向扫描日志文件,对每个UNDO 事务 的更新操作执行逆操作。 T2, T4, T5, T6, T7, T9 (3)对 Redo队列事务进行REDO 处理。正向

35、扫描日志文件,对每个REDO 事务 重新执行登记的操作。 T1, T3, T8 11、介质故障的回复 步骤:(1)装入最新的后备数据库副本,使数据库恢复到最近一次转储时的一致性状 态。 (对于 静态转储 的数据库副本,装入后数据库即处于一致性状态。对于动态转储 的数据 库副本,还须同时装入转储时刻的日志文件副本,利用与恢复系统故障相同的方法(即 REDO+UNDO) ,才能将数据库恢复到一致性状态。) (2)装入有关的日志文件副本,重做已完成的事务。 首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。然后正 向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中

36、“更新后的值” 写入数据库。 第十一章 1、多事务执行方式 串行执行、交叉并发方式、同时并发方式 2、为什么要进行并发控制? 当多个用户并发地存取数据库时就会产生多个事务同时存取同一数据的情况。若对并发 操作不加控制就可能会存取和存储不正确的数据,破坏是事务的一致性和数据库的一致性。 所以数据库管理系统必须提供并发控制机制。 3、数据库管理系统中并发控制机制的责任:保证事务的隔离性和一致性,DBMS 需要对并发 操作进行正确调度。 4、并发操作带来的数据不一致性主要有:丢失修改、不可重复读、读“脏”数据。 5、并发控制技术:封锁。 6、基本的封锁类型有两种:排它锁(写锁、X锁) ,共享锁(读锁

37、、S锁) 。 7、封锁类型的相容矩阵: 8、三级封锁协议: 1 级封锁协议 :事务 T在修改数据R之前必须先对其加X锁,直到事务结束才释放。 正常结束( COMMIT )非正常结束( ROLLBACK) 1级封锁协议可防止丢失修改 在 1 级封锁协议中, 如果是读数据, 不需要加锁的, 所以它不能保证可重 复读和不读“脏”数据。 2 级封锁协议 : 1级封锁协议 +事务 T在读取数据R前必须先加S锁, 读完后即可释放S 锁。 2级封锁协议可以防止丢失修改和读“脏”数据。 在 2 级封锁协议中, 由于读完数据后即可释放S锁, 所以它不能保证可重复读。 3 级封锁协议 :1 级封锁协议 + 事务

38、T 在读取数据R之前必须先对其加S锁,直到事务 结束才释放。 3级封锁协议可防止丢失修改、读脏数据和不可重复读。 三级封锁协议总结: 9、活锁: 某个事务永远处于等待状态。 避免活锁的简单方法是采用先来先服务的策略。 10、死锁: 多个事务同时处于等待状态。每个事务都在等待其它事务释放锁使其能够继续执 行,从而出现多个事务互相等待的僵局,每个事务永远不能结束。 11、死锁的预防:不易实现,故DBMS 在解决死锁问题上普遍采用诊断并解除死锁的方法 1)一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继 续执行。 一次封锁法存在的问题:降低并发度、扩大封锁范围。 将以后要用到

39、的全部数据加锁,势必扩大了封锁的范围,从而降低了系统的并发度。 2)顺序封锁法:顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个 顺序实行封锁。 顺序封锁法存在的问题:维护成本高。 数据库系统中可封锁的数据对象极其众多,并且随数据的插入、删除等操作而不断地变 Y=Yes,相容的请求 N=No ,不相容的请求 T1 T2 X S - X N N Y S N Y Y - Y Y Y 化,要维护这样极多而且变化的资源的封锁顺序非常困难,成本很高。 12、死锁诊断与解除 死锁诊断方法: 1 )超时法: 如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。 优点:实现简单 缺点:有可能

40、误判死锁。时限若设置得太长,死锁发生后不能及时发现。 2 )等待图法 :用事务等待图动态反映所有事务的等待情况。 事务等待图是一个有向图G=(T,U) T为结点的集合,每个结点表示正运行的事务 U为边的集合,每条边表示事务等待的情况 若 T1 等待 T2,则 T1,T2 之间划一条有向边,从T1 指向 T2 并发控制子系统周期性地(比如每隔1 min)检测事务等待图,如果发现 图中存在回路,则表示系统中出现了死锁。 解除死锁: 选择一个处理死锁代价最小的事务,将其撤消, 释放此事务持有的所有的锁, 使其它事务能继续运行下去。 13、串行调度是正确的,执行结果等价于串行调度的调度也是正确的。 1

41、4、 可串行化的调度:当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称 这种调度策略为可串行化的调度。 15、 可串行性 :是并发事务正确调度的准则。按这个准则规定,一个给定的并发调度,当且 仅当它是可串行化的,才认为是正确调度。 16、目前 DBMS 普遍采用两段锁协议的方法实现并发调度的可串行性,以保证调度的正确性。 17、两段锁协议的内容: 1)在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁。 2)在释放一个封锁之后,事务不再获得任何其他封锁。 18、 “两段”锁的含义:事务分为两个阶段 第一阶段是获得封锁,也称为扩展阶段;第二阶段是释放封锁,也称为收缩阶段。

42、19、 两段锁协议与三级封锁协议 两类不同目的的协议:两段锁协议保证并发调度的正确性。 三级封锁协议:在不同程度上保证数据一致性。 遵守第三级封锁协议必然遵守两段协议。 20、封锁对象的大小称为封锁粒度 。封锁对象可以是逻辑单元、物理单元。 例:在关系数据库中,封锁对象: 逻辑单元 : 属性值、 属性值集合、 元组、 关系、 索引项、 整个索引、 整个数据库等。 物理单元:页(数据页或索引页)、物理记录等。 21、 封锁粒度与并发度的关系: 封锁的粒度越大,小, 系统被封锁的对象少,多, 并发度小,高, 系统开销小,大, 选择封锁粒度:考虑封锁机构和并发度两个因素;对系统开销与并发度进行权衡

43、22、选择封锁粒度的原则: 需要处理多个关系的大量元组的用户事务:以数据库为封锁单位; 需要处理大量元组的用户事务:以关系为封锁单元; 只处理少量元组的用户事务:以元组为封锁单位。 23、 多粒度封锁:在一个系统中同时支持多种封锁粒度供不同的事务选择。 24、 多粒度树: 1)以树形结构来表示多级封锁粒度。 2)根结点是整个数据库,表示最大的数据粒度。 3)叶结点表示最小的数据粒度。 25、多粒度封锁协议: 允许多粒度树中的每个结点被独立地加锁; 对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁; 在多粒度封锁中一个数据对象可能以两种方式封锁:显式封锁和隐式封锁。 25、 显式封

44、锁 :直接加到数据对象上的封锁。 隐式封锁 :由于其上级结点加锁而使该数据对象加上了锁。 显式封锁和隐式封锁的效果是一样的。 26、 引进意向锁(intention lock)目的 :提高对某个数据对象加锁时系统的检查效率。 27、三种常用的意向锁:意向共享锁 ( 简称 IS 锁) 、意向排它锁 ( ,简称 IX 锁) 、共享意向排 它锁 ( 简称 SIX 锁) 28、 IS 锁:如果对一个数据对象加IS 锁,表示它的后裔结点拟(意向)加S锁。 IX 锁: 如果对一个数据对象加IX 锁,表示它的后裔结点拟(意向)加X锁。 SIX 锁:如果对一个数据对象加SIX 锁,表示对它加S锁,再加 IX 锁,即 SIX = S + IX。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1