RDBMS | 青训营

115 阅读2分钟

数据库分类与关键技术

数据库根据数据结构分为三类:网状数据库(N对N树形结构),层次数据库(树形结构),关系数据库(二维表结构)。

关键技术包括:

  • SQL执行过程

    1. 解析器:解析SQL并生成抽象语法树。
    2. 优化器:选择最优执行路径生成执行计划。
    3. 执行器:执行实际的操作。
  • 解析器:将SQL语句解析为执行目标,包括词法分析、语法分析和语义分析。

  • 优化器:选择最佳的执行路径,有基于规则的优化(RBO)和基于代价的优化(CBO)。

  • 执行器:通过火山模型、向量化和编译执行等方式执行操作。

  • InnoDB存储引擎

    1. 内存/磁盘分层:内存部分缓存池,磁盘部分元信息和日志文件。
    2. Buffer Pool:管理内存空间,采用LRU机制和Hash映射。
    3. 页面:存储最小单位,包括数据和元数据。
    4. B+树:构建索引的基础,通过多层减少IO次数。
  • 事务引擎

    1. 原子性:使用Undo Log记录逆逻辑,支持回滚。
    2. 隔离性:通过锁和多版本并发控制(MVCC)实现读写隔离。
    3. 持久性:通过Redo Log(WAL)记录并更新磁盘数据。

这些技术共同构成了关系数据库管理系统的核心。

RDBMS与事务ACID特性

RDBMS代表关系数据库管理系统(Relational Database Management System),是现代数据库系统(如SQL Server、DB2、Oracle、MySQL和Microsoft Access)的基础,使用SQL语言操作。它遵循关系模型,这一模型由E. F. Codd发明。

事务(Transaction)是由一组SQL语句组成的执行单元,需要满足ACID特性:

  1. 原子性(Atomicity) :事务是不可分割的工作单元,要么所有操作都发生,要么都不发生。
  2. 一致性(Consistency) :事务不能破坏数据完整性和业务一致性。
  3. 隔离性(Isolation) :多个事务并发执行时,它们之间是隔离的,一个事务不应影响其他事务。
  4. 持久性(Durability) :事务完成后,其对数据库的更改是持久的,不会被回滚。

高并发与可靠性

要同时处理上亿级别的请求,并确保系统的可靠性。这需要高度的性能和稳定性。