这是我参与「第三届青训营 - 后端场」笔记创作活动的第5篇笔记
一、DBMS的发展历史
-
前DBMS时代:人工管理、文件系统
缺点:效率低
-
DBMS:database management system,即数据库管理系统,是按照某种数据模型来组织、存储和管理数据的仓库
根据数据模型特点可分为三类:网状数据库、层次数据库、关系数据库
-
网状模型 网状数据模型是以记录类型为节点的网状结构,即一个节点可以有一个或多个下级节点,也可以有一个或多个上级节点,两个节点之间也可以有多种联系
-
层次模型 层次模型,即用树形结构来描述实体及其之间关系的数据模型。
每棵树都有且仅有一个根节点,其余节点都是非根节点。每个节点表示一个记录类型,表示一个实体;记录类型的各个字段对应实体的各个属性
- 关系模型 使用表格表示实体和实体之间关系的数据模型称为关系数据模型,关系数据模型中,无论是实体还是实体之间的关系,都用一张二维表来表示
-
-
SQL,structured query language,即结构化查询语言,是一种数据库查询和程序设计语言。其语法风格接近自然语言,高度非过程化,简单易学。
二、SQL引擎
-
Parser 解析器
解析器一般分为词法分析、语法分析、语义分析等步骤
-
Optimizer 优化器
基于代价(如时间)优化SQL操作流程
-
Executor 执行器
火山模型(每个operator操作一行数据)、向量化(每个operator操作一个batch)、编译执行(LLVM动态编译执行技术)
三、事务
-
原子性:事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生
机制:Undo log(逻辑日志,记录了数据的增量变化,保证了事物的原子性,并且也实现了多版本并发控制MVCC)
-
一致性:数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性
一致性一般在业务层进行校验检查
-
隔离性:多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其他事务运行效果
机制:锁(共享锁与排他锁)& MVCC(多版本并发控制)
-
持久性:在事务完成以后,该事务对数据库所做的更改便持久地保存在数据库之中
机制:Redo log(物理日志,记录的是页面的变化;如果数据写入磁盘时发生故障,重启服务器后会根据其进行重做)
Ref:字节跳动青训营 - 深入理解RDBMS