这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天,今天学习的课程是RDBMS 基本情况介绍 - 掘金 (juejin.cn),RDBMS(关系型数据库)是目前使用最为广泛的数据库之一,同时也是整个信息化时代的基石。这节课程通过生活中常见的场景介绍了RDBMS的作用、发展历程及其核心技术,最后以字节为例,展示了RDBMS的企业级实践。部分重要知识点如下。
数据库发展最初过程中,诞生过3种数据模型,最终关系型模型成为了应用最为广泛的数据库模型。
- 网状模型:用有向图表示实体和实体之间的联系的数据结构模型称为网状数据模型。
- 层次模型:层次数据模型是用树状<层次>结构来组织数据的数据模型。
- 关系模型:使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。
SQL 执行流程
在SQL执行过程中,需要经历SQL引擎、存储引擎、以及事务引擎等模块。而其中SQL引擎又分为Parser、Optimizer、Executor几个部分:
SQL 引擎
SQL引擎包括了:
- Paser:经过词法分析、语法分析生成语法树,然后对语法树进行合法性校验。
- Optimizer:根据Parser产生的语法树,根据规则或者代价产生执行计划树。
- Executor:根据计划树进行执行,常见的执行方式是火山模型。
事务引擎
事务引擎实现了数据库的ACID能力,这里还是以MySQL的InnoDB为例来介绍数据库内部是通过哪些技术来实现ACID:
- Atomicity:InnoDB中通过undo日志实现了数据库的原子性,通过Undo Log,数据库可以回滚到事务开始的状态;
- Isolation:通过Undo Log实现MVCC(多版本并发控制),降低读写冲突。
- Durability:通过Redo Log(一种WAL实现方式)来保证事务在提交后一定能持久化到磁盘中。
- Consistency:一致性本质上是一种业务层的限制。