Skip to main content

数据库内核入门-01 - 开篇

· 4 min read
ULis3h
Ex-ISCAS Software Engineer,

简述

这是数据库内核入门系列的第一篇文章。 由于水平有限,文章可能会有错误,欢迎指正。

注:由于时代发展的需要,数据库已经衍生出针对多种应用场景的数据库系统,如关系型数据库、非关系型数据库、图数据库等。本文将主要介绍关系型数据库内核的实现。

基本概念

数据(Data) 是描述事物的符号记录,是信息的载体。

数据库(Database) 是按照特定数据结构组织、存储和管理数据的仓库。

数据库管理系统(Database Management System) 是用于创建、管理和维护数据库的软件。

数据库内核(Database Kernel) 是数据库管理系统的核心组件,负责处理数据库的创建、管理和维护。

数据库内核要完成的功能

在现实生活或者生产环境中,我们难以避免的产生各类数据,受面向对象的思想浸染,我们反过来也可以将人脑看作是一个数据库管理系统,它负责管理这些数据。可遗憾的是,人在进化中最显著的特点就是遗忘,我们很难记住所有的数据,因此我们需要一个数据库管理系统来帮助我们管理这些数据,以便在需要的时候可以快速的找到我们需要的数据。

这便是缘起,即有了需要解决的问题,便有了数据库管理系统要完成的功能;但为什么是数据库管理系统而不是文件系统? 可以简单的从下面表格中看出区别:

特性文件系统数据库
数据共享❌ 困难✅ 容易
数据一致性❌ 难保证✅ 有约束机制
并发控制❌ 无✅ 有锁机制
事务支持❌ 无✅ ACID特性
数据恢复❌ 困难✅ 有备份恢复
查询效率❌ 低✅ 有索引优化

数据库管理系统的主要功能

  • 数据定义
  • 数据操纵
  • 数据组织、存储、查询

数据库管理系统架构

数据库管理系统通常采用分层架构设计,每一层都有特定的职责和功能。下面是一个典型的数据库管理系统架构图:

各层详细说明

应用层

  • 客户端应用:用户程序,通过标准接口(如JDBC、ODBC)与数据库交互
  • 连接池:管理数据库连接,提高连接复用率

接口层

  • SQL解析器:将SQL语句解析为内部表示形式
  • 查询优化器:生成最优的查询执行计划
  • 执行引擎:执行查询计划,协调各个组件

逻辑层

  • 事务管理器:保证ACID特性,管理事务的开始、提交和回滚
  • 锁管理器:实现并发控制,防止数据竞争
  • 缓冲池管理器:管理内存中的数据页,减少磁盘I/O

物理层

  • 日志管理器:记录所有数据变更,支持恢复和回滚
  • 存储引擎:负责数据的物理存储和检索
  • 索引管理器:维护各种索引结构,加速查询

存储层

  • 数据文件:存储实际的表数据
  • 索引文件:存储索引数据结构
  • 日志文件:存储事务日志和恢复信息