数据库原理复习资料整理_第1页
数据库原理复习资料整理_第2页
数据库原理复习资料整理_第3页
数据库原理复习资料整理_第4页
数据库原理复习资料整理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

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

5、联系可以有属性。6、关系模型:在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。关系模型中的根本概念:关系Relation:一个关系通常对应一张表; 元组Tuple:表中的一行即为一个元组; 属性Attribute:表中的一列即为一个属性,给每一个属性起一个名称即属性名; 主码Key:表中的某个属性组,它可以唯一确定一个元组;  域Domain:属性的取值范围;  分量:元组中的一个属性值;  关系模式:对关系的描述,一般表示为: 关系名属性1,属性2,属性n关系模型中,实体及实体间的联系都是用关系来表示。例学生、课程、学生与课程之间的

6、多对多联系:学生学号,姓名,年龄,性别,系号,年级课程课程号,课程名,学分选修学号,课程号,成绩关系必须是标准化的,满足一定的标准条件。最根本的标准条件:关系的每一个分量必须是一个不可分的数据项。关系模型的优缺点:优点:建立在严格的数学概念的根底上。概念单一。数据结构简单、清晰,用户易懂易用关系模型的存取路径对用户透明。缺点存取路径对用户透明导致查询效率往往不如非关系数据模型7、 数据库系统的三级模式 数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。 模式逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 一个数据库只有一个模式。 定义模式时

7、不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的平安性、完整性要求 外模式子模式 Subschema或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的表述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集,一个数据库可以有多个外模式。 外模式是保证数据库平安性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。 内模式存储模式Storage Schema,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。 一个数据库只有一个内模式。8、 数据库的二级映像功能:数据库管理系统

8、在三级模式之间提供了两层映象:外模式/模式映象、模式/内模式映象。 外模式/模式映象 定义外模式与模式之间的对应关系 每一个外模式都对应一个外模式模式映象 映象定义通常包含在各自外模式的描述中 外模式/模式映象如何保证数据的逻辑独立性? 当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 模式/内模式映象 模式内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。 数据库中模式内模式映象是唯一的 该映象定义通常包含在模式描述中 模式/内模式映象如何保保证数据的物理

9、独立性?当数据库的存储结构改变了例如选用了另一种存储结构,数据库管理员修改模式内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。9、数据库系统一般由数据库、数据库管理系统及其开发工具、应用系统和数据库管理员构成。第四章1、 平安性级别 TCSEC将系统划分为四组ABCD七个等级,依次是D、C1、C2、B1、B2、B3、A1。 D级:是最低级别。将一切不符合更高标准的系统均归于D组。如DOS实操作系统中平安标准为D级的典型例子。 C1级:非常初级的自主平安保护。能够实现对用户和数据的别离,进行自主存取控制DAC,保护或限制用户权限的传播。 C2级:

10、平安产品的最低档次。提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。到达C2级的产品在其名称中往往不突出“平安(Security)这一特色。 B1级:标记平安保护。“平安(Security)或“可信的(Trusted)产品。对系统的数据加以标记,对标记的主体和客体实施强制存取控制MAC、审计等平安机制。 B2级:结构化保护。建立形式化的平安策略模型并对系统内的所有主体和客体实施DAC和MAC。经过认证的B2级以上的平安系统非常稀少。 B3级:平安域。 A1级:验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各平安保护真正实现。2、

11、数据库平安性控制方法:3、用户标识与鉴别 是系统提供的最外层平安保护措施。 用户标识:用一个用户名或用户标识号来标明用户身份。 口令:系统核对口令以鉴别用户身份。 根本方法 系统提供一定的方式让用户标识自己的名字或身份; 系统内部记录着所有合法用户的标识; 每次用户要求进入系统时,由系统核对用户提供的身份标识; 通过鉴定后才提供机器使用权。 用户标识和鉴定可以重复屡次 该方法简单易行,但用户名和口令容易被人窃取。4、 存取控制 存取控制机制的组成: 定义存取用户权限 检查存取权限 定义存取权限:指定哪些用户可以对数据对象进行哪些操作。 检查存取权限:检查操作请求是否超出了定义的权限。 常用存取

