数据库原理及应用(MySQL)

建议大屏观看,避免格式错误,影响观感

目录

================第一章 数据库系统概述==============

1.数据库系统概述

1.1.信息

1.2.数据

1.3.信息和数据之间的联系

1.4.数据库(DB)

1.5.数据库管理系统(DBMS)

1.6.数据库管理系统的功能

1.7.学习整体框架

1.8.数据库系统

2.数据模型

        2.1 数据模型的作用和相关概念

        2.2 两类数据模型

        2.3 信息世界的基本概念

        2.4 ER图的画法及相关注意事项

        3.数据库系统体系结构   

                3.1三级模式结构   

==================第二章 关系数据库===============

1 关系数据结构及其形式化定义

        笛卡尔积

        关系的实质(定义)

        超码和候选码

        任选一个候选码可以当作主码

        主属性是候选码的属性,所有不属于候选码的属性就是非主属性

        关系模式和关系的区别

       2 关系操作

        3 关系的完整性

        参照完整性

        用户定义的完整性

        4 关系代数

           1. 关系代数运算的三个要素:

        2. 关系运算符

                2.1 集合运算符

                2.2  比较运算符

                2.3 逻辑运算符

                2.4 专门的关系运算符

        3.专门的关系运算符相关讲解

                3.1 选择

                3.2 投影

                3.3 连接

                        3.4 除运算

===========第三章 关系数据库标准语言SQL=============

===============第四章 关系数据库的安全性=============

4.1 数据库安全性概述

        1. 数据库安全性的必要性

        2. 计算机系统的安全模型

4.2自主存取控制

        1.自主存取控制包括两大方面

2.其它安全机制

         1 用户身份鉴别

         2 视图机制

           3 审计

           4 数据加密

===============第五章 关系的规范化理论==============

1 规范化理论的提出

2 相关概念

        (1)关系和关系模式

        (2)数据依赖

        (3)泛关系模式

3 改造冗余的泛关系模式

4 函数依赖相关概念

        (1)导出

          (2)完全函数依赖

            (3)部分函数依赖

            (4)传递函数依赖

                (5) 如

                (6)上面的几种函数依赖是根据候选码中引出的状态来决定的。

5 部分函数依赖和传递函数依赖会导致数据的冗余

6 范式

        (1)范式的基本概念

        (2)各个范式之间存在包含的关系:

        (3)第一范式 (比如泛关系)

        (4)第二范式 

        (5)第三范式

        (6)BCNF

7 函数依赖的公理系统

        (1)依赖集的闭包

              (2)属性集闭包与F逻辑蕴含的充要条件

                (3)求属性集闭包的算法

                (4)码值理论

                (5)模式分解

                        (6)判断关系模式的无损连接性

==================第六章 数据库设计=================

1 数据库设计概述

2 数据库设计方法

        手工试凑:

        规范设计法:

3 数据库设计的六个阶段

4 数据字典:

5 ER图画法的思路(概念结构设计)

        (1)正确区分需求分析中的实体、属性、联系

        (2)ER图的画图顺序

        (3)例题

                (4)相关细节

                        (5)实际案例

6 逻辑结构设计(将ER图转化为关系模式)

        (1)步骤:

         (2)  实体及其属性向关系表转换的原则:

         (3)联系及其属性转换为关系表

                        first: 一对一的情况

                        second: 一对多的情况

                        third:多对多的情况(必须拆)

        (4)例子

        (5) 数据模型的优化

        (6)设计用户的子模式

7  物理结构设计

===============第七章 数据库恢复技术================

【1】事务

        1 事务的基本概念

        2 如何定义事务

        3 事务的ACID特性

        4 破坏ACID特性的因素

【2】数据库恢复概述     

【3】故障的种类

                1 事务故障

                2 系统故障

                3 介质故障

【4】恢复的实现技术

        1 探讨问题

        2 数据转储

                (1)转储的概念和例子

                (2)转储技术的分类

            3 日志文件

【5】恢复的策略

【6】 具有检查点的恢复技术

===============第八章 并发控制==================   

【1】 并发控制的概述

        事务的调度

        可串行化的调度

        并发控制的必要性

