这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天,今天学习了RDBMS的前世今生,以及为何被提出来,和主流的RDBMS数据库等,下面是我的收获
深入理解RDBMS
1.1 发展历史
1.1.1 前DBMS时代
人工管理
在现代计算机发明出来以前,通过人工更多方式进行数据记录和管理,例如:结绳记事、打字孔记事等
文件系统
1950年代,现代计算机的雏形基本出现。1956年IBM发布了第一个的磁盘驱动器-Model 305 RAMAC,从此数据存储进入磁盘时代,在这个阶段,数据管理直接通过文件系统来实现
1.1.2 DMBS时代
1960年代,传统的文件系统已经不能满足人们的需要,数据库管理系统应运而生。
模型
所以通常按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类
下面重点介绍关系模型
关系模型
关系数据模型中,无论是实体还是实体之间的联系都是被映射成统一的关系——一张二维表,在关系模型中,操作的对象和结果都是一张二维表,它由行和列组成,此外关系型数据库可用于表示实体之间的多对多的关系明,只是此时要借助第三个关系——一张表,来实现多对多的关系
1.1.3 DBMS数据模型
网状模型
- 优势
- 能直接描述现实世界
- 存取效率较高
- 劣势
- 结构复杂
- 用户不易使用
- 访问程序设计复杂
层次模型
- 优势
- 结构简单
- 查询效率高
- 可以提供较好的完整性支持
- 劣势
- 无法表示m:n的关系
- 插入、删除限制多
- 遍历子节点必须经过父节点
- 访问程序设计复杂
关系模型
- 优势
- 实体及实体间的联系都通过二维表结构表示
- 可以方便的表示m:n关系
- 数据访问路径对用户透明
- 劣势
- 关联查询效率不够高
- 关系必须规范化
1.1.4 SQL语言
1974年IBM的Ray Boyce和Don Chamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了SQL(Structured Query Language)语言
- 语法风格接近自然语言
- 高度非过程化
- 面向集合的操作方式
- 语言简洁,易学易用
1.2 关键技术
1.2.1 SQL引擎
Parser
解析器(Parser)一般分为词法分析(Lexical analysis)、语法分析(Syntax analysis)、语义分析(Semantic analyzer)等步骤
Optimizer
将语法解析的AST变为Plan给下一步操作
1.2.2 存储引擎
Buffer Pool