这是我参与「第五届青训营」伴学笔记创作活动的第 16 天
一、本堂课具体内容
- RDBS
二、详细知识点介绍:
-
发展历史
-
前DBMS时代
人工管理 - 文件系统 -
-
DBMS时代
传统的文件系统难以应对数据增长的挑战,也无法满足多用户共享数据和快速检索数据的需求。
层次型、网状型和关系型数据库划分的原则是数据之间的联系方式。层次数据库是按记录来存取数据的;网状数据库是采用网状原理和方法来存储数据;关系型数据库是以行和列的形式存储数据。
-
DBMS数据模型
-
SQL语言
非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。
-
面向集合的操作方式
SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
-
语言简洁,易学易用
SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词: CREATE、 ALTER、DROP、 SELECT、 INSERT、 UPDATE、 DELETE、GRANT、 REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。
-
-
-
关键技术
-
SQL引擎
- 查询解析:SQL 语言接近自然语言,入门容易。但是各种关键字、操作符组合起来,可以表达丰富的语意。因此想要处理SQL命令,首先将文本解析成结构化数据,也就是抽象语法树 (AST)。
- 查询优化:SQL 是一门表意的语言,只是说『要做什么』,而不说『怎么做』。所以需要一些复杂的逻辑选择『如何拿数据』,也就是选择一个好的查询计划。优化器的作用根据AST优化产生最优执行计划(Plan Tree)。
- 查询执行:根据查询计划,完成数据读取、处理、写入等操作。
-
事务引擎 : 处理事务一致性、并发、读写隔离等
Atomicity - Undo Log - 锁 - MVCC - Redo Log
-
储存引擎 : 内存中的数据缓存区、数据文件、日志文件
LnnoDB - Buffer Pool - Page - B+Tree
-
-
企业实践