【2】封锁

   【3】封锁协议             

                (1) 一级封锁协议

                (2) 二级封锁协议

                (3)三级封锁协议

【4】封锁协议带来的副作用(活锁和死锁)

【5】并发调度的可串行性

【6】两段锁协议


================第一章 数据库系统概述==============

1.数据库系统概述

1.1.信息

        信息是数据加工过后的数据,具有一定的时效性、真实性以及传递性。具体表现在比如我前一天晚上看了天气预报之后我就会知道明天的天气情况,这就是信息的具体实例。

1.2.数据

        数据不仅仅是数字,数据是符号,这种符号的形式可以是视频、表格、数字等等,计算机通过把这些形式的符号数字化之后就构成了数据。

1.3.信息和数据之间的联系

        数据能够传递信息,也就是说信息是内涵,信息是数据加工过后的数据。

1.4.数据库(DB)

        说白了就是数据的仓库,存放数据的仓库,这个仓库存放数据是有组织的,常见的组织形式有层次模型,网状模型和关系模型等等。

1.5.数据库管理系统(DBMS)

         是一种基础软件,位于用户和操作系统之间,类似于操作系统。

        数据库原理及应用(MySQL)_第1张图片

1.6.数据库管理系统的功能

              数据库原理及应用(MySQL)_第2张图片

1.7.学习整体框架

             数据库原理及应用(MySQL)_第3张图片

1.8.数据库系统

            数据库原理及应用(MySQL)_第4张图片

2.数据模型

        2.1 数据模型的作用和相关概念

          数据库原理及应用(MySQL)_第5张图片

         

        2.2 两类数据模型

         数据库原理及应用(MySQL)_第6张图片

         

         

        数据库原理及应用(MySQL)_第7张图片

        

        2.3 信息世界的基本概念

        数据库原理及应用(MySQL)_第8张图片

        小明是一个聪明的学生,他数学考了35分

        这句话中:小明是实体,他属于学生这个实体集,他的属性是聪明还有数学成绩,

        其中数学成绩的属性值是35。

        数据库原理及应用(MySQL)_第9张图片

        2.4 ER图的画法及相关注意事项

       (1) 相关概念的表示方法:

       数据库原理及应用(MySQL)_第10张图片

        (2) 领导也是职工

                        数据库原理及应用(MySQL)_第11张图片

        (3) ER图的画图步骤

                        1. 从现实世界抽象出实体和实体的属性

                           数据库原理及应用(MySQL)_第12张图片

                      2. 理清各个实体之间的联系

                           数据库原理及应用(MySQL)_第13张图片

                           ​​​​​​数据库原理及应用(MySQL)_第14张图片

                        3. 为各个实体添加已知属性

                            数据库原理及应用(MySQL)_第15张图片

                        (4)逻辑模型的三要素

                                数据结构:用什么样的数据结构存储和管理数据

                                数据操作:数据库中的数据支持怎样的数据操作

                                数据的完整性约束:数据及其联系的制约()

        3.数据库系统体系结构   

                3.1三级模式结构   

                                外模式 模式 内模式

                                数据库原理及应用(MySQL)_第16张图片

           

==================第二章 关系数据库===============

        考前必看:传送锚点

     语法树的优化查询:传送锚点

