以下内容是基础(理论)
*可能有重复内容
数据库的4个基本概念:数据、数据库、数据库管理系统、数据库系统 | 描述事物的符号记录称为数据 | 数据的含义称为数据的语义 | 数据库是长期储存在计算机内、有组织的可共享的大量数据的集合,数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享 | 数据库系统由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的储存、管理、处理和维护数据的系统 | 发展:人工管理、文件系统管理、数据库系统/阶段 | 数据库系统特点:1、数据结构化,数据库系统的主要特征,与文件系统的本质区别 2、数据共享性高、冗余度低且易扩充 3、数据独立性高,数据独立性、物理独立性、逻辑独立性 4、数据由数据库管理系统统一管理和控制 | 数据模型也是一种模型,它是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的 | 数据模型(1概念模型-按用户观点对数据和信息建模,用于数据库设计 2逻辑模型-按计算机系统的观点对数据建模,主要用于数据库管理系统的实现 3物理模型-对数据最底层的抽象,它描述数据在系统内部的标识和存取方法,是面向计算机系统的) | 概念模型(基本概念-1实体:客观存在并可相互区别的事务、2属性:实体所具有的某一特性、3码:唯一标识实体的属性、4实体型:用实体及其属性名集合来抽象刻画同类实体、5实体集:同一类型实体的集合、6联系)| 数据模型组成要素:(1数据结构-描述数据库的组成对象及对象之间的联系 2数据操作-数据库中各种对象的实列允许执行的的操作的集合 3数据的完整性约束条件-一组完整性规则,用于限定数据库状态及状态的变化,以保证数据的正确有效和相容)| 常用数据模型: 层次、网状、关系模型 | 三级模式结构:(1模式-也称为逻辑模式,是全体数据的逻辑结构和特征的描述,所有用户的公共数据试图 2外模式-也称为子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 3内模式-也称为存储模式,一个数据库只有一个内模式、它是数据物理结构和粗存储方式的描述,是数据在数据库内部的组织方式)| 二级映像功能:1外模式/模式映像,当模式改变时由数据库管理员对外模式/模式映像做出相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性 2模式/内模式映像,当数据库的存储结构改变时由数据库管理员对模式/内模式映像做出相应改变,可以使模式保持不变。从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性 | 三类完整性约束:实体/参照/用户定义完整性 | 实体完整性规则:若属性(一组或一个属性)A是基本关系R的主属性,则A不能区空值(不知道、不存在、无意义) | 数据库安全性:指保护数据库以防止不合法使用所造成的数据泄露更改和破坏 | 数据的不安全因素(1非授权用户对数据库的恶意存取和破坏 2数据库中重要或敏感的数据泄露 3安全环境的脆弱性)| 视图:通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定的安全保护 | 数据库的完整性:指数据的正确性和相容性(维护数据库的完整性-1提供定义完整性约束条件的机制 2、提供完整性检查方案 3进行违约处理)| 数据依赖:是一个关系内部属性与属性之间的一种约束关系,这种关系是通过属性之间值的相等与否体现出来的数据间相关联系。最重要的是函数依赖和多值依赖 | 数据库设计定义:指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的管理和存储数据,满足各种用户的应用需求,包括信息管理要求和数据库操作要求 | 数据库转储:是数据库回复中采用的基本技术,即数据库管理员定期的将数据库复制到磁带、磁盘或其他存储介质上的过程,这些备用数据称为后备副本。数据转储有两种方式,分别可以在两种状态下进行,所以转储方法可分为四类-1动态海量转储 2动态增量转储 3静态海量转储 4静态增量转储 | 日志文件:用来记录事务对数据库更新操作的文件 作用:1事务故障恢复和系统故障恢复必须使用日志文件 2在动态转储方式中必须建立日志文件,后备副本和日志文件结合才能有效的恢复数据库 3在静态转储方式中也可以建立日志文件,在数据库毁坏并恢复到转储结束时的正确状态后,可用日志文件对已完成的事务做重做处理 | 并发控制(事务是并发控制的基本单位):事务只能串行执行,事务在执行过程中需要不同资源,如果事务串行执行,许多系统资源将处于空闲状态,因此为了充分利用系统资源、发挥数据库共享资源的特点,应允许多个事务并行执行。并发控制机制:多个用户并发存取数据库时会产生多个事务存取同一数据的情况,若不加以控制就可能会存取和存储不正确的数据破坏事务和数据库的一致性,所以数据库管理系统必须提供并发机制,并发控制是衡量数据库管理系统性能的重要标志之一。并发控制的主要技术:封锁、时间戳、乐观控制法和多版本并发控制等。
第一章
1.1 数据库系统概述
数据是数据库中存储的基本对象(描述事物的符号)
数据的含义成为语义,语义和数据不可分开
数据库是长期储存在计算机内,有组织的,可共享的大量数据的集合,具有较小的冗余度,较高的数据独立性和易扩展性。
数据(Data)数据库(DB)数据库管理系统(DBMS)数据库系统(DBS)
数据库管理系统是系统软件
数据库管理系统提供数据定义语言(DDL),数据操纵语言(DML)
数据库系统是由数据库、数据库管理系统、应用程序、和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。
数据管理的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段
1、数据不共享、数据不具有独立性
2、数据共享性差、冗余度大、数据独立性差
3、可共享、冗余度小、数据独立性高、易扩展
从文件系统到数据库系统标志着数据管理技术的飞跃
与人工管理和文件管理相比,数据库系统的特点为:
1、数据结构化
实现了整体数据的结构化,是数据库的主要特征之一,是数据库系统与文件系统的本质区别
2、数据的共享性高、冗余度低且易扩充
数据共享可以大大减少数据冗余,节约存储空间,还能避免数据之间的不相容性和不一致性。
3、数据独立性高
物理独立性:用户的应用程序 与 数据库中数据的物理存储 是相互独立的
逻辑独立性:用户的应用程序 与 数据库的逻辑结构 是相互独立的
4、数据由数据库管理系统统一管理和控制
(1) 数据的安全性保护
保护数据以防止不合法的使用导致数据泄密或破坏
(2) 数据的完整性检查
数据的正确性、有效性、相容性
(3) 并发控制
并发:多个用户可以同时存取数据库中的数据
多用户同时进行同一操作可能会互相干扰导致错误,所以要对并发操作进行控制
(4) 数据库恢复
数据库的出现使信息系统从 以加工数据的程序 为中心 转向 围绕共享的数据库 为中心的新阶段。
1.2 数据模型
数据模型是数据库系统的核心和基础
根据模型应用的不同目的,可以分为
第一类:概念模型
也称信息模型,按照用户观点来对数据进行建模,主要用于数据库设计
第二类:逻辑模型和物理模型
包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型。他是按计算机系统的观点对数据的建模,主要用于数据库管理系统的实现
现实世界—抽象—》信息世界—转换—》机器世界
概念模型(信息世界的基本概念)
- 实体
客观存在并可相互区别的事物成为实体 - 属性
实体具有的某一特性称为属性 - 码
唯一标识实体的属性集 - 实体型
用实体名及其属性名集合来抽象和刻画同类实体 - 实体集
同一类型的实体的集合 - 联系
实体之间的联系通常是指不同实体集之间的联系
实体之间的联系有一对一、一对多和多对多
概念模型的一种表示方法:实体联系方法(E-R方法,即E-R模型)
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成
1、数据结构
数据结构描述数据库的组成对象以及对象之间的联系
2、数据操作
数据操作是指对数据库中各种对象的实例允许执行的操作的集合,包括操作机有关的操作规则
3、数据的完整性约束
数据的完整性约束条件是一组完整性规则
常用的逻辑数据模型有:
层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型。其中层次模型和网状模型统称为格式化模型。
在格式化模型中数据结构的单位是基本层次联系,
基本层次联系是指两个记录以及它们之间的一对多(包括一对一)联系
联系的始点成为双亲结点,终点被称为子女结点
层次模型
在数据库中定义,满足下面两个条件的基本层次联系的集合为层次模型(结点双亲唯一)
1、有且只有一个结点没有双亲结点,这个结点被称为根结点
2、根以外的其他结点有且只有一个双亲结点
层次模型的数据操纵主要有查询、插入、删除和更新。执行时要满足完整性约束条件。
插入时,如果没有双亲就不能插入子女,删除双亲,子女也会被删除
网状模型
网状模型的代表是DBTG系统(CODASYL)系统。
在数据库中定义,满足下面两个条件的基本层次联系的集合为网状模型
1、允许一个以上的结点无双亲
2、一个结点可以有多余一个的双亲
层次模型中子女结点和双亲结点的联系是唯一的,在网状模型中这种关系可以不唯一
关系模型
关系模型的数据结构:
关系:一个关系对应一张表
元组:表中的一行为一个元组
属性:表中的一列为一个属性
码/键:表中的某个属性组,他可以唯一确定一个元组
域:是一组具有相同数据类型的值的集合
分量:元组中的一个属性值
关系的没一个分量必须是一个不可分的数据项
关系模型的数据操纵与完整性约束
关系模型会将存储路径向用户隐藏,大大提高了数据的独立性,操作对象和操作结果都是关系
1.3 数据库系统结构
模式是相对稳定的,而实例是相对变动的)
数据库系统的三级结构模式(外模式、模式、内模式)
1、模式
模式也称为逻辑模式,是所有用户的公共数据视图。他是模式结构的中间层,不涉及物理层面,也不涉及具体的应用程序。数据库管理系统提供模式数据定义语言来定义语言(模式DDL)
2、外模式
外模式又称为子模式,或用户模式,他是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集,一个数据库可以有多个子模式,但一个应用程序只能有一个子模式。外模式是保障数据库安全的一个有力措施,每个用户只能看见和访问自己所对应的子模式中的数据,其他数据不可见。
3、内模式
内模式也称为存储模式,一个数据库只有一个内模式,他是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
数据库系统在这三级模式之间提供了两层映像:外模式/模式,模式/内模式。
正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
1、外模式/模式映像保证了数据的逻辑独立性
2、模式/内模式映像保证了数据的物理独立性
2.3 关系的完整性
关系模型中有三类完整性约束:
实体完整性、参照完整性、用户自定义完整性,前两个被称为关系的两个不变性。
实体完整性规则:主键不能为空。
参照完整性规则:外键必须等于引用的表的主键,或者为空值。
2.4 关系代数运算
传统的集合运算(二目运算):并、差、交、笛卡尔积
专门的关系运算:选择、投影、连接(等值连接、自然连接)、除运算
选择(σ):选择一整条记录,即选择满足条件的一个元组,选择运算是选择关系中行的子集
Eg.查询信息系(IS系)全体学生
σ Sdept=‘IS’(Student)
投影(π):投影是选取关系中列的子集
(由于投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列之后,就可能出现重复行,投影结果中不应该包含重复行)
连接(等值“=”,自然连接“ ⋈”):
4.1数据库安全性概述
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
桔皮书:TCSEC、受信任电脑系统评价标准
紫皮书:TCSEC/TDI、可信计算机系统评估准则关于可信数据库系统的解释
cc准则:我国2001年采用的信息技术安全性评估标准
从四个方面来描述安全性级别划分的指标:安全策略、责任、保证、文档
TCSEC/TDI标准:
B1:标记安全保护(对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制, B1级别的产品才被认为是真正意义上的安全产品)
C1:自主安全保护(自主存取控制DAC)
CC标准:
EAL2:结构测试 C1
EAL3:系统地测试和检查 C2
EAL7:形式化验证的设计和测试 A1
4.3 视图机制
可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内。把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护。
5.1 实体完整性
实体完整性:主键
为避免全表扫描,关系数据库一般都会自动在主键上建立索引,从而大大提升搜索效率。
5.2 参照完整性
参照完整性:外键
当进行的操作可能会破坏参照完整性约束时,会执行以下策略:
拒绝执行(默认操作)、级联操作(被引用的表数据被修改后,级联删除所有相关的数据)、设置为空值
5.3 用户自定义完整性
可以根据用户要求定义属性上的约束条件,包括:
列值非空(not null)
列值唯一(unique)
检查列值是否满足一个表达式(check)
可以设置对属性的约束,也可以设置对元组的约束
6.1 关系数据理论
一个关系模式应当是一个五元组,即:R(U,D,DOM,F)
R:关系名,U:一组属性,D:U中的属性所来自的域,DOM:属性到域的映射,
F:U上的一组数据依赖。
第一范式(1NF):数据库表的每一列都是不可分割的基本数据项。
第一范式是对关系模式的基本要求,不满足第一范式的就不是关系型数据库。
第二范式(2NF):每个表必须有主关键字,其他数据元素与主关键字一一对应。通常称这种关系为函数依赖关系。
数据依赖:一个关系内部属性与属性之间的一种约束关系。
函数依赖(FD),属于第二范式定义范围,多值依赖(MVD),属于第四范式定义范围
一个好的模式应当不会发生插入异常,删除异常和更新异常,数据冗余尽可能的少。
7.1 数据库设计概述
数据库设计:数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并根据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
数据库设计的六个阶段:
1、需求分析
2、概念结构设计
3、逻辑结构设计
4、物理结构设计
5、数据库实施
6、数据库运行和维护
10.1 事务的基本概念
事务:用户定义的一个数据库操作序列,是不可分割的工作单位,一个程序包含多个事务。
事务定义:
Begin Transaction:标志事务的开始
Commit:将事务中对数据库的更改写入物理磁盘
Rollback:将事务中对数据库的所有已完成的操作全部撤销
事务的ACID特性:原子性、一致性、隔离性、持续性
1、原子性:事务不可拆分、要不全做、要不都不做
2、一致性:事务的执行结果必须是使数据库从一个一致性状态变到另一个一致性状态,一致性跟原子性是密切相关的。
3、隔离性:一个事务的执行不能被其他事务干扰,即并发执行的各个事务应该相互独立。
4、持续性(永久性):一个事务一旦提交,对数据库的影响应该是永久的。
10.2数据库恢复概述
数据库必须拥有把数据库从错误状态恢复到某一已知的正确状态的功能。恢复子系统是数据库管理系统的一个重要组成部分,常常占整个系统代码的10%以上。
10.3故障的种类
1、事务内部发生的故障
事务内部更多的故障是非预期的,是不能由应用程序处理的,应该执行事务撤销。
2、系统故障
是指造成系统停止运转的任何事件,使得系统要重新启动。
3、介质故障
系统故障被称为软故障,介质故障称为硬故障
4、计算机病毒
恢复的原理非常简单,冗余。数据库中任何一处被破坏的或不正确的数据可以根据存储在别处的冗余数据来重建。
10.4恢复的实现技术
建立冗余数据最常用的技术是数据转储和登记日志文件。
数据转储:人工的将某一时间节点的数据备份到其他物理存储设备上。
静态转储:系统中无运行中的事务时进行
动态转储:转储期间允许对数据库进行存取或修改
海量转储:每次转储全部的数据库
增量转储:仅转储距上次转储过后更新的数据
(动态海量转储、动态增量转储、静态海量转储、静态增量转储)
10.4.2日志文件
日志文件:用来记录事务对数据库更新操作的文件(单位:记录、数据块)
记录为单位的日志文件内容:开始结束标记、所有更新操作
内容主要包括:事务标识、操作的类型、操作对象、更新前数据的旧值,更新后数据的新值
登记日志文件时需遵循两条原则:
1、登记的次序严格按照并发事务执行的时间次序
2、必须先写日志文件,后写数据库
11.1并发控制
事务的执行从真正意义上来说只能串行,即每个时刻只有一个事务运行。
单机处理器上的事务并行实际上是轮流串行执行,虽然没有真正意义上的并行,但是减少了处理机的空闲时间,提高了系统的效率。
当多个用户并发的存取数据库时就会产生多个事务同时存取同一数据库的情况。若不进行并发控制,就会破坏事务和数据库的一致性。
11.1.2并发控制概述
事务是并发控制的基本单位。
并发操作带来的数据不一致性包括:丢失修改、不可重复读、读脏数据
产生上述不一致性的原因是并发操作破坏了事务的隔离性。
脏数据:数据库有一数据S,T1对其进行修改操作,将S修改为S1,但是T1撤销了操作。这时有并发的T2读取到T1修改的数据S1,此时数据库中数据仍为S,S1就是脏数据。
并发控制的机制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。
并发控制的主要技术有:封锁、时间戳、乐观控制法、多版本并发控制(MVCC)
11.2封锁
封锁是实现并发控制的一个非常重要的技术。
基本封锁类型有两种:排他锁(写锁)和共享锁(读锁)
11.3封锁协议
何时申请锁、持锁时间、何时释放,这些规则称为封锁协议
一级封锁协议:事务T在修改数据R前必须对其加写锁,直至事务结束才能释放
仅防止丢失修改
二级封锁协议:在一的基础上,增加T在读取数据R前对其添加读锁,读完后释放读锁
既可防止丢失修改,又可以防止读脏数据
三级封锁协议:在一的基础上,增加T在读取数据R前对其添加读锁,事务结束释放
可以防止修饰修改,可以防止读脏数据,也可以防止不可重复读
上述三级协议的主要区别在于什么操作需要申请封锁,以及何时释放锁。
11.4活锁和死锁
活锁:多个事务同时申请封锁时,有的事务可能会永远在排队,形成活锁
避免活锁的简单方法是采用先来先服务的策略。
死锁:两个事务互相封锁,互相等待,即两个事务永远不会结束,形成死锁
预防死锁:一次封锁法、顺序封锁法
诊断与解除死锁:超时法、事务等待图法
通常会释放一个代价最小的锁,使得其他的事务可以继续运行下去
1.1 数据库系统概述
数据是数据库中存储的基本对象,数据的含义称为语义
数据库是长期储存在计算机内,有组织的,可共享的大量数据的集合,具有较小的冗余度,较高的数据独立性和易扩展性。
数据库管理系统是系统软件。
数据(Data)数据库(DB)数据库管理系统(DBMS)数据库系统(DBS)
数据库管理系统提供数据定义语言(DDL),数据操纵语言(DML)
数据库系统是由数据库、数据库管理系统、应用程序、和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。
数据管理的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段
数据独立性分为:物理独立性和逻辑独立性
数据库的出现使信息系统从 以加工数据的程序为中心 转向 围绕共享的数据库为中心的新阶段。
数据库管理系统必须提供的数据控制功能:
数据的安全性保护、数据的完整性检查、并发控制、数据库恢复
1.2 数据模型
数据模型是数据库系统的核心和基础
数据模型分为:
概念模型:也称信息模型,主要用于数据库设计
逻辑模型和物理模型:包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型,主要用于数据库管理系统的实现(现实世界—抽象—》信息世界—转换—》机器世界)
概念模型包括:实体、属性、码、实体型、实体集、联系
概念模型的一种表示方法:实体联系方法(E-R方法,即E-R模型)
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成
联系的始点成为双亲结点,终点被称为子女结点
层次模型:只有一个根节点,且根以外的结点只有一个双亲结点
网状模型:允许一个以上的结点无双亲、一个结点可以有多余一个的双亲
层次模型和网状模型统称为格式化模型。
关系模型:关系、元组、属性、码/键、域、分量
关系的每一个分量必须是一个不可分的数据项
关系模型会将存储路径向用户隐藏,大大提高了数据的独立性,操作对象和操作结果都是关系。
1.3 数据库系统结构
数据库系统的三级结构模式(外模式、模式、内模式)
数据库系统在这三级模式之间提供了两层映像:外模式/模式,模式/内模式。
正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
1、外模式/模式映像保证了数据的逻辑独立性
2、模式/内模式映像保证了数据的物理独立性
2.3 关系的完整性
关系模型中有三类完整性约束:
实体完整性、参照完整性、用户自定义完整性,前两个被称为关系的两个不变性。
实体完整性规则:主键不能为空。
参照完整性规则:外键必须等于引用的表的主键,或者为空值。
4.1数据库安全性概述
数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
桔皮书:TCSEC
紫皮书:TCSEC/TDI
cc准则:我国2001年采用的信息技术安全性评估标准
从四个方面来描述安全性级别划分的指标:安全策略、责任、保证、文档
TCSEC/TDI标准:
B1:标记安全保护(真正安全,实施强制存取控制(MAC)及审计)
C1:自主安全保护(自主存取控制DAC)
CC标准:
EAL2:结构测试 C1
EAL3:系统地测试和检查 C2
EAL7:形式化验证的设计和测试 A1
4.3 视图机制
可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内。把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护。
5.2参照完整性
当进行的操作可能会破坏参照完整性约束时,会执行以下策略:
拒绝执行、级联操作、设置为空值
5.3用户自定义完整性
列值唯一,列值非空,列值是否满足表达式check
6.1 关系数据理论
五元组R(U,D,DOM,F)
R:关系名,U:一组属性,D:U中的属性所来自的域,DOM:属性到域的映射,F:U上的一组数据依赖。
第一范式(1NF):数据库表的每一列都是不可分割的基本数据项。
第二范式(2NF):每个表必须有主关键字,其他数据元素与主关键字一一对应。通常称这种关系为函数依赖关系。
数据依赖:一个关系内部属性与属性之间的一种约束关系。
函数依赖(FD),属于第二范式定义范围,多值依赖(MVD),属于第四范式定义范围
7.1 数据库设计概述
数据库设计:数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并根据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
数据库设计的六个阶段:
需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护
10.1事务的基本概念
事务:用户定义的一个数据库操作序列,是不可分割的工作单位,一个程序包含多个事务。
事务定义:Begin Transaction:标志事务的开始Commit:将更改提交到物理磁盘Rollback:回滚
事务的ACID特性:原子性、一致性、隔离性、持续性
10.2数据库恢复概述、故障的种类、恢复的技术
恢复子系统是数据库管理系统的一个重要组成部分,常常占整个系统代码的10%以上。
事务内部发生的故障、系统故障、介质故障、计算机病毒
数据转储基本分为:静态转储、动态转储、海量转储、增量转储
实现分为:动态海量转储、动态增量转储、静态海量转储、静态增量转储
10.3日志文件
日志文件:用来记录事务对数据库更新操作的文件(单位:记录、数据块)
登记日志文件时需遵循两条原则:
1、登记的次序严格按照并发事务执行的时间次序
2、必须先写日志文件,后写数据库
11.1并行控制
单机处理器上的事务并行实际上是轮流串行执行,虽然没有真正意义上的并行,但是减少了处理机的空闲时间,提高了系统的效率。(不进行并发控制会破坏事务和数据库的一致性)
事务是并发控制的基本单位。
并发操作带来的数据不一致性包括:丢失修改、不可重复读、读脏数据
并发控制的主要技术有:封锁、时间戳、乐观控制法、多版本并发控制(MVCC)
11.2封锁
封锁是实现并发控制的一个非常重要的技术。
基本封锁类型有两种:排他锁(写锁)和共享锁(读锁)
一级:写锁(防止丢失修改)
二级:写锁、读锁(读完释放)(+防止读脏数据)
三级:写锁、读锁(事务结束释放)(+防止不可重复读)
11.3活锁和死锁
活锁:多个事务同时申请封锁时,有的事务可能会永远在排队,形成活锁
避免活锁的简单方法是采用先来先服务的策略。
死锁:两个事务互相封锁,互相等待,即两个事务永远不会结束,形成死锁
预防死锁:一次封锁法、顺序封锁法
诊断与解除死锁:超时法、事务等待图法
通常会释放一个代价最小的锁,使得其他的事务可以继续运行下去
本文共 8753 个字数,平均阅读时长 ≈ 22分钟
评论 (0)