12、控制: 自主存取控制DAC:C2级,非常灵活。 同一用户对于不同的数据对象有不同的存取权限 不同的用户对同一对象也有不同的权限 用户还可将其拥有的存取权限转授给其他用户 强制存取控制(MAC): B1级,比拟严格。 每一个数据对象被标以一定的密级 每一个用户也被授予某一个级别的许可证 对于任意一个对象,只有具有合法许可证的用户才可以存取5、 用户权限有数据库对象和操作类型两个要素组成。6、 自主存取控制DAC方法 主要通过SQL提供的grant语句和revoke语句来实现。 授权:定义存取权限成为授权。 GRANT语句的一般格式: GRANT <权限>,<权限>. ON

13、 <对象类型> <对象名> TO <用户>,<用户>. WITH GRANT OPTION;GRANT功能作用:将对指定操作对象的指定操作权限授予指定的用户。发出GRANT语句的对象:DBA数据库管理员,数据库对象创立者,已经拥有该权限的用户。DBA拥有对数据库所有对象的所有权限, 用户对自己建立的根本表和视图拥有全部的操作权限。接受权限的用户:一个或多个具体用户,或PUBLIC,即全体用户。WITH GRANT OPTION:获得某种权限的用户还可以把这种权限再授予别的用户。假设没有指定该语句,那么用户只能使用该权限,不能传播该权限。 例1 把

14、查询Student表权限授给用户U1 GRANT SELECTINSERT/UPDATE(Sno) 或者为 ALL PRIVILEGES(全部操作权限) ON TABLE Student TO U1;或者 TO U1,U2,U3;或者 TO PUBLIC; 例2 把对表SC的insert权限授予U5,并允许将此权限在授予其他用户。 GRANT INSERT ON SC TO U5 WITH GRANT OPTION;执行例2后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:U5 可以将此权限授予U6即有U5发出以下语句 GRANT INSERT ON SC TO U6 WITH

15、GRANT OPTION; REVOKE(回收) REVOKE语句的一般格式为: REVOKE <权限>,<权限>. ON <对象类型> <对象名> FROM <用户>,<用户>.CASCADE|RESTRICT; REVOKE语句功能:从指定用户那里收回对指定对象的指定权限 CASCADE:联级回收 例 把用户U4修改学生学号的权限收回REVOKE UPDATE(Sno)ON TABLE Student FROM U4;或者为 PUBLIC 例 把用户U5对SC表的INSERT权限收回REVOKE INSERT ON T