1 关系数据结构及其形式化定义

        笛卡尔积

        数据库原理及应用(MySQL)_第17张图片

         

        关系的实质(定义)

                关系是笛卡尔积的子集

                数据库原理及应用(MySQL)_第18张图片

        

        超码和候选码

        数据库原理及应用(MySQL)_第19张图片

        任选一个候选码可以当作主码

        主属性是候选码的属性,所有不属于候选码的属性就是非主属性

        数据库原理及应用(MySQL)_第20张图片

        数据库原理及应用(MySQL)_第21张图片

         数据库原理及应用(MySQL)_第22张图片

        关系模式和关系的区别

        数据库原理及应用(MySQL)_第23张图片

       2 关系操作

         数据库原理及应用(MySQL)_第24张图片

        数据库原理及应用(MySQL)_第25张图片

        3 关系的完整性

        数据库原理及应用(MySQL)_第26张图片

        数据库原理及应用(MySQL)_第27张图片

        数据库原理及应用(MySQL)_第28张图片

        就是候选码中的值不能取空值

        参照完整性

        数据库原理及应用(MySQL)_第29张图片

        数据库原理及应用(MySQL)_第30张图片

        用户定义的完整性

         数据库原理及应用(MySQL)_第31张图片

        4 关系代数

           1. 关系代数运算的三个要素:

           数据库原理及应用(MySQL)_第32张图片

        2. 关系运算符

                2.1 集合运算符

                数据库原理及应用(MySQL)_第33张图片

                集合运算符除了笛卡尔积有硬性要求:

                数据库原理及应用(MySQL)_第34张图片

                广义笛卡尔积运算:

                前提:

                数据库原理及应用(MySQL)_第35张图片

                性质:

                数据库原理及应用(MySQL)_第36张图片

                例如:

                数据库原理及应用(MySQL)_第37张图片

                2.2  比较运算符

                数据库原理及应用(MySQL)_第38张图片

                2.3 逻辑运算符

                数据库原理及应用(MySQL)_第39张图片

                2.4 专门的关系运算符

                数据库原理及应用(MySQL)_第40张图片

        3.专门的关系运算符相关讲解

                3.1 选择

                        概念解析:

                数据库原理及应用(MySQL)_第41张图片

                        例子:

                数据库原理及应用(MySQL)_第42张图片

                数据库原理及应用(MySQL)_第43张图片

                3.2 投影

                        相关概念

                数据库原理及应用(MySQL)_第44张图片

                        例子:

                数据库原理及应用(MySQL)_第45张图片

                数据库原理及应用(MySQL)_第46张图片

                先选择再投影:

                数据库原理及应用(MySQL)_第47张图片

                数据库原理及应用(MySQL)_第48张图片

                3.3 连接

                数据库原理及应用(MySQL)_第49张图片

=========================================================================

                数据库原理及应用(MySQL)_第50张图片

                实质:两个关系先做笛卡尔积然后利用关系进行选择出符合条件的元组

                数据库原理及应用(MySQL)_第51张图片

                数据库原理及应用(MySQL)_第52张图片

                数据库原理及应用(MySQL)_第53张图片

                数据库原理及应用(MySQL)_第54张图片

=========================================================================

                数据库原理及应用(MySQL)_第55张图片

=========================================================================

                数据库原理及应用(MySQL)_第56张图片

                自然连接就是特殊的等值连接

                要求:必须有相同的属性组

                数据库原理及应用(MySQL)_第57张图片

                例子:

                数据库原理及应用(MySQL)_第58张图片

                数据库原理及应用(MySQL)_第59张图片

                数据库原理及应用(MySQL)_第60张图片

                数据库原理及应用(MySQL)_第61张图片

                        3.4 除运算

                除运算的实质是笛卡尔积的逆运算

                除运算使用的前提:

                

                除运算的使用比如要找出选修了全部课程的学生的学号:

                数据库原理及应用(MySQL)_第62张图片

                除运算的例子:

                数据库原理及应用(MySQL)_第63张图片

===========第三章 关系数据库标准语言SQL=============

这一章建议各位去网上系统的学习一下SQL,毕竟SQL作为一门数据库操作和查询语言,还是系统性掌握比较好。

考前可以看一下这个:

1 概述

        Oracle的逻辑结构数据库原理及应用(MySQL)_第64张图片

        Oracle的物理结构

        数据库原理及应用(MySQL)_第65张图片

        数据库原理及应用(MySQL)_第66张图片

2 数据定义

3 数据查询

        

       #1 where子句常用的查询条件

        数据库原理及应用(MySQL)_第67张图片

        

===============第四章 关系数据库的安全性=============

4.1 数据库安全性概述

        1. 数据库安全性的必要性

                数据库一大特性便是数据可以共享,但是数据共享的过程中面临的问题

          是数据库中的数据不能无条件的共享,还必须考虑数据库的安全性问题。

        2. 计算机系统的安全模型

        数据库原理及应用(MySQL)_第68张图片

4.2自主存取控制

        

        1.自主存取控制包括两大方面

            数据库原理及应用(MySQL)_第69张图片

            数据库原理及应用(MySQL)_第70张图片

