这是我参与「第五届青训营 」伴学笔记创作活动的第14天。
发展历史
前DBMS时代
人工管理、文件系统
DBMS时代
1960s,传统的文件系统已经不能满足人们的需要,数据库管理系统(DBMS)应运而生。 DBMS:按照某种数据模型来组织、存储和管理数据的仓库。 所以通常按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。
网状模型
网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式。 1964年,世界上第一个数据库系统集成数据存储( Integrated Data Storage, IDS )诞生于通用电气公司。 IDS是世界上第一个网状数据库,奠定了数据库发展的基础,在当时得到了广泛的应用。在1970s网状数据库系统+分流行,在数据库系统产品中占据主导地位。
层次模型
1968年,世界上第一一个层次数据库信息管理系统( Information Management System, IMS )诞生于IBM公司,这也是世界上第一个大型商用的数据库系统。层次数据模型,即使用树形结构来描述实体及其之间关系的数据模型。
关系模型
使用表格表示实体和实体之间关系的数据模型称之为关系数据模型。 关系数据模型中,无论是是实体、还是实体之间的联系都是被映射成统- -的关系-- 张二维表, 在关系模型中,操作的对象和结果都是一-张二维表, 它由行和列组成; 关系型数据库可用于表示实体之间的多对多的关系,只是此时要借助第三个关系-表,来实现多对多的关系;
SQL引擎
查询解析: SQL 语言接近自然语言,入门容易。但是各种关键字、操作符组合起来,可以表达丰富的语意。因此想要处理SQL命令,首先将文本解析成结构化数据,也就是抽象语法树(AST)。
查询优化: SQL 是一门表意的语言,只是说「要做什么,而不说「怎么做。所以需要一些复杂的逻辑选择如何拿数据」,也就是选择一个好的查询计划。 优化器的作用根据AST优化产生最优执行计划(Plan Tree)。
查询执行:根据查询计划,完成数据读取、处理、写入等操作。
事务引擎:处理事务一致性、并发、读写隔离等。
存储引擎:内存中的数据缓存区、数据文件、日志文件。