这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
RDBMS
RDBMS指的是关系型数据库,它是目前使用最广泛的一个数据库。通过今天的学习,主要了解了RDMBS的作用以及其核心技术。
ACID
RDBMS中必须要有ACID,它是数据库中较为重要的一项内容,它们的意思是:
- 原子性(Atomicity) 事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。
- 一致性(Consistency) 数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
- 隔离性(Isolation) 多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
- 持久性(Durability)在事务完成以后,该事务所对数据库所做的更改便持久的保存在数据库之中,并不会被回滚。
它们是RDBMS中最基础的属性,所有数据库想要完成其工作,都需要拥有这些基础功能。
关键技术
SQL引擎
经过语法解析,生成语法树。按照语法树根据规则或代价生成执行计划树,最后根据计划树执行
存储引擎
存储引擎是数据库中负责数据的底层管理,储存的工作的。例如Mysql中,最常使用的一个Innodb引擎。它就可以实现数据的底层管理。它与传统的ISAM与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务功能,类似于PostgreSQL。
- Buffer Pool:存储引擎位于内存中的重要结构,用于缓存数据,减少磁盘IO的开销。
- Page:数据存储的最基本单位,一般为16KB。
- B+u Tree:InnoDB中最常用的索引结构。
事务引擎
事务引擎实现了数据库的ACID能力。mysql的Innodb也实现了这个功能。
- Atomicity:InnoDB中通过undo日志实现了数据库的原子性,通过Undo Log,数据库可以回滚到事务开始的状态;
- Isolation:通过Undo Log实现MVCC(多版本并发控制),降低读写冲突。
- Durability:通过Redo Log(一种WAL实现方式)来保证事务在提交后一定能持久化到磁盘中。
- Consistency:一致性本质上是一种业务层的限制。
在实际业务中,我们可以将一系列需要同时操作的sql指令,通过事务进行处理,保证了数据的原子性。