🗄️ 第一章 数据库的基础知识
📄 一句话概括

数据库是仓库,DBMS(数据库管理系统)是仓库的管理员系统——我们从来不直接伸手拿货,所有活都派给管理员去干。

📝 本节和前面几节的关系

1-1 认了【数据、数据库】两个词,1-2 看了【数据库会什么活】;本节回答一个此前一直没点破的问题:【这个仓库是谁在打理?】——答案就是 DBMS。这也是为什么日常说【装了个 MySQL】,装的其实是 DBMS 而不是【数据】本身。

一、数据库和 DBMS 必须分开说

这两个词总被混着用,但它们是两个东西:

是什么 比喻
数据库(DB) 数据的集合,货本身 仓库里的货
DBMS 管理数据库的一套软件系统 仓库管理员+管理制度

DBMS 的全称:Database Management System(数据库管理系统)。

关键画面:你(或你写的程序)从来不直接碰数据。想存一条、查一条,都是【递申请单】给 DBMS,它替你进仓库拿货、放货、记账。

所以日常对话要翻译一下:

二、DBMS 平时都干哪些活

管理员不是摆设,它是全库最忙的角色。先总览一遍(1-4 会逐条展开):

  1. 存与取:把数据按结构写进去、按条件捞出来(1-2 的登记/整理/查询都由它执行)
  2. 把守安全:谁能进、谁能改,它说了算(→ 1-4 的访问权限)
  3. 防止打架:一百个人同时读写一个仓库,它负责排队协调(→ 1-4 的并发控制)
  4. 备份与恢复:仓库着火了它负责把货找回来(→ 1-4 的恢复)

一句话:1-2 说的三大特征,全是 DBMS 干出来的。 数据库只是货和货架,本事都长在管理员身上。

三、常见的 DBMS 点个名

这一节先混个脸熟(1-5 会按【商用/开源】把家谱铺开):

名字 一句话特点 常见于
MySQL 开源、免费、用得最多 网站、App 后台
PostgreSQL 开源、功能最全 对数据质量要求高的系统
SQLite 开源、小到几百 KB 手机 App、微信、浏览器
Oracle 商用、贵、稳 银行、电信
SQL Server 商用、微软家的 用 Windows 的企业

注意最后一行 SQLite:不是只有大系统才配数据库。你手机里微信的聊天记录,就是一个 SQLite 数据库在管。

四、动手 Demo:找出你身边的 DBMS

不用装任何东西,做一次【侦探行动】:

  1. 电脑上打开文件资源管理器,搜索栏输入 *.db(也可能在 App 数据目录里,如微信的文件目录)
  2. 手机(安卓)用文件管理器进微信的目录,找 MicroMsg 下面的 EnMicroMsg.db 一类的文件
  3. 浏览器也有:Chrome 的历史记录、Cookie,底下是 SQLite 数据库文件(目录里能翻到 History 这类无后缀的库文件)

看到什么算成功:至少找到一个 .db 或 SQLite 库文件——每一份背后都是一个正在运行的 DBMS。

五、30 秒实验

在搜索工具里输入【微信 SQLite】或【Chrome History SQLite】:

六、常见误区

  1. "数据库就是 DBMS" —— 货和管理员是两回事。数据库是数据的集合;DBMS 是管这套数据的软件系统。说【MySQL 里存了用户表】,其实是【MySQL 这个 DBMS 管理的数据库里有一张用户表】。
  2. "DBMS 就是一个图形界面软件" —— 你见过的数据库管理界面(可视化窗口)只是外壳;真正干活的是后台服务——它通常没有窗口,默默在系统后台常驻。
  3. "一个应用必须配一个大型数据库" —— SQLite 只有几百 KB,照样把微信聊天记录管得明明白白。数据库的大小看需求,不看排场。
自测三问(点开对答案) 1. DBMS 的全称和中文是什么? **Database Management System,数据库管理系统**。 2. 你写的程序想查一条数据,是直接去文件里翻吗? **不是**——递请求给 DBMS,由它去取;我们从不直接碰数据。 3. 1-2 的三大特征(登记/整理/查询)是谁在执行? **DBMS**。数据库是货和货架,本事长在管理员身上。

相关笔记