2.其它安全机制

         1 用户身份鉴别

            数据库原理及应用(MySQL)_第71张图片

             常见的鉴别方法比如密码和生物识别或者卡片识别等方法。

         2 视图机制

                数据库原理及应用(MySQL)_第72张图片

           3 审计

                数据库原理及应用(MySQL)_第73张图片

           4 数据加密

                数据库原理及应用(MySQL)_第74张图片

===============第五章 关系的规范化理论==============

1 规范化理论的提出

        规范化理论的提出是为了设计更好的关系,更好的逻辑结构。

        数据库原理及应用(MySQL)_第75张图片

2 相关概念

        (1)关系和关系模式

                关系就是二维表 ,关系模式是型(包括二维表的表名,属性列等等,也

           就是没有数据的二维表)

        (2)数据依赖

                数据依赖概以及具体相关具体依赖类型:

                数据库原理及应用(MySQL)_第76张图片

                重点学习函数依赖,函数依赖可以看作列与列之间的依赖比如:

                数据库原理及应用(MySQL)_第77张图片

                知道了学号咱可以立马知道该学号对应的姓名和系名。其实质就是根据外码

                或者根据主码可以间接推断出其他关系中的相关属性,也就是后面关系数据

                库设计中的外码的重要性。

              

                

                为了更好的研究列与函数依赖将关系模式简化:

                数据库原理及应用(MySQL)_第78张图片

        (3)泛关系模式

                泛关系就是一个大宽表(没有具体区分的表,比如S SC C三张表整合在一起)。

                泛关系模式的唯一好处就是不需要表与表之间的连接可以提高效率,其冗余的特性

                就是增强了可靠性,比如副总统就是为了顶替总统。

                

                例如一个研究生系统的泛关系模式:

                数据库原理及应用(MySQL)_第79张图片

                        F是函数依赖的集合:

                        

                        U是属性的集合。

                        泛关系模式的缺点:

                                1.冗余大:

                                        比如这个研究生系统中院长的名字就同时出现了三次(没必要)

                                2.冗余大会导致操作异常:

                                        数据冗余会导致主码中属性增多,从而导致相关冗余。

                                        比如假如现在有个新的研究生要加入这个研究生系统但是这个

                                        研究生因为是新生,而没有自己的项目,但是这个研究生系统关系

                                        表的主码是(学号,项目编号),那么这个新生研究生由于没有项

                                        目,所以就不能直接加入这个研究生系统关系中,但是显然这是不对的。

3 改造冗余的泛关系模式

        在这个研究生管理系统的关系中出现冗余的主要是院长名称和项目名称,所以

         针对这两个来拆分刚才的泛关系模式(同时保证信息不能丢失,也就是保持函数依赖):

         数据库原理及应用(MySQL)_第80张图片

4 函数依赖相关概念

        (1)导出

        数据库原理及应用(MySQL)_第81张图片

          (2)完全函数依赖

                数据库原理及应用(MySQL)_第82张图片

            (3)部分函数依赖

                数据库原理及应用(MySQL)_第83张图片

            (4)传递函数依赖

                        数据库原理及应用(MySQL)_第84张图片

                (5) 如

                数据库原理及应用(MySQL)_第85张图片

                (6)上面的几种函数依赖是根据候选码中引出的状态来决定的。

                          也就是看非主属性对主属性有没有部分依赖或者完全依赖。

5 部分函数依赖和传递函数依赖会导致数据的冗余

        

6 范式

        现实一般达到第三范式即可,因为冗余完全消除了也有问题

        (1)范式的基本概念

        数据库原理及应用(MySQL)_第86张图片

        (2)各个范式之间存在包含的关系:

                高级别范式包含低级别范式

        数据库原理及应用(MySQL)_第87张图片

        (3)第一范式 (比如泛关系)

                 要求二维表必须是关系表(也就是各个分量必须是原子分量)

                数据库原理及应用(MySQL)_第88张图片

        (4)第二范式 

                满足第一范式并且不存在部分依赖(非主属性对主属性的部份依赖)

                数据库原理及应用(MySQL)_第89张图片

        (5)第三范式

                满足第二范式的同时去掉了传递依赖(非主属性对主属性的传递依赖)。

                数据库原理及应用(MySQL)_第90张图片

        (6)BCNF

            

                主属性可能存在对非主属性的部分和传递依赖,所以BCNF的目的是为了解决这一问题

                

                其实质就是每个决定性因素(依赖的左边)都包含候选码。

