第 1 章 数据库系统概述 · 第二节
数据库系统的组成
数据库、用户、软件、硬件,以及 DBMS 的六项功能
接下来把数据库系统拆开,看看里面有哪四样东西,各自管什么。
重 点这一块看的时候抓两点
第一是四个组成部分的名字和它们在图上的位置,考试常考“下列哪项不属于数据库系统的组成”。第二是 DBMS 的六项功能,每一项都对应教材后面的某一章,这里先混个脸熟,知道它管哪一摊事就够了。
知道更多
从这一板块起,DBMS、DB、DBS 三个缩写会不停出现。它们是三个不同范围的东西,DB 是数据,DBMS 是管数据的软件,DBS 是包括人和机器在内的整体,课后练习第 1 题专门考这一点。
想一想
一个数据库系统,除了软件和数据,还需要什么?
数据库是按数据模型组织、长期存放在计算机里、可共享的数据和数据对象的集合。
关键术语
数据库Database,DB有组织、可共享、长期存储的数据集合,还包括表、视图、存储过程、触发器这些数据对象。
重 点定义里的三个限定词
“有组织”是按数据模型摆放,不是随手一堆。“可共享”是多个用户、多个程序同时用同一份。“长期存储”是关机之后还在,不是算完就丢的内存数据。括号里列的表、视图、存储过程、触发器,是后面第 5、7、15、16 章会一一见到的东西。
打个比方
图书馆的书按分类号上架是有组织,全校师生都能借是共享,书一直放在那里是长期存储。一堆随手扔在地上的书,哪怕数量更多,也不叫图书馆。
想一想
你电脑里的“下载”文件夹,算不算一个数据库?
数据库系统由数据库、用户、硬件系统、软件系统四部分组成,图上用户在最外层,数据库在最里层。
关键术语
数据库系统Database System,DBS数据库、数据库管理系统、用户、硬件和软件合在一起的整体。
重 点怎么读这张图
从上往下是用户、应用系统、DBMS、操作系统、数据库,硬件垫在最底下。两个人物的位置有讲究:应用程序员对着应用开发工具,因为他写程序。数据库管理员对着 DBMS,因为他直接管数据库本身。虚线框住的软件系统包括应用系统、开发工具、DBMS 和操作系统四层。
打个比方
一家餐厅:顾客是用户,菜单和服务员是应用系统,厨房总管是 DBMS,水电煤气是操作系统和硬件,冷库里的食材是数据库。顾客从来不进冷库,一切经由服务员和厨房。
想一想
图里 DBA 为什么画在 DBMS 旁边,而不是应用系统旁边?
三类用户按离数据的远近排:最终用户只用现成的程序,应用程序员写程序,数据库管理员管数据库本身。
关键术语
最终用户End User通过现成的应用程序使用数据库的人,不直接碰数据库。
应用程序员Application Programmer为最终用户设计、编写、调试和安装应用程序的人。
数据库管理员Database Administrator,DBA负责设计、建立、管理、维护数据库并协调各方需求的人或团队。
打个比方
校园卡系统:刷卡吃饭的学生是最终用户,写刷卡程序的公司是应用程序员,学校信息中心里管服务器、备份数据、给食堂开权限的人是 DBA。
练一练
下列哪项工作由数据库管理员负责?
- A在食堂刷校园卡买饭
- B给食堂写一个刷卡结算程序
- C制定校园卡数据库的备份计划
- D在班群里发一条通知
答案 C备份、权限、性能这些直接针对数据库本身的工作属于 DBA。A 和 D 是最终用户在做事,B 是应用程序员的工作。
软件系统里 DBMS 是核心,所有对数据库的操作请求都必须经过它。
重 点“必须通过 DBMS”意味着什么
没有任何程序或用户能绕开 DBMS 直接改磁盘上的数据文件,这正是安全和一致能得到保证的前提。DBMS 自己不直接操作硬件,它借助操作系统去读写磁盘,所以图上操作系统在它下面。
知道更多常见的 DBMS
MySQL、Oracle、SQL Server、PostgreSQL、SQLite 都是 DBMS,本课程用的是 MySQL。它们的功能框架和下面几页讲的一样,差别在性能、价格和适用场景。
打个比方
DBMS 像银行柜台。你不能自己走进金库拿钱,存取都要经过柜员,柜员核对身份、记账、保证账目一致,正因为一切都经过他,银行才管得住钱。
想一想
为什么不让程序直接读写数据库文件,非要绕一道 DBMS?
六项功能可以归成三组:定义和操纵数据,运行时的管理与维护,对外通信和对内存储。
重 点六项功能各对应教材后面哪一章
数据定义功能对应第 4、5 章建库建表,数据操纵功能对应第 5、6 章的增删改查,数据库运行管理功能对应第 8 章安全、第 9 章并发、第 10 章恢复,数据库建立和维护功能对应第 10 章的备份还原,数据通信接口对应第 17 章用 Python 连接 MySQL,数据组织存储和管理对应第 7 章索引。这张图相当于全书的目录。
打个比方
一家仓库要做的事也是这六样:定货架规格,收发货物,日常看门和盘点,建仓和搬仓,跟外面的物流对接,决定货物怎么摆放才好找。
想一想
六项功能里,你觉得普通用户最常直接用到的是哪一项?
17
第 1 章 · 第二节
数据定义功能与数据操纵功能
DDL 定义数据长什么样,DML 对数据做增删改查,两者合起来就是 SQL 的主体。
关键术语
数据定义语言Data Definition Language,DDL定义三级模式、二级映像和约束条件的语句,如 CREATE、DROP、ALTER。
数据操纵语言Data Manipulation Language,DML对数据本身做查询和更新的语句,如 SELECT、INSERT、UPDATE、DELETE。
结构化查询语言Structured Query Language,SQL关系数据库的标准语言,DDL 和 DML 都是它的一部分。
重 点
分清两者只看动作对象:动的是结构(建表、删表、改表的列)就是 DDL,动的是表里的数据(查一行、插一行、改一行、删一行)就是 DML。课件里 Create、Drop、Alter 对结构,Select、Insert、Update、Delete 对数据。
打个比方
盖房子时画图纸、定房间是 DDL,往房间里搬家具、换家具、扔家具是 DML。图纸定了之后天天在做的是搬家具,所以 DML 用得最多。
想一想
“把王芳的年龄改成 20”,用的是 DDL 还是 DML?
18
第 1 章 · 第二节
数据库运行管理功能与建立维护功能
运行管理的四个控制是 DBMS 区别于文件系统的关键:安全、完整、并发、恢复。
关键术语
安全性控制Security防止不合法的使用,每个用户只能按规定做规定的操作。
完整性控制Integrity用约束规则保证数据正确、有效、彼此相容。
并发控制Concurrency Control多个用户同时读写时,防止相互干扰得到错误结果。
重 点四个控制各对应一种事故
有人偷看或乱改别人的数据,靠安全性控制。年龄输成 200 岁,靠完整性控制拦下。两个人同时抢最后一张票,靠并发控制保证只卖出一张。机器突然断电,靠数据恢复把数据库退回到最近的正确状态。建立和维护功能说的是装入初始数据、转储、重组这些管理员的日常工作。
想一想
两个人同时抢同一张票,只剩一张,系统该怎么办?
19
第 1 章 · 第二节
数据通信接口与数据组织存储
对外,DBMS 要能和别的软件、别的 DBMS 交换数据。对内,它要决定数据在磁盘上怎么摆才省空间、找得快。
关键术语
数据字典Data Dictionary数据库里描述自己的那部分数据,记着有哪些表、哪些列、谁有什么权限。
存取路径Access Path找到某条数据的途径,索引就是最常见的一种。
重 点
通信接口做的是三件事:用户程序连 DBMS,一个 DBMS 连另一个 DBMS,DBMS 和文件系统互相导入导出。数据组织存储管的是三样东西怎么放:数据字典、用户数据、存取路径,目标是存储空间利用率高,增删查改快。
打个比方
仓库管理员决定货物怎么摆、要不要建一套索引卡,这是组织存储。和别的仓库交换货物时要用统一的包装规格,这是通信接口。
想一想
把 Excel 里的一张表导入 MySQL,用的是 DBMS 的哪一项功能?
七步可以归成三段:接到请求并翻译,逐层查模式找到数据在哪,取出来处理后交还给用户。
重 点第三步是整个过程的枢纽
第(3)步依次检查外模式、外模式/模式映像、模式、模式/内模式映像和存储结构,这条路线正是下一板块要讲的三级模式与二级映像,DBMS 每执行一条语句都要沿着它走一遍。第(2)步的“解释转换成机器代码指令”,就是把用户写的 SQL 翻译成机器能执行的操作。
知道更多
这七步在一台普通电脑上通常只要几毫秒,快到用户察觉不到。慢下来往往是因为第(4)步在磁盘上找数据找得久,第 7 章的索引就是为了缩短这一步。
小明下单、服务员理解、查货架位置、取货、拿到、打包、收到,七步与 DBMS 的存取过程一一对应。
试一试七步存取过程,一步一步走
- 用户用 SQL 发出存取请求
- DBMS 接受请求,翻译成机器能执行的操作
- 依次检查外模式、外模式/模式映像、模式、模式/内模式映像和存储结构
- 对存储的数据库执行存取操作
- 从存取操作中接受结果
- 对结果做必要的处理,如格式转换
- 把结果返回给用户
按下一步,左边高亮的是 DBMS 在做的事,这里写的是超市里对应发生了什么。
重 点类比里最要紧的一处
服务员查“饮料在哪个大类、可乐在饮料里的哪一类、放在几号货架第几层”,三个问题正对应外模式、模式、内模式,说明三级模式本质上是 DBMS 找数据的路线图。
想一想
如果服务员不知道货架的位置,七步会在哪一步卡住?