后端与 RDBMS | 青训营笔记

100 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天,今天学习了RDBMS的前世今生,以及为何被提出来,和主流的RDBMS数据库等,下面是我的收获

深入理解RDBMS

1.1 发展历史

1.1.1 前DBMS时代

人工管理

在现代计算机发明出来以前,通过人工更多方式进行数据记录和管理,例如:结绳记事、打字孔记事等

文件系统

1950年代,现代计算机的雏形基本出现。1956年IBM发布了第一个的磁盘驱动器-Model 305 RAMAC,从此数据存储进入磁盘时代,在这个阶段,数据管理直接通过文件系统来实现

1.1.2 DMBS时代

1960年代,传统的文件系统已经不能满足人们的需要,数据库管理系统应运而生。

模型

所以通常按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类

image.png

下面重点介绍关系模型

关系模型

关系数据模型中,无论是实体还是实体之间的联系都是被映射成统一的关系——一张二维表,在关系模型中,操作的对象和结果都是一张二维表,它由行和列组成,此外关系型数据库可用于表示实体之间的多对多的关系明,只是此时要借助第三个关系——一张表,来实现多对多的关系

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)等步骤

image.png

Optimizer

将语法解析的AST变为Plan给下一步操作

image.png

1.2.2 存储引擎

Buffer Pool

image.png