演进历程
关系型数据库管理系统(RDBMS)是Relational Database Management System的缩写,它是基于关系模型的一种数据库管理系统,用于储存和维护关系型数据。
在RDBMS中,数据以表格形式的组织方式被储存在数据库中。每个表格的行代表一条记录,而每列则代表一个字段。这种模型使得数据的组织和管理更加便捷,同时也允许通过关系来实现多个表格之间的集成。
常见的RDBMS包括MySQL、Oracle、Microsoft SQL Server等。这些系统提供了众多强大的功能,例如支持多种数据类型、事务处理、索引和查询优化等特性。
前数据库管理系统时代
- 手工数据管理 例如结绳记事、账本等方式。
随后,在20世纪50年代,现代计算机的雏形逐渐显现,1956年IBM推出了第一个磁盘驱动器Model 305 RAMAC,从而正式开启了数据存储的磁盘时代。
数据库管理系统时代
数据库管理系统(DBMS)是按照某种数据模型来组织、储存和管理数据的中央仓库。
SQL(Structured Query Language)
SQL是一种专门用于操作关系型数据库的语言,用于定义、操作和查询关系型数据库中的数据。
SQL语言涵盖了多种命令,旨在实现不同的数据库操作,其中包括:
- 数据库创建:CREATE DATABASE
- 表格创建:CREATE TABLE
- 数据插入至表格:INSERT INTO
- 数据表格内更新:UPDATE
- 数据表格内删除:DELETE
- 数据表格内查询:SELECT
- 对数据表格进行聚合操作:如SUM、AVG、COUNT等
- 数据表格内数据的排序与筛选:ORDER BY和WHERE等操作。
关键技术
Parser: SQL引擎中的解析器(Parser)是用于解读和分析SQL语句的要件。其职责在于将输入的SQL语句转化为语法树的形式,并对该语句进行语法合规性检查。
Optimizer: SQL引擎中的优化器(Optimizer)则承担了评估并改善SQL语句执行计划的责任。优化器依据SQL语句内容和数据库结构,精选出最优的执行计划,以从根本上提升SQL语句的执行效能。
Executor: SQL引擎的执行器(Executor)用于具体执行SQL语句。它根据优化器所选的执行计划,负责实际地执行SQL语句并产出相应结果。
InnoDB: InnoDB是一款高性能的关系型数据库存储引擎,主要专注于处理高并发和大数据量的数据库环境。它提供了事务处理、数据完整性和并发控制等关键特性。
Buffer Pool: Buffer Pool是InnoDB存储引擎内的内存缓存,用以存储数据页和索引页。其目标在于加速数据读取操作,减少磁盘I/O的需求次数。
Page: Page作为InnoDB存储引擎内的数据单元,代表存储数据或索引的页面。在InnoDB存储引擎中,Page构成了基本的数据单元。
B+Tree: B+Tree是一种被广泛用于关系型数据库存储引擎的索引结构。它采用了树状结构,通过比较操作组织数据,以支持快速的数据检索、插入和删除。B+Tree之所以受欢迎,是因为其数据存储方式:一个页内可容纳多个关键字,这样可减少查询时的磁盘I/O次数,进而提高查询效率。此外,B+Tree还支持范围查询以及前驱后继查询。
事务引擎: 事务引擎属于数据库管理系统的一部分,主管处理数据库事务。事务由一系列操作组成,要么全部成功,要么全部失败。事务引擎确保事务操作具备原子性、一致性和持久性特征。
事务引擎通过实现事务隔离级别和锁定机制来维护数据的完整性。此外,它还支持事务回滚和提交,以确保在错误发生时能够撤销数据更改。