7 函数依赖的公理系统

        (1)依赖集的闭包

                  

                 逻辑蕴含:

                数据库原理及应用(MySQL)_第91张图片

                  F的闭包(F+):

                        数据库原理及应用(MySQL)_第92张图片

                  F的闭包的求法:

                        1 Armstrong公理系统

                               数据库原理及应用(MySQL)_第93张图片 

                        2 根据Armstrong推理出来的另外的公理

                                数据库原理及应用(MySQL)_第94张图片

                        3 利用Armstrong的相关推导例题

                                数据库原理及应用(MySQL)_第95张图片

              (2)属性集闭包与F逻辑蕴含的充要条件

                        提出问题:我要判断一个函数依赖是否成立,那么只需要计算出左边的闭包

                        即可,如果右边包含在左边的闭包中,那么就证明这个函数依赖是成立的:

                                数据库原理及应用(MySQL)_第96张图片

                                数据库原理及应用(MySQL)_第97张图片

                (3)求属性集闭包的算法

                        数据库原理及应用(MySQL)_第98张图片

                        数据库原理及应用(MySQL)_第99张图片

                (4)码值理论

                        给定关系R中属性的分类:

                         数据库原理及应用(MySQL)_第100张图片

                         求候选码的方法:

                                L、N 类属性一定是候选码的成员

                                R类属性一定不是候选码的成员

                                LR类属性可能是候选码的成员

                            数据库原理及应用(MySQL)_第101张图片

                            数据库原理及应用(MySQL)_第102张图片           

                        多属性依赖集候选关键字的求解算法

                                数据库原理及应用(MySQL)_第103张图片 

                                数据库原理及应用(MySQL)_第104张图片

                                                              

                        函数依赖集的等价:

                                

                                        数据库原理及应用(MySQL)_第105张图片

                        最小依赖集:传送锚点

                                数据库原理及应用(MySQL)_第106张图片

                       求最小依赖集的算法:

                                ​​​​​​​数据库原理及应用(MySQL)_第107张图片

                                第二步中的用X->A代替XY->A的意思是直接暂时删掉XY->A,然后计算X的

                                闭包,观察X的闭包是否包含Y,如果包含了Y就证明X->A和XY->A等价。

                        易错点:

                                数据库原理及应用(MySQL)_第108张图片

                        例题:

                           

                        解题:传送锚点

                (5)模式分解

                        为什么:

                                   在数据库原理中,模式分解是指将一个数据库模式(schema)

                                   分解成更小的子模式或关系,以便更好地进行设计、管理和维

                                   护数据库系统。

                        算法:

                                数据库原理及应用(MySQL)_第109张图片

                        注意点:

                                数据库原理及应用(MySQL)_第110张图片

                        例题:  

        ​​​​​​​        

                        解题:传送锚点

                        字有点丑,具体解题步骤看上面的传送锚点即可。

                        数据库原理及应用(MySQL)_第111张图片

                        下面的是另一位up的解题方法,也可以对照来参考:

                        方法:传送锚点

                                例如:将此模型转换为3NF

                                        

                                1.找候选键

                                        数据库原理及应用(MySQL)_第112张图片

                                        

                                2.找F的最小依赖集

                                        数据库原理及应用(MySQL)_第113张图片

                                3.写出上面最小依赖集中分解出来的三个关系:

                                        数据库原理及应用(MySQL)_第114张图片

                                        值得注意的是:一定要保证分解出来的三个关系中要包含候选键中的

                                        任意一个,题目中R2(ADE)包含了AD, 如果没有包含,则要单独

                                        在后面添加一个候选键关系。

                        

                        (6)判断关系模式的无损连接性

                                        传送锚点

                                        数据库原理及应用(MySQL)_第115张图片

==================第六章 数据库设计=================

        考点:

  • 概念结构设计(ER图的画法):传送锚点
  • 逻辑结构设计(由ER图得到相应的关系模式):传送锚点

