{T}

定义数据库

0. 引言

"数据库"是软件工程中最基础也最重要的概念。本文从定义出发,厘清数据库(Database)、数据库管理系统(DBMS)、SQL 与关系模型的关系,并给出主流产品的选型视角——理解这些基本概念,是后续所有 MySQL 深入学习的地基。

1. 数据库与 DBMS

  • 数据库(Database):按特定结构组织、存储和管理的数据集合。数据不再是散落的文件,而是有结构、有约束、可高效查询的集合。
  • 数据库管理系统(DBMS):管理数据库的软件系统,负责数据的存储、检索、并发控制、安全与恢复。我们日常说的"MySQL""Oracle"都是 DBMS 而非数据库本身
图表渲染中…

DBMS 的核心职责:

职责说明
数据存储组织文件、索引,高效读写
并发控制多用户同时访问时的隔离与锁
事务管理ACID 保证
安全管理认证、授权、审计
恢复机制崩溃后数据不丢失(redo/undo/备份)

2. 关系型数据库与 SQL

  • 关系模型:数据组织为二维表(关系),表由行(记录)与列(字段)构成,表间通过键建立关联;
  • SQL(Structured Query Language):操作关系型数据库的标准语言,分四类:
    • DDL(定义):CREATE/ALTER/DROP
    • DML(操作):INSERT/UPDATE/DELETE
    • DQL(查询):SELECT
    • DCL(控制):GRANT/REVOKE

关系型数据库为什么长盛不衰:强约束(完整性)、事务(ACID)、标准 SQL、生态成熟。代价是扩展性受限于单机(→ 分库分表/NewSQL,见《如何做到MySQL高扩展性》)。

3. 主流数据库产品与选型

产品类型特点适用
MySQL关系型(开源)生态最广、互联网事实标准、8.0 功能完善通用 OLTP,绝大多数业务
PostgreSQL关系型(开源)功能最全(丰富类型/窗口函数/扩展)、严谨复杂查询、GIS、金融级严谨场景
Oracle关系型(商业)企业级功能与支持最强、成本高传统大企业、金融核心
SQL Server关系型(商业)Windows/.NET 生态集成好微软技术栈企业
SQLite嵌入式关系型零配置、单文件移动端、客户端本地存储
MongoDB文档型 NoSQL灵活 schema、水平扩展非结构化/快速迭代
RedisKV NoSQL内存级性能缓存/计数器/队列
ClickHouse列式 OLAP分析查询极快日志分析、BI 报表
TiDB分布式 NewSQLMySQL 兼容 + 透明扩展海量数据 OLTP

选型决策树

图表渲染中…

4. MySQL 的定位

  • 开源免费、社区活跃、资料海量,是互联网行业雇主最看重的数据库技能
  • 8.0 已补齐:窗口函数、CTE、JSON 原生支持、原子 DDL、不可见索引等,功能上不输商业数据库;
  • 学习路径:本文 -> 体系结构 -> 表设计 -> 索引 -> 事务锁 -> 性能优化 -> 高可用/扩展。

5. 小结

  • 数据库是结构化数据集合,DBMS 是管理它的软件,日常所说的"MySQL"指 DBMS;
  • 关系模型 + SQL 是关系型数据库的核心,ACID 与约束是其价值所在;
  • 选型看业务:OLTP 用 MySQL/PostgreSQL,海量数据用 NewSQL,分析用列式,缓存用 Redis;
  • MySQL 8.0 是学习与实践的首选对象,后续章节将深入其每个核心机制。