深入理解RDBMS | 青训营笔记

214 阅读4分钟

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

零、前言

本文记录和整理了本人在跟随字节青训营学习的一些我个人感觉比较重要的内容和知识,也有一部分内容是我认为自己比较难理解或记忆的,也一并记录于此文。

撰写本文的目的主要是方便我自己的复习和查阅,倘若各位读者有与我相似的问题,也可以参考之,如果对各位有帮助那就是我莫大的荣幸,也期望各位不吝赐教,多多指出我的问题,可以在下方留言或者私信我。

avatar


一、发展历史

  • RDBMS是Relational Database Management System(关系型数据库管理系统)的缩写。它是一种基于关系模型的数据库管理系统,用于存储和维护关系型数据。
  • RDBMS中的数据被存储在以表格形式组织的数据库中,表格中的每一行代表一个记录,而每一列代表一个字段。这种模型使得数据更容易组织和管理,并允许多个表格之间通过关系进行整合。
  • 常见的RDBMS包括MySQL、Oracle、Microsoft SQL Server等。这些系统提供了许多强大的功能,如支持多种数据类型、支持事务处理、支持索引和查询优化等。

前DBMS时代 - 人工管理

像是结绳记事、账本等等。

后来,1950年,现代计算机的雏形基本出现,1956年IBM发布了第一个磁盘驱动器Model 305 RAMAC,从此数据存储进入磁盘时代。

DBMS时代

DBMS:按照某种数据模型来组织、存储和管理数据的仓库

image.png

网状模型

网状数据库所基于的网状数据模型建立的数据之间的联系,能反映现实世界中信息的关联,是许多空间对象的自然表达形式。

层次模型

层次数据模型,使用树形结构来描述实体及其之间关系的数据模型。

关系模型

使用表格表示实体和实体之间关系的数据模型。

image.png

SQL语言

SQL(Structured Query Language)是一种专门用于操作关系型数据库的语言。

它用于定义、操作和查询关系型数据库中的数据。

SQL语言提供了多种命令,以实现不同的数据库操作,包括:

  1. 创建数据库:CREATE DATABASE
  2. 创建表格:CREATE TABLE
  3. 向表格中插入数据:INSERT INTO
  4. 更新表格中的数据:UPDATE
  5. 删除表格中的数据:DELETE
  6. 查询表格中的数据:SELECT
  7. 对表格中的数据进行聚合操作:SUM、AVG、COUNT等
  8. 对表格中的数据进行排序和筛选:ORDER BY和WHERE

二、关键技术

image.png

Parser:

SQL引擎的Parser是用于读取和分析SQL语句的组件。它的任务是将SQL语句解析为一个语法树,并对SQL语句进行语法检查。

Optimizer:

SQL引擎的Optimizer是用于评估并优化SQL语句执行计划的组件。它根据SQL语句和数据库的结构,选择最佳的执行计划,以最大程度地提高SQL语句的执行效率。

Executor:

SQL引擎的Executor是用于执行SQL语句的组件。它根据Optimizer选择的执行计划,负责执行SQL语句并生成结果。

InnoDB:

InnoDB是一种高性能的关系型数据库存储引擎,主要用于处理高并发和大数据量的数据库环境。它提供了事务处理、数据完整性和并发控制等功能。

Buffer Pool:

Buffer Pool是InnoDB存储引擎的一个内存缓存,用于存储数据页和索引页。它的作用是加速数据读取,减少磁盘I/O的次数。

Page:

Page是InnoDB存储引擎中的数据单元,表示数据或索引的存储页面。它是InnoDB存储引擎的基本数据单位。

B+Tree:

B+Tree是一种常用的索引结构,通常用于关系型数据库的存储引擎。它是一种树形结构,使用比较操作来组织数据,有助于快速查找、插入和删除数据。B+Tree的优点是在于数据的存储方式,它在一个页中存储了多个关键字,这样可以在查询时减少磁盘I/O的次数,提高查询效率。此外,B+Tree还支持前驱后继的查询,以及范围查询。

事务引擎

事务引擎是数据库管理系统中的一部分,负责处理数据库事务。事务是一组操作,要么全部成功,要么全部失败。事务引擎保证事务操作的原子性,一致性和持久性。

事务引擎通过实现事务隔离级别和锁定机制来保证数据的完整性。它还支持事务回滚和事务提交,以确保在发生错误时可以撤消对数据的更改。

image.png


未完待续...(随时补充修改)

谢谢大家的阅读,欢迎互动,也欢迎访问我的博客!

落雨乄天珀夜 (gitee.io)