1 数据库设计概述

        数据库原理及应用(MySQL)_第116张图片

        数据库原理及应用(MySQL)_第117张图片

2 数据库设计方法

        手工试凑:

                适用于老程序员

        规范设计法:

                基于E-R模型的数据库设计方法

3 数据库设计的六个阶段

        数据库原理及应用(MySQL)_第118张图片

             数据库原理及应用(MySQL)_第119张图片

4 数据字典:

        其作用就是注释的作用(比如E-R图的设计需要标注)

5 ER图画法的思路(概念结构设计)

        (1)正确区分需求分析中的实体、属性、联系

                实体

                属性:

                        数据库原理及应用(MySQL)_第120张图片

                        数据库原理及应用(MySQL)_第121张图片

                联系 :

                数据库原理及应用(MySQL)_第122张图片

                数据库原理及应用(MySQL)_第123张图片

                       数据库原理及应用(MySQL)_第124张图片

        (2)ER图的画图顺序

                先画实体 然后画实体之间的联系 最后标注属性 以及写出注释

        (3)例题

                数据库原理及应用(MySQL)_第125张图片

                数据库原理及应用(MySQL)_第126张图片

                数据库原理及应用(MySQL)_第127张图片

                解题:

                        数据库原理及应用(MySQL)_第128张图片

                        数据库原理及应用(MySQL)_第129张图片

                                数据库原理及应用(MySQL)_第130张图片

                (4)相关细节

                        1. 在相关描述中,实体和属性的选择中,能当属性的尽量作为属性而不作为联系

                             实体。

                             数据库原理及应用(MySQL)_第131张图片

                              比如:

                                        数据库原理及应用(MySQL)_第132张图片

                        (5)实际案例

                                数据库原理及应用(MySQL)_第133张图片

                                数据库原理及应用(MySQL)_第134张图片

                                数据库原理及应用(MySQL)_第135张图片

6 逻辑结构设计(将ER图转化为关系模式)

        (1)步骤:

                数据库原理及应用(MySQL)_第136张图片

         (2)  实体及其属性向关系表转换的原则:

                      考试的情况无脑拆表即可,工作情况下考虑效率问题再考虑合并

                        

         (3)联系及其属性转换为关系表

                        first: 一对一的情况

                                数据库原理及应用(MySQL)_第137张图片

                                                上面的情况是把该联系拆出来单独建一个表,当然也可以不拆

                                                不拆的原则就是把该联系一端实体的候选码属性以及联系的属

                                                性添加到另一端实体的关系表中的属性列中:

                                                

                        second: 一对多的情况

                                拆解原则和一对一的情况一样,但是主码取n端。

                                不拆解的话就可把1端候选码属性以及联系属性并到另一端。

                                数据库原理及应用(MySQL)_第138张图片

                                                 

                        third:多对多的情况(必须拆)

                                        数据库原理及应用(MySQL)_第139张图片

                                        注意多对多拆出来的关系的主键是两端关系主键的组合

        (4)例子

                数据库原理及应用(MySQL)_第140张图片

                    数据库原理及应用(MySQL)_第141张图片

        (5) 数据模型的优化

                利用规范化理论把上面拆出来的各个关系表优化成第三范式。

        (6)设计用户的子模式

                        比如子系统,视图等。

7  物理结构设计

===============第七章 数据库恢复技术================

【1】事务

        1 事务的基本概念

                数据库原理及应用(MySQL)_第142张图片

        2 如何定义事务

                数据库原理及应用(MySQL)_第143张图片

                数据库原理及应用(MySQL)_第144张图片

        3 事务的ACID特性

                数据库原理及应用(MySQL)_第145张图片

                数据库原理及应用(MySQL)_第146张图片

                数据库原理及应用(MySQL)_第147张图片

                数据库原理及应用(MySQL)_第148张图片

        4 破坏ACID特性的因素

                数据库原理及应用(MySQL)_第149张图片

                                 故障会破坏原子性、一致性、持续性

                                并发干扰会破坏事务的隔离性进而破坏数据库状态的一致性 

