数据库
首页 > 数据库> > 数据库复习 - PART3 - 物理存储实现

数据库复习 - PART3 - 物理存储实现

作者:互联网

数据库复习 - PART3 - 物理存储实现

数据库复习 - PART3 - 物理存储实现

8. 物理存储

8.1 存储体系结构

8.2 磁盘的特性与结构

磁盘结构:

  • 磁盘
  • 磁道
  • 扇区
  • 磁头
  • 柱面,多个盘面的相同位置的磁道构成一个虚拟的圆柱体

8.2.1 磁盘的数据访问

例:

目标磁盘参数如下:

磁盘以7200r/min旋转;

柱面之间移动磁头组合从启动到停止花费1ms,每移动4000个柱面需要1ms,即磁头在0.00025ms内移动一个磁道;

一个磁盘块 = 4个扇区 = 16KB

假设磁盘块传输时间为0.13ms,问最长时间与平均时间。

解:

最长时间 = 最长寻道时间(最内圈到最外圈)+ 最长旋转时间(旋转一周)+ 传输时间;

旋转一周耗时 = 60 s / 7200 = 8.33ms

最长寻道时间 = (启动时间 + 结束时间)+ 移动时间 = 1ms + 65536 * (1ms / 4000) = 17.38ms

故最长时间 = 17.38s

平均时间 = 平均寻道时间(走1/3)+ 平均旋转时间(旋转半周) + 传输时间;

平均寻道时间 = (启动时间 + 结束时间)+ 移动时间 = 1ms + 65536 * (1ms / 4000 * 3) = 6.46ms

平均旋转时间 = 8.33ms / 2 = 4.17ms

故平均时间 = 10.76ms

8.2.2 RAID技术

位拆分: 将一个字节拆分成8个bit位,不同比特位存储在不同磁盘上;

块拆分: 文件由多个块组成,不同块存储于不同磁盘中

8.3 DBMS数据存储与查询实现的基本思想

基本思想:从磁盘读入至内存缓冲区,在缓冲区中进行查询操作,可利用索引文件操作

在这里插入图片描述

8.4 记录与磁盘块的映射

8.5 数据库文件组织方式

在这里插入图片描述

9. 数据库索引

9.1 索引基本概念列表

9.2 B+树索引

在这里插入图片描述

在这里插入图片描述

9.3 B树

9.3+ B VS B+比较

对比项B树B+树
一块中,索引项个数较少,因为加入主文件指针较多
索引字段值出现在哪或叶节点、或非叶节点叶节点
指向主文件的指针存在哪里或叶节点、或非叶节点叶节点
分裂与合并方法是否一致不一致不一致

9.4 散列索引

9.5 逆索引

例如:

id = 1234

reverse id = 4321,建立逆索引,使相似的数据相隔较远;

10. 数据库查询算法

10.1 查询概述

10.2 I/O复杂性

计算读入磁盘块数的次数即可,后面有时间再补充

10.3 迭代器构造查询实现

10.4 基于索引的算法

10.5 两趟扫描算法

问题驱动:

若关系所占块远远大于内存块,则一趟扫描不再能够处理一些情形;

11. 查询优化技术

11.1 概述

三个层面的优化:

逻辑优化基本策略:

11.2 关系代数操作次序交换等价性

设E1、E2是两个关系操作表达式,若E1、E2表示相同的映射,即当E1,E2地同名变量带入相同关系后产生相同的结果,则说E1、E2是等价的。记为E1 ≡ E2;

11.2.1 L1:连接与连接,积与积交换律

在这里插入图片描述

11.2.2 L2:连接与连接,积与积结合律

在这里插入图片描述

11.2.3 L3:投影串接律

在这里插入图片描述

11.2.4 L4:选择串接律

在这里插入图片描述

11.2.5 **L5:选择和投影交换律

在这里插入图片描述

