database system implementation 笔记(1)

强调DBMS(Database Management System) 的工程性

数据库系统的发展

  • 定义数据
  • 查询/操纵数据
  • 大数据下的高效查询与修改
  • 持久性
  • 独立性/原子性

DBMS 概述

按照来源可以分为来自于User和DBA(database administrator)的命令

  • <数据定义语言命令> 可以理解为DBA发出的指令,使用数据定义语言DDL(Data Define Language)
  • <查询处理>
    • 查询编译器对查询进行分析和优化,得到查询计划,再交给执行引擎
    • 中间存在缓冲区,缓冲区与存储管理器通信
  • <事务处理>
    • 事务的定义:组成一组的若干个查询和其它动作。(一个也可以)
    • 事务要保持孤立性和持久性和原子性
    • 事务处理器分为并发控制管理器(负责原子性和孤立性)和 日志和恢复管理器(负责持久性)

主存和缓冲区管理器

数据在辅助存储器上(磁盘),缓冲区在主存中,缓冲区是与页面同等大小的区域,磁盘块可直接复制到缓冲区。

执行引擎与缓冲区管理器交互,缓冲区管理器和存储管理器交互。他们之间传递的数据可以分为几个大类

  • 数据
  • 元数据
  • 日志记录
  • 统计信息
  • 索引

事务处理

  • 日志记录
  • 并发控制
  • 死锁解决

查询处理器

  • 查询编译器
    • 查询分析器
    • 查询预处理器
    • 查询优化器
  • 执行引擎 需要和其它很多成分进行交互,比如缓冲区管理器/调度器/日志管理器等。

Database System Implementation 的主要内容

  1. 数据库系统实现
  • 存储管理
  • 查询处理
  • 事务处理
  1. 现代数据库系统