【2】数据库恢复概述     

        数据库原理及应用(MySQL)_第150张图片

【3】故障的种类

        数据库原理及应用(MySQL)_第151张图片

                1 事务故障

                        数据库原理及应用(MySQL)_第152张图片

                        数据库原理及应用(MySQL)_第153张图片

                        事务的UNDO和REDO需要日志文件

                2 系统故障

                        数据库原理及应用(MySQL)_第154张图片

                       数据库原理及应用(MySQL)_第155张图片

                        事务的UNDO和REDO需要日志文件

                3 介质故障

                        数据库原理及应用(MySQL)_第156张图片

                        数据库原理及应用(MySQL)_第157张图片

                        事务的UNDO和REDO需要日志文件,还需要数据库的副本

                数据库原理及应用(MySQL)_第158张图片

【4】恢复的实现技术

        1 探讨问题

                数据库原理及应用(MySQL)_第159张图片

        2 数据转储

                (1)转储的概念和例子

                数据库原理及应用(MySQL)_第160张图片

                (2)转储技术的分类

                数据库原理及应用(MySQL)_第161张图片

                        1. 静态转储

                                适用于类似于食堂饭卡机器这种凌晨两点进行转储

                                数据库原理及应用(MySQL)_第162张图片

                        2. 动态转储

                                数据库原理及应用(MySQL)_第163张图片 

                                数据库原理及应用(MySQL)_第164张图片

                        3 海量和增量转储

                                数据库原理及应用(MySQL)_第165张图片

            3 日志文件

                       数据库原理及应用(MySQL)_第166张图片 

                        数据库原理及应用(MySQL)_第167张图片

                        数据库原理及应用(MySQL)_第168张图片

                        数据库原理及应用(MySQL)_第169张图片

                ​​​​​​​        日志文件的作用

                ​​​​​​​                ​​​​​​​数据库原理及应用(MySQL)_第170张图片

                        登录日志文件的原则

                                因为如果先修改数据库,后写日志可能导致,先修改数据库

                                这条记录没来得及记录,这将会导致后面也不能根据这个日

                                志进行数据库的恢复了。      

                ​​​​​​​        ​​​​​​​        数据库原理及应用(MySQL)_第171张图片

【5】恢复的策略

        数据库原理及应用(MySQL)_第172张图片

                数据库原理及应用(MySQL)_第173张图片

                数据库原理及应用(MySQL)_第174张图片

                数据库原理及应用(MySQL)_第175张图片

                例子:

                        数据库原理及应用(MySQL)_第176张图片

                          数据库原理及应用(MySQL)_第177张图片

                问题:

                        数据库原理及应用(MySQL)_第178张图片

                                根据事务的原子性,事务要么做要么不做;而且未做完的部分根本没有记录在

                                日志文件中,根据先写日志后写数据库的原则也反映了恢复子系统不能帮用户

                                把未完成的事务完成。

                ​​​​​​​        数据库原理及应用(MySQL)_第179张图片

                        数据库原理及应用(MySQL)_第180张图片

                        数据库原理及应用(MySQL)_第181张图片

【6】 具有检查点的恢复技术

                其实质性的作用就是省去了检查点之前的REDO操作,从而节省时间

        数据库原理及应用(MySQL)_第182张图片

        数据库原理及应用(MySQL)_第183张图片

        数据库原理及应用(MySQL)_第184张图片

        数据库原理及应用(MySQL)_第185张图片

        恢复的步骤:

                遵循的原则就是:在检查点和系统故障发生的时间点之间,只要事务提交了就REDO没提交就UNDO

                数据库原理及应用(MySQL)_第186张图片

                数据库原理及应用(MySQL)_第187张图片

                数据库原理及应用(MySQL)_第188张图片

                数据库原理及应用(MySQL)_第189张图片

                数据库原理及应用(MySQL)_第190张图片

                数据库原理及应用(MySQL)_第191张图片

===============第八章 并发控制==================   

        熟悉X锁可S锁的习题:传送锚点

        利用两段锁机制实现并行调度可串行化:传送锚点      

