数据库分类与关键技术
数据库根据数据结构分为三类:网状数据库(N对N树形结构),层次数据库(树形结构),关系数据库(二维表结构)。
关键技术包括:
-
SQL执行过程:
- 解析器:解析SQL并生成抽象语法树。
- 优化器:选择最优执行路径生成执行计划。
- 执行器:执行实际的操作。
-
解析器:将SQL语句解析为执行目标,包括词法分析、语法分析和语义分析。
-
优化器:选择最佳的执行路径,有基于规则的优化(RBO)和基于代价的优化(CBO)。
-
执行器:通过火山模型、向量化和编译执行等方式执行操作。
-
InnoDB存储引擎:
- 内存/磁盘分层:内存部分缓存池,磁盘部分元信息和日志文件。
- Buffer Pool:管理内存空间,采用LRU机制和Hash映射。
- 页面:存储最小单位,包括数据和元数据。
- B+树:构建索引的基础,通过多层减少IO次数。
-
事务引擎:
- 原子性:使用Undo Log记录逆逻辑,支持回滚。
- 隔离性:通过锁和多版本并发控制(MVCC)实现读写隔离。
- 持久性:通过Redo Log(WAL)记录并更新磁盘数据。
这些技术共同构成了关系数据库管理系统的核心。
RDBMS与事务ACID特性
RDBMS代表关系数据库管理系统(Relational Database Management System),是现代数据库系统(如SQL Server、DB2、Oracle、MySQL和Microsoft Access)的基础,使用SQL语言操作。它遵循关系模型,这一模型由E. F. Codd发明。
事务(Transaction)是由一组SQL语句组成的执行单元,需要满足ACID特性:
- 原子性(Atomicity) :事务是不可分割的工作单元,要么所有操作都发生,要么都不发生。
- 一致性(Consistency) :事务不能破坏数据完整性和业务一致性。
- 隔离性(Isolation) :多个事务并发执行时,它们之间是隔离的,一个事务不应影响其他事务。
- 持久性(Durability) :事务完成后,其对数据库的更改是持久的,不会被回滚。
高并发与可靠性
要同时处理上亿级别的请求,并确保系统的可靠性。这需要高度的性能和稳定性。