即,把E先变小,再做选择,再做投影;(即尽早做投影、选择

11.2.6 **L6:选择和积交换律

在这里插入图片描述

11.2.7 **L7:投影和积交换律

在这里插入图片描述

11.2.8 L8:选择和并的交换律

在这里插入图片描述

11.2.9 L9:选择和差的交换律

在这里插入图片描述

11.2.10 L10:投影和并的交换律

在这里插入图片描述

11.3 逻辑层优化算法

  1. 依据定理L4:选择串接律,把原式变为σF1(σF2(E))的形式;

  2. 对每个选择,依据定理L4到L9,尽可能将它移至树的底部;

  3. 对每个投影,依据定理L3,L7,L10和L5;

  4. 依据定理L4至L5把串接的选择和投影组合为单个选择、单个投影,或者 一选择 后跟一个投影。

  5. 对修改后的语法树,将其内结点按以下方式分组:

    每个二元运算结点(积、并、 差、连接等)和其所有一元运算直接祖先结点放在一组;对于其后代结点,若后代结点是一串一元运算且以树叶为终点,则将这些一元运算结点放在该组中;若该二元运算结点是笛卡儿积,且其后代结点不能和它组合成等连接,则不能将后代结点归入该组。

  6. 产生一个程序:它以每组结点为一步,但后代组先执行

11.4 物理层/执行优化

12 事务处理

12.1 事务的概念

事务是数据库管理系统提供的控制数据操作的一种手段,通过这一手段,应用程序员将一系列的数据库操作组合在一起作为一个整体进行操作和控制, 以便数据库管理系统能够提供一致性状态转换的保证;

12.2 事务的特性

12.3 事务相关概念

12.4 判断并发调度正确方法 - 冲突可串行性判别方法

  1. 构造一个有向图;
  2. 节点是每一个事务Ti。如果Ti的操作与Tj的操作发生冲突,且Ti在Tj前执行,则绘制一条边,由Ti指向Tj,表示Ti要在Tj前执行;
  3. 若无环,则冲突可串行化;

12.5 如何产生正确的并发调度

12.5.1 基于封锁的方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

12.5.2 基于时间戳的方法

RT(X):元素X最后读时间戳;

WT(X):元素X最后写时间戳;

TS(T):事务T的时间戳;

在这里插入图片描述

12.5.3 基于有效性确认的方法

RS(T):事务T读数据集合;

WS(T):事务T写数据集合;

13 故障恢复技术

故障恢复技术设计到保障事务的原子性和持久性

13.1 概述

13.2 日志技术

13.2.1 日志缓冲区处理策略

在这里插入图片描述

13.2.2 UNDO型日志

写入日志的顺序:

  1. <T, X, v>;(v为旧值)
  2. OUTPUT(X)
  3. 或;

写盘前不提交

恢复方法:

自底向上恢复,跳过COMMIT,若某条记录已经COMMIT,则跳过;若某条记录没有COMMIT或已被ABORT,则重做该记录;

检查点应用:

在这里插入图片描述

在这里插入图片描述

13.2.3 REDO型日志

写入日志的顺序:

  1. <T, X, v>;(v为新值)
  2. 或;
  3. OUTPUT(X);

写盘前提交

恢复方法:

自顶向下恢复,重做成功COMMIT的记录,其他数据不管;

检查点应用:

在这里插入图片描述

13.2.4 UNDO/REDO型日志

写入日志的顺序:

  1. <T, X, u,v>;(v为新值,u为旧值)
  2. 或;
  3. OUTPUT(X);

  1. <T, X, u,v>;(v为新值,u为旧值)
  2. OUTPUT(X);
  3. 或;

写盘前提交(REDO)或写盘后提交(REDO)

恢复方法:

先UNDO,后REDO,通过COMMIT关键字判断REDO,UNDO;

下述日志经过恢复过程:

在这里插入图片描述

  1. UNDO

    • 发现ABORT T3,即T3未完成,UNDO T3:

      X3 = m1;

      X1 = v2;

    • T1、T2均COMMIT,即事务T1、T2均已完成,无需UNDO;

  2. REDO

    • 发现T1、T2均COMMIT,需要REDO

      X1 = v1;

      X1 = v2;

      X2 = k1;

      X3 = m1;

    • 发现T3没有COMMIT,则无需REDO

综上,最终结果为:

x1 = v2;x3 = m1;x2 = k1;

标签:文件,事务,复习,数据库,索引,PART3,磁盘,排序,散列
来源: https://blog.csdn.net/weixin_44465434/article/details/116568547