数据库管理系统 · DBMS
📌 一句话理解
数据库管理系统就像“图书馆管理员”:你告诉管理员要什么书(查询数据),管理员知道书在哪(数据位置),帮你快速找到并拿给你,还会帮你保管、整理、登记借还。
📚 用“图书馆”来理解DBMS
┌─────────────────────────────────────────────────────────────────┐
│ DBMS = 图书馆管理员 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 图书馆 │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 读者 │ │ 管理员 │ │ │
│ │ │ (用户) │ ──── 借书 ────► │ (DBMS) │ │ │
│ │ │ │ │ │ │ │
│ │ │ 我想借 │ ◄─── 给你书 ──── │ 我知道书 │ │ │
│ │ │ 《西游记》 │ │ 放在哪 │ │ │
│ │ └─────────────┘ └──────┬──────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────┐ │ │
│ │ │ 书架 │ │ │
│ │ │ (数据库) │ │ │
│ │ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ 读者不用知道书在哪,告诉管理员就行 │
│ 管理员管理所有书籍,知道每本书的位置 │
│ │
└─────────────────────────────────────────────────────────────────┘
🗄️ DBMS是什么?
数据库管理系统(DBMS,Database Management System) 是管理和操作数据库的基础软件,负责数据的存储、查询、更新、备份和安全管理。
┌─────────────────────────────────────────────────────────────────┐
│ DBMS的角色 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ 用户/应用 │ │
│ │ (你的程序) │ │
│ └──────┬──────┘ │
│ │ 发送请求 │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ DBMS(数据库管理系统) │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ 查询处理 │ 事务管理 │ 并发控制 │ 恢复管理 │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ 权限管理 │ 索引管理 │ 缓存管理 │ 日志管理 │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ 数据库 │ │
│ │ (实际数据) │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
🔧 DBMS的主要功能
| 功能 | 说明 | 图书馆类比 |
|---|---|---|
| 数据定义 | 创建和修改数据库结构 | 规划书架分类、图书编号规则 |
| 数据操纵 | 增、删、改、查数据 | 借书、还书、登记新书 |
| 数据控制 | 权限管理、安全控制 | 只有管理员才能进书库 |
| 数据维护 | 备份、恢复、性能优化 | 定期盘点、修补破损图书 |
📊 常见的数据库管理系统
| 名称 | 开发商 | 特点 | 适合场景 |
|---|---|---|---|
| MySQL | Oracle(开源) | 免费、轻量、流行 | 网站、App后台 |
| PostgreSQL | 开源社区 | 功能全面、标准 | 复杂业务系统 |
| Oracle | Oracle | 强大、安全、贵 | 银行、大企业 |
| SQL Server | 微软 | 易用、集成好 | 微软生态应用 |
| SQLite | 开源 | 嵌入式、轻量 | 手机App、小程序 |
💡 小提示:你手机里的很多App,用的就是SQLite数据库!
🏠 生活中的DBMS
┌─────────────────────────────────────────────────────────────────┐
│ 你每天都在用DBMS │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 微信聊天记录 │ │
│ │ 你发一条消息 → DBMS存到数据库 → 对方打开时,DBMS快速查到 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 淘宝购物车 │ │
│ │ 你加一件商品 → DBMS记下来 → 下次打开,DBMS帮你查出来 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 学校成绩查询系统 │ │
│ │ 输入学号 → DBMS查数据库 → 显示你的成绩 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 短视频推荐 │ │
│ │ 刷到一个视频 → DBMS记录你看了 → 算法推荐更多类似视频 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
✅ 为什么需要DBMS?
| 问题 | 没有DBMS | 有DBMS |
|---|---|---|
| 存储 | 文件散落各处,难找 | 集中管理,结构清晰 |
| 查询 | 手动打开文件查找 | SQL一句话搞定 |
| 安全 | 任何人都能改文件 | 权限控制,谁有权限谁操作 |
| 多人同时用 | 可能互相覆盖 | 自动协调,不会冲突 |
| 崩溃 | 数据可能丢 | 自动恢复,保证完整 |
📝 SQL:和DBMS说话的语言
SQL(结构化查询语言) 是专门用来和DBMS交流的语言。
| 操作 | SQL语句 | 说明 |
|---|---|---|
| 查 | SELECT * FROM 学生 WHERE 班级='高一1班' | 查高一1班所有学生 |
| 增 | INSERT INTO 学生 VALUES ('张三', '高一1班') | 添加学生张三 |
| 改 | UPDATE 学生 SET 班级='高一2班' WHERE 姓名='张三' | 把张三调到2班 |
| 删 | DELETE FROM 学生 WHERE 姓名='张三' | 删除张三的信息 |
💡 小提示:程序员写代码时,就是用SQL语句告诉DBMS要做什么。
🔗 相关术语
📚 教材链接
- 教材位置:第四章 4.2.1 基础软件及其作用
✅ 自测小问题
- DBMS的全称是什么?中文是什么意思?
- DBMS的主要功能有哪些?
- 常见的DBMS有哪些?
- SQL是做什么用的?
点击查看答案
- Database Management System,中文:数据库管理系统
- 数据定义、数据操纵、数据控制、数据维护(增删改查+权限+备份)
- MySQL、PostgreSQL、Oracle、SQL Server、SQLite
- 和DBMS交流的语言,用来查询、添加、修改、删除数据