MySQL-深入理解RDBMS | 青训营笔记

34 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 16 天

一、本堂课具体内容

  • RDBS

二、详细知识点介绍:

  • 发展历史

    • 前DBMS时代

      人工管理 - 文件系统 -

    • DBMS时代

      传统的文件系统难以应对数据增长的挑战,也无法满足多用户共享数据和快速检索数据的需求。层次型网状型关系型数据库划分的原则是数据之间的联系方式。

      层次数据库是按记录来存取数据的;网状数据库是采用网状原理和方法来存储数据;关系型数据库是以行和列的形式存储数据。

    • DBMS数据模型

      image.png

    • SQL语言

      非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

      1. 面向集合的操作方式

        SQL采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。

      2. 语言简洁,易学易用

        SQL功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词: CREATE、 ALTER、DROP、 SELECT、 INSERT、 UPDATE、 DELETE、GRANT、 REVOKE。且SQL语言语法简单,接近英语口语,因此容易学习,也容易使用。

  • 关键技术

    • SQL引擎

      1. 查询解析:SQL 语言接近自然语言,入门容易。但是各种关键字、操作符组合起来,可以表达丰富的语意。因此想要处理SQL命令,首先将文本解析成结构化数据,也就是抽象语法树 (AST)。
      2. 查询优化:SQL 是一门表意的语言,只是说『要做什么』,而不说『怎么做』。所以需要一些复杂的逻辑选择『如何拿数据』,也就是选择一个好的查询计划。优化器的作用根据AST优化产生最优执行计划(Plan Tree)。
      3. 查询执行:根据查询计划,完成数据读取、处理、写入等操作。
    • 事务引擎 : 处理事务一致性、并发、读写隔离等

      Atomicity - Undo Log - 锁 - MVCC - Redo Log

    • 储存引擎 : 内存中的数据缓存区、数据文件、日志文件

      LnnoDB - Buffer Pool - Page - B+Tree

  • 企业实践