计算机四级 - 数据库原理 - 第7章「数据库系统实现技术」

7.1 数据库管理系统概述

7.1.1 数据库管理系统的基本功能

  • 数据定义功能
    • 数据库模式(包括外模式、模式、内模式)的定义、数据库完整性的定义、安全保密的定义,索引和视图的定义
  • 数据操纵功能
  • 数据存储和管理功能
  • 事务管理功能
  • 数据定义功能

7.1.2 数据库管理系统的主要成分和工作流程:

  • 存储管理器:高效的利用辅助存储器来存放数据,并使得数据能够快速存取
    • 重要模块:索引、文件、记录管理器
  • 查询处理器:高效的执行用SQL等高级语言表达的数据查询或修改操作存储
    • 重要模块:DDL编译器、查询编译器、执行引擎
  • 事务管理器:对并发执行的事务进行有效的管理,使之具有ACID特征
    • 重要模块:事务管理、日志和恢复、并发控制

7.2 存储管理

1.物理存储介质:

        ① 高速缓冲存储器(易失性存储设备):在数据库系统中不需要考虑高速缓冲存储器(Cache)的存储管理

        ② 主存储器(易失性存储设备):是用于存放可被CPU直接处理的数据的存储介质,如果发生电源故障或者系统崩溃,主存储器中的内容通常会丢失

2. 数据字典:是DBMS把使用数据定义语言(DDL)对数据库结构的进行描述的存储区域

3.索引结构:

  • 顺序索引:能有效地支持点查询和范围查询
    • B+树:是一种平衡的多路查找树。B+树的所有关键码都在叶结点中出现,上面各层结点中的关键码均是下一层相应结点中最小关键码的复写。每个结点至多由m个子女;每个结点至少有 ⌈m/2⌉ (向上取整)个子女。
  • 散列索引:能有效支持点查询,但不能支持范围查询
    • 处理碰撞的方法基本有两类:拉链法开地址法

7.3 查询处理

1. 查询处理是指从数据库中查找数据时涉及的一系列活动,查询处理器最主要的模块查询编译器查询执行引擎

2. 查询优化是从许多策略中找出最有效的查询执行计划中的一种处理过程,期望系统能够构造一个能最小化查询执行代价的查询执行计划。查询优化器利用等价规则将一个表达式转换成逻辑上等价但执行效率更高的另一个表达式

3. 查询优化系统在进行表达式转换时常常使用一些启发式规则

4. 选择逻辑查询计划选择物理查询计划的步骤称为查询优化,查询优化的代价可以通过该查询对各种资源的使用情况进行度量,这些资源包括磁盘存取、执行一个查询所用的CPU时间、在并行/分布式数据库系统中的通信开销等。

5. 逻辑查询计划转换成物理查询计划时,需要指明操作执行的顺序执行每步所用的算法获得所存储数据的方式数据从一个操作传递给另一个操作的方式等。系统通常采用基于代价的查询计划选择方法

6. 数据库查询处理中所涉及的活动:

  •         在查询处理开始之前,系统必须对用SQL这样的语言表达的查询语句进行分析,形成语法分析树
  •         将用高层数据库语言表示的查询语句翻译成能在文件系统的物理层上使用的表达式。
  •         为优化查询而进行各种转换
  •         查询的实际执行。具体包括为关系代数表达式中的各操作符确定执行顺序、为关系代数表达式中的每一个操作符选择具体的实现算法和用定义视图的关系代数式来替换对视图的引用等。

7. 选择运算并、交、差运算具有分配率,而投影运算有分配率

7.4 事务管理

7.4.1 事务的概念和特性:

数据库需要维护的事务特征:原子性、一致性、隔离性和持久性,这些统称为ACID特性

  • 保证原子性是DBMS的事务管理器中故障恢复机制的责任。
  • 确保单个事务的一致性是对该事物进行编码的应用程序的责任。
  • 确保持久性也是DBMS的事务管理器中故障恢复机制的责任。(一个事务成功完成后,他对数据库的改变必须是永久的,即使系统可能出现故障。)
  • DBMS的事务管理器中有一个并发控制部件,它保证事务隔离性,即确保事务并发执行后的系统状态与这些事务以某种次序一个接一个地执行后的状态是等价的。(“丢失修改”

7.4.2 故障恢复:

1.故障类型:

  • 事故故障
    • 逻辑错误:事务由于某些内部条件而无法继续正常执行,这样的内部条件如非法输入、找不到数据、溢出或超出资源限制。
    • 系统错误:系统进入一种不良状态(例如,死锁),结果事务无法继续正常执行。但该事物可以在以后的某个时间重新执行。
  • 系统故障(硬件故障):数据库软件或操作系统的漏洞,导致系统停止运行,主存储器内容丢失,而外存储器完好无损
  • 磁盘故障
    • 发生磁盘故障时,可以利用其他磁盘上的数据备份,或磁带上的备份来进行恢复

2.基于日志的恢复:

  • 日志记录:用于记录数据库的写操作和事务处理过程中的重要事件
  • 日志记录的种类:
    • 事务开始日志记录:表示事务Ti开始
    • 更新日志记录:表示事务Ti对数据项Xj;执行修改操作。Xj的改前值是V1,改后值是V2
    • 事务提交日志记录:表示事务Ti提交
    • 事务中止日志记录:表示事务Ti中止
  • 事务故障恢复的步骤是:

                ① 反向扫描日志文件,查找该事务的更新操作

                ② 对该事务的每一个更新操作执行UNDO操作,即将日志记录中的改前值写入数据库

                ③ 如此处理下去,直至读到该事务的开始日志,则事务故障恢复结束

3.事务并发执行可能出现的问题:丢失更新、不可重复读、读脏数据

4.基于封锁的并发控制:

        加锁方式:

                ① 共享锁(S):可读不能写

                ② 排他锁(X):即可读又可写

        排他锁(X锁)与排他锁以及共享锁都不相容,因此当事务T对数据R已加排他锁,因此其他事物对R不可再加其他锁。

        保证可串行性的一个协议是两阶段封锁协议。该协议要求每个事务分为两个阶段提出加锁和解锁申请。

        ① 增长阶段:事务可以获得锁,但不能释放锁

        ② 缩减阶段:事务可以释放锁,但不能获得新锁

5. 预防死锁的方法:一次封锁法、顺序封锁法。


其余章节进我主页进行查看

你可能感兴趣的:(计算机四级,数据库,笔记)