这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天
一、本堂课重点内容
- 深入理解RDBMS
二、详细知识点介绍
1.发展历史
-
前DBMS时代
- 人工时代:在现代计算机发明出来以前,通过人工的方式进行数据记录和管理
- 文件系统:1950s,现代计算机的雏形基本出现。1956年IBM发布了第一个的磁盘驱动器--Model 305 RAMAC,从此数据存储进入磁盘时代。在这个阶段,数据管理直接通过文件系统来实现。
-
DBMS时代:1960s,传统的文件系统已经不能满足人们的需求,数据库管理系统(DBMS)应运而生。DBMS:按照某种数据模型来组织、存储和管理数据的仓库。所以通常按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。
DBMS数据模型:
- 网状模型:网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达式。
- 层次模型:层次数据模型,即使用树形结构来描述实体及其之间关系的数据模型。
- 关系模型
-
SQL语言:将codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来。
- 语法风格接近自然语言
- 高度非过程化
- 面向集合的操作方式
- 语言简洁,易学易用
2.关键技术
-
SQL引擎
- Parser(解析器):一般为词法分析、语法分析、语义分析等步鄹。
- Optimizer(优化器):RBO(规则优化器)、CBO(代价优化器)。
- Executor:火山模型、向量化
-
存储引擎
- InnoDB
- Buffer Pool
- Page
- B+ Tree
-
事务引擎
- Atomicity与Undo Log
- Isolation与锁
- Isolation与MVCC:MVCC意义读写互不阻塞,降低死锁概率,实现一致性读。
- Durability与Redo Log
三、课后个人总结
数据库是我们开发不能绕过的重要一环,这节课深入的了解到RDBMS的发展和它涉及的一些关键技术,了解到其核心内容,最后在企业级的实践开发中成功了解一些开发项目原理,应用范围,为我后续学习打下大量基础,加油!