深入理解RDBMS | 青训营笔记

66 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天.

RDBMS(关系型数据库)

简介

RDBMS(Relational Database Management System),即关系数据库管理系统。 是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。
关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。

ACID

  • 原子性(Atomicity):事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生
  • 一致性(Consistency):数据库事务不能破坏关系数据的完整性以及业务逻辑的一致性
  • 隔离性(Isolation):多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其他事务的运行效果
  • 持久性(Durability):在事务完成以后,该事务所对数据库所做的更改便持久的保存在数据库之中,并不会被回滚

发展历史

数据库发展最初过程中,诞生过3种模型

  • 网状模型:用有向图表示实体和实体之间的联系的数据结构模型
  • 层次模型:层次数据模型使用树状<层次>结构来组织数据的数据模型
  • 关系模型:使用表格表示实体和实体之间关系的数据模型

关键技术

SQL引擎

  • Paser:经过语法分析、语法分析生成语法树,然后对语法树进行合法性校验
  • Optimizer:根据Paser产生的语法树,根据规则或者代价产生执行计划树
  • Executor:根据计划树进行执行,常见的执行方式是火山模型

存储引擎

  • Buffer Pool:存储引擎位于内存中的重要结构,用于缓存数据,减少磁盘IO开销
  • Page:数据存储的最基本单位,一般为16KB
  • B+u Tree:InnoDB中最常用的索引结构

事务引擎

  • Atomicity:InnoDB中通过undo日志实现了数据库的原子性,通过Undo Log,数据库可以回滚到事务开始的状态
  • Isolation:通过Undo Log实现MVCC,降低读写冲突
  • Durability:通过Redo Log 来保证事务在提交后一定能持久化到磁盘中
  • Consiistency:一致性本质上是一种业务层的限制