【1】 并发控制的概述

        数据库原理及应用(MySQL)_第192张图片

        数据库原理及应用(MySQL)_第193张图片

        数据库原理及应用(MySQL)_第194张图片

        数据库原理及应用(MySQL)_第195张图片

                数据库原理及应用(MySQL)_第196张图片

        事务的调度

                数据库原理及应用(MySQL)_第197张图片

        可串行化的调度

                数据库原理及应用(MySQL)_第198张图片

        并发控制的必要性

                数据库原理及应用(MySQL)_第199张图片

        如果不对并发操作加以控制可能带来的数据不一致性

                数据库原理及应用(MySQL)_第200张图片

                

                购买机票的例子

                        数据库原理及应用(MySQL)_第201张图片

        

                数据库原理及应用(MySQL)_第202张图片

                        数据库原理及应用(MySQL)_第203张图片

                        数据库原理及应用(MySQL)_第204张图片

                        数据库原理及应用(MySQL)_第205张图片

        并发控制的方法:

                数据库原理及应用(MySQL)_第206张图片

【2】封锁

        数据库原理及应用(MySQL)_第207张图片

        数据库原理及应用(MySQL)_第208张图片

        数据库原理及应用(MySQL)_第209张图片

                

   【3】封锁协议             

                

                (1) 一级封锁协议

                        数据库原理及应用(MySQL)_第210张图片

                        数据库原理及应用(MySQL)_第211张图片

                                一级封锁协议只规定了写锁,而没有规定读锁,所以可能产生

                                重复读脏数据的情况。

                (2) 二级封锁协议

                                数据库原理及应用(MySQL)_第212张图片

                                数据库原理及应用(MySQL)_第213张图片

                                可能出现的错误是读锁(s锁)之间的空窗期出现错误导致不可重复读的错误

                                数据库原理及应用(MySQL)_第214张图片

                (3)三级封锁协议

                        数据库原理及应用(MySQL)_第215张图片

                          数据库原理及应用(MySQL)_第216张图片 

           (4)总结

                        数据库原理及应用(MySQL)_第217张图片

【4】封锁协议带来的副作用(活锁和死锁)

        活锁说白了就是低优先级的事务可能出现一直死等的情况

        数据库原理及应用(MySQL)_第218张图片

        数据库原理及应用(MySQL)_第219张图片

        如何破坏死锁

        数据库原理及应用(MySQL)_第220张图片

        数据库原理及应用(MySQL)_第221张图片

        数据库原理及应用(MySQL)_第222张图片

        数据库原理及应用(MySQL)_第223张图片

【5】并发调度的可串行性

        数据库原理及应用(MySQL)_第224张图片

        数据库原理及应用(MySQL)_第225张图片

        数据库原理及应用(MySQL)_第226张图片

        数据库原理及应用(MySQL)_第227张图片

        数据库原理及应用(MySQL)_第228张图片

        数据库原理及应用(MySQL)_第229张图片

        数据库原理及应用(MySQL)_第230张图片

        正确结果:

                构造交叉并行,结果要求是可串行化的时候一定保证X锁在S锁的前面即可,

                如果S锁在X锁的前面一定会发生不可重复读的错误。

                数据库原理及应用(MySQL)_第231张图片

        例题:

                ​​​​​​​数据库原理及应用(MySQL)_第232张图片

        冲突可串行化是可串行化的充分条件用以判断一个调度是否可串行化

        不是必要条件说明,如果一个序列不是冲突可串行化的仍然可能可串行化

        数据库原理及应用(MySQL)_第233张图片

        数据库原理及应用(MySQL)_第234张图片

                例子:

                        数据库原理及应用(MySQL)_第235张图片

                        交换原则:交换两个事务交界处的不冲突操作

                                数据库原理及应用(MySQL)_第236张图片

                                数据库原理及应用(MySQL)_第237张图片

                                数据库原理及应用(MySQL)_第238张图片

                                数据库原理及应用(MySQL)_第239张图片

        

【6】两段锁协议

                值得注意的是在事务释放一个封锁之后,事务将不再获得其他封锁

        数据库原理及应用(MySQL)_第240张图片  

        数据库原理及应用(MySQL)_第241张图片

        数据库原理及应用(MySQL)_第242张图片

​​​​​​​

你可能感兴趣的:(数据库)