16、ABLE SC FROM U5 CASCADE;/直接或间接从U5得到的insert权限也将被回收 注:系统不同,缺省回收不同,有的是缺省为CASCADE,有的为RESTRICT7、 强制存取控制MAC方法 在MAC中,DBMS所管理的全部实体被分为主体和客体两大类。 主体是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。 客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等等。 对于主体和客体,DBMS为它们每个实例值指派一个敏感度标记Label。 敏感度标记被分成假设干级别,通常为:绝密(Top Secret)、机密(Secret)、可信(Conf

17、idential)、公开(Public)等。 主体的敏感度标记被称为许可证级别,客体的敏感度标记称为密级。 当某一用户或一主体以标记label注册入系统时,系统要求他对任何客体的存取必须遵循如下规那么: (1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; (2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。 第五章1、 数据库的完整性是指数据的正确性和相容性。2、 完整性控制机制:1提供定义完整性月数条件的机制 2提供完整性检查的方法 3违约处理3、 实体完整性定义:PRIMARY KEY定义,表级完整性约束或列级完整性约束。 实体完整性:主属性不能为

18、空。 例: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 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

19、, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY Sno,Cno /*一组属性为主码,只能在表级定义主码*/ ;4、实体完整性检查和违约处理 按照实体完整性规那么,系统自动检查:1主码值是否唯一。2主码各属性是否为空。5、 参照完整性定义:创立表时,FOREIGN KEY定义。 参照完整性:外码取值为空或者等于相对应的主码的某个元祖的值。 例: CREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , Grade int, Primary key (Sno, Cno) foreign key (Sno) re

20、ferences Student(Sno), foreign key (Cno) references Course(Cno) );6、实现参照完整性要考虑的几个问题: 1外码能否接受空值问题2 在被参照关系中删除元组的问题3在参照关系中插入元组时的问题4修改关系中主码的问题 1 外码能否接受空值问题 在实现参照完整性时,系统除了应该提供定义外码的机制,还应提供定义外码列是否允许空值的机制。 例1:学生学号,姓名,性别,专业号,年龄专业专业号,专业名在学生关系中的专业号列可以取空值。 例2:学生学号,姓名,性别,专业号,年龄课程课程号,课程名,学分选修学号 ,课程号,成绩选修关系中的学号列不能

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

22、相应的元组,其主码值与参照关系插入元组的外码值相同,这时可有以下策略: 1受限插入 仅当被参照关系中存在相应的元组,其主码值与参照关系插入元组的外码值相同时,系统才执行插入操作,否那么拒绝此操作。 2递归插入 首先向被参照关系中插入相应的元组,其主码值等于参照关系插入元组的外码值,然后向参照关系插入元组。 4 修改关系中主码的问题(1) 不允许修改主码 在有些RDBMS中,修改关系主码的操作是不允许的。 (2) 允许修改主码 在有些RDBMS中,允许修改关系主码,但必须保证主码的唯一性和非空,否那么拒绝修改。 假设修改的是被参照关系,那么与删除类似,有三种策略: 级联修改:修改被参照关系主码值

23、的同时,修改参照关系中相应的外码值。 受限修改:拒绝此修改操作。只当参照关系中没有任何元组的外码值等于被参照关系中某个元组的主码值时,才能被修改。 置空值修改:修改被参照关系主码值的同时,将参照关系中相应的外码值置为空值。例: 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, 级

24、连更新 foreign key (Cno) references Course(Cno) ON DELETE CASCADE ON UPDATE CASCADE);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、

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

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

27、和E2是关系代数表达式,F是连接运算的条件,那么有 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) 选择与笛卡尔积的交换律如果F中涉及的

28、属性都是E1中的属性,那么 如果F=F1F2,并且F1只涉及E1中的属性,F2只涉及E2中的属性,那么由上面的等价变换规那么1,4,6可推出: 假设F1只涉及E1中的属性,F2涉及E1和E2两者的属性,那么仍有 它使局部选择在笛卡尔积前先做。 (7) 选择与并的分配律设E=E1E2,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与E2的公共属性 (10) 投影与笛卡尔积的分配律设E1和E2是

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

30、C.Cno=2; 把SQL语句转换成查询树,如以下图所示 为了使用关系代数表达式的优化法,假设内部表示是关系代数语法树,那么上面的查询树如以下图所示。 对查询树进行优化如以下图第十章1、 事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。2、 事务的四大特点:原子性Atomicity一致性Consistency隔离性Isolation持续性Durability 。3、 事务是恢复和并发控制的根本单位。4、 四大类故障:事务内部的故障、系统故障、介质故障、计算机病毒5、 恢复机制涉及的两个关键问题:第一,如何建立冗余数据;第二,如何利用这些冗余数据实施

31、数据库恢复。6、 建立冗余数据值常用的技术是:数据转储和登录日志文件。7、 数据转储分类 静态转储:在系统中无运行事务是进行的转储操作。简单,但会降低数据库的可用性。 动态转储:转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。 优点:不用等待正在运行的用户事务结束,不会影响新事务的运行。 缺点:不能保证副本中的数据正确有效。 海量转储:每次转储全部数据库。 增量转储:每次只转储上一次转储后更新过的数据。8、 日志文件:用来记录事务对数据库的更新操作的文件。 登记日志文件时必须遵循的两条原那么:1登记的次序严格按并发事务执行的时间次序。2必须先写日志文件,在写数据库。9、 事务

32、故障的回复由系统自动完成 步骤:1反向扫描文件日志即从最后向前扫描日志文件,查找该事务的更新操作。 2对该事务的更新操作执行逆操作。即将日志记录中“更新前的值Befor Image, BI写入数据库。 插入操作, “更新前的值为空,那么相当于做删除操作 删除操作,“更新后的值为空,那么相当于做插入操作 假设是修改操作,那么用BIBefore Image 代替 AIAfter Image 3 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。 4如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。10、 系统故障的回复由系统在重新启动时自动完成 步骤:1正向扫描日志文件即从

