【CMU 15-445】03 数据库存储-1

Slides
Notes

Notes已经很详细,仅整理大纲和要点。

1. 存储(Storage)

重点关注“面向磁盘”的 DBMS 架构,该架构假设数据库的主要存储位置位于非易失性磁盘上。

易失性设备(Volatile Devices):

  • 字节寻址随机访问。
  • 称为“内存”。

非易失性设备(Non-Volatile Devices):

  • 块/页可寻址的。这意味着,为了读取特定偏移处的值,程序首先必须将 4 KB 页加载到保存程序想要读取的值的内存中。

  • 传统上更适合顺序访问(同时读取多个数据块)。

  • 称为“磁盘”。不区分SSD或HDD。

2. 面向磁盘的DBMS概括(Disk-Oriented DBMS Overview)

数据库都在磁盘上,数据库文件中的数据被组织成页,第一页是目录页。为了对数据进行操作,DBMS需要将数据放入内存。它通过使用一个缓冲池来管理磁盘和内存之间的来回移动来实现这一点。DBMS还具有执行查询的执行引擎。执行引擎将向缓冲池请求特定页面,而缓冲池将负责将该页面放入内存,并为执行引擎提供指向内存中该页面的指针。当执行引擎在该内存上操作时,缓冲池管理器将确保页面在那里。

3. DBMS vs. OS

4. 文件存储(File Storage)

在其最基本的形式中,DBMS将数据库存储为磁盘上的文件。一些可能使用文件层次结构,其他可能使用单个文件(例如,SQLite)。

​ 操作系统对这些文件的内容一无所知。只有DBMS知道如何解密它们的内容,因为它是以特定于DBMS的方式编码的。

​ DBMS存储管理器负责管理数据库的文件。它将文件表示为页面集合。它还跟踪哪些数据已被读取和写入页面,以及页面中有多少可用空间。

5. 数据库页(Database Pages)

DBMS将数据库组织成固定大小的数据块(称为页面)中的一个或多个文件。页面可以包含不同类型的数据(元组、索引等)。大多数系统不会在页面中混合使用这些类型。一些系统将要求它是自包含(self-contained)的,这意味着 read 每个页面所需的所有信息都在页面本身上。

6. 数据库堆(Database Heap)

有几种方法可以找到DBMS想要的页面在磁盘上的位置,堆文件组织就是其中之一。堆文件是以随机顺序存储元组的无序页面集合。

7. 页面布局(Page Layout)

每个页面都包含一个header,记录有关页面内容的元数据,即描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能)

8. 元组布局(Tuple Layout)

​ 元组本质上是一个字节序列。DBMS的工作是将这些字节解释为属性类型和值。

  • Copyrights © 2019-2025 Hxy
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信