33、头扫描日志文件 Redo队列: 在故障发生前已经提交的事务 T1, T3, T8. Undo队列:故障发生时尚未完成的事务 T2, T4, T5, T6, T7, T9 . 2对Undo队列事务进行UNDO处理。反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作。 T2, T4, T5, T6, T7, T9 3对Redo队列事务进行REDO处理。正向扫描日志文件,对每个REDO事务重新执行登记的操作。 T1, T3, T8.11、 介质故障的回复 步骤:1装入最新的后备数据库副本,使数据库恢复到最近一次转储时的一致性状态。对于静态转储的数据库副本,装入后数据库即处于一致性状态。对于动态

34、转储的数据库副本,还须同时装入转储时刻的日志文件副本,利用与恢复系统故障相同的方法即REDO+UNDO,才能将数据库恢复到一致性状态。 2装入有关的日志文件副本,重做已完成的事务。首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值写入数据库。第十一章1、 多事务执行方式 串行执行、交叉并发方式、同时并发方式2、为什么要进行并发控制?当多个用户并发地存取数据库时就会产生多个事务同时存取同一数据的情况。假设对并发操作不加控制就可能会存取和存储不正确的数据,破坏是事务的一致性和数据库的一致性。所以

35、数据库管理系统必须提供并发控制机制。3、 数据库管理系统中并发控制机制的责任:保证事务的隔离性和一致性,DBMS需要对并发操作进行正确调度。4、 并发操作带来的数据不一致性主要有:丧失修改、不可重复读、读“脏数据。5、 并发控制技术:封锁。 6、 根本的封锁类型有两种:排它锁写锁、X锁,共享锁读锁、S锁。7、 封锁类型的相容矩阵:Y=Yes,相容的请求N=No,不相容的请求 T1 T2XS-XNNYSNYY-YYY 8、 三级封锁协议: 1级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。 正常结束COMMIT 非正常结束ROLLBACK 1级封锁协议可防止丧失修改 在1

36、级封锁协议中,如果是读数据,不需要加锁的,所以它不能保证可重 复读和不读“脏数据。 2级封锁协议:1级封锁协议+事务T在读取数据R前必须先加S锁,读完后即可释放S 锁。 2级封锁协议可以防止丧失修改和读“脏数据。 在2级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。 3级封锁协议:1级封锁协议 + 事务T在读取数据R之前必须先对其加S锁,直到事务 结束才释放。 3级封锁协议可防止丧失修改、读脏数据和不可重复读。 三级封锁协议总结: 9、活锁:某个事务永远处于等待状态。 防止活锁的简单方法是采用先来先效劳的策略。10、死锁:多个事务同时处于等待状态。每个事务都在等待其它事务释放

37、锁使其能够继续执行,从而出现多个事务互相等待的僵局,每个事务永远不能结束。11、死锁的预防:不易实现,故DBMS在解决死锁问题上普遍采用诊断并解除死锁的方法1一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否那么就不能继续执行。一次封锁法存在的问题:降低并发度、扩大封锁范围。将以后要用到的全部数据加锁,势必扩大了封锁的范围,从而降低了系统的并发度。2顺序封锁法:顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。顺序封锁法存在的问题:维护本钱高。数据库系统中可封锁的数据对象极其众多,并且随数据的插入、删除等操作而不断地变化,要维护这样极多而且变化的资源的封锁顺序非常困难,本钱很高。12、 死锁诊断与解除 死锁诊断方法: 1超时法:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。 优点:实现简单 缺点:有可能误判死锁。时限假设设置得太长,死锁发生后不能及时发现。 2等待图法:用事务等待图动态反映所有事务的等待情况。 事务等待图是一个有向图G=(T,U) T为结点的集合,每个结点表示正运行的事务 U为边的集合,每条边表示事务等待的情况 假设T1等待T2,那么T1,T2之间划一条有向边,从T1指向T2 并发控制子系统周期性地比方每隔1 min检测事务等待图,如果发现图中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论