返回 Database
Database 2026-05-19

第1章 绪论

第1章 绪论

一、本章学习目标

学完本章后,你应该能够回答下面这些问题:

  1. 什么是数据数据库(DB)数据库管理系统(DBMS)数据库系统(DBS),它们之间是什么关系?
  2. 数据管理技术经历了哪些发展阶段?数据库系统相比文件系统到底先进在哪里?
  3. 什么是数据模型?为什么说数据模型是数据库系统的核心和基础?
  4. 概念模型、逻辑模型、物理模型分别是什么?它们之间如何衔接?
  5. 什么是 E-R 模型?实体、属性、码、联系分别是什么意思?
  6. 关系模型中的基本术语有哪些?为什么关系必须满足“分量不可再分”?
  7. 什么是数据库系统的三级模式结构?什么是两级映像?它们为什么能保证数据独立性?
  8. 一个完整的数据库系统由哪些部分组成?不同人员在其中承担什么角色?

二、数据库系统概述

2.1 四个基本概念

数据库课程的入门,首先要把四个概念区分清楚:

  • 数据(Data)
  • 数据库(Database, DB)
  • 数据库管理系统(Database Management System, DBMS)
  • 数据库系统(Database System, DBS)

这四者是层层递进的关系。


2.2 数据(Data)

1. 数据的定义

数据是数据库中存储的基本对象。

更准确地说:

数据是描述事物的符号记录

这里的“符号记录”可以是很多形式,例如:

  • 数字
  • 文字
  • 图形
  • 图像
  • 声音
  • 视频
  • 编码后的各种信号

2. 数据的语义

数据不仅仅是“符号”,还带有含义
这个含义就叫作数据的语义

例如一条学生记录:

(20180002,刘晨,女,1999-09-01,计算机科学与技术)

它不是随便拼起来的一串值,而是分别表示:

  • 20180002:学号
  • 刘晨:姓名
  • 女:性别
  • 1999-09-01:出生日期
  • 计算机科学与技术:专业

所以:

数据与语义是不可分的。

如果只看“20180002”这个数字而不知道它是学号、工资还是订单编号,那么这条数据就缺少实际意义。


2.3 数据库(DB)

1. 数据库的定义

数据库是:

长期储存在计算机内、有组织的、可共享的大量数据的集合。

这里面有几个关键词,必须抓住:

  • 长期储存:不是临时变量,不是程序运行一下就消失的数据
  • 有组织:数据不是乱堆在一起,而是按某种结构组织起来
  • 可共享:不是只给一个程序用,而是允许多个用户、多个应用共同使用
  • 大量数据:数据库面对的通常不是几条记录,而是具有规模的数据集合

2. 数据库的基本特征

数据库具有以下典型特征:

  1. 数据按一定的数据模型组织、描述和存储
  2. 可为各种用户共享
  3. 冗余度较小
  4. 数据独立性较高
  5. 易扩展

可以简单理解为:

  • 数据库不是“文件的堆积”
  • 它强调统一组织、统一管理、统一使用

2.4 数据库管理系统(DBMS)

1. DBMS 的定义

数据库管理系统位于用户与操作系统之间,是一层数据管理软件

它是基础软件,也是一个大型复杂的软件系统。

你可以把它理解成:

数据库的“总管家”

用户一般不直接和磁盘上的数据文件打交道,而是通过 DBMS 来操作数据库。

常见的 DBMS 有:

  • MySQL
  • Oracle
  • SQL Server
  • PostgreSQL
  • SQLite

2. DBMS 的主要功能

课件中总结了 DBMS 的六类主要功能:

  1. 数据定义功能(DDL)

    • 定义数据库对象
    • 例如定义数据库、表、视图、索引等
  2. 数据组织、存储和管理功能

    • 负责数据的存储结构、存储方式、存取路径等
  3. 数据操纵功能(DML)

    • 对数据进行查询、插入、删除、修改
  4. 数据库的事务管理和运行管理功能

    • 保证数据库在多用户环境下正确运行
  5. 数据库的建立和维护功能

    • 包括数据库初始装载、备份、恢复、重组、性能监控等
  6. 其他功能

    • 如通信、接口、开发工具支持等

3. 一句话理解 DBMS

数据库是“数据仓库”,
DBMS 是“管理这个仓库的软件系统”。


2.5 数据库系统(DBS)

数据库系统不是只有“数据库”本身。

它通常由以下部分构成:

  • 数据库
  • 数据库管理系统(及应用开发工具)
  • 应用系统
  • 数据库管理员(DBA)

也就是说:

数据库系统 = 数据库 + 管理软件 + 应用 + 管理人员

很多初学者容易把“数据库”和“数据库系统”混为一谈,这是一个高频误区。


2.6 什么是数据管理

数据管理,就是对数据进行:

  • 分类
  • 组织
  • 编码
  • 存储
  • 检索
  • 维护

数据处理的核心问题之一,就是如何高效、可靠地管理数据。


2.7 数据管理技术的发展过程

数据管理技术大体经历了三个阶段:

1. 人工管理阶段(20 世纪 50 年代中以前)

特点:

  • 数据量小
  • 没有专门的软件系统管理数据
  • 数据和程序紧密绑定
  • 数据不能共享
  • 管理效率低

2. 文件系统阶段(20 世纪 50 年代末到 60 年代中)

特点:

  • 数据开始以文件形式保存
  • 应用程序可以访问文件
  • 文件系统帮助管理数据

但问题也很明显:

  • 数据冗余大
  • 共享性差
  • 数据独立性弱
  • 程序依赖数据组织方式
  • 难以统一控制

3. 数据库系统阶段(20 世纪 60 年代末至今)

这是现代数据管理的主流阶段。

它相对于文件系统的关键进步,在于:

  • 整体结构化方式组织数据
  • 由 DBMS 统一管理与控制
  • 支持共享、并发、安全、恢复、完整性等能力

2.8 数据库系统阶段的主要特点

这是本节非常重要的内容。

1. 整体数据的结构化

数据库中的数据不是彼此孤立的,而是整体上有结构、有联系的。

这意味着:

  • 不仅要描述某个对象本身
  • 还要描述对象之间的关系

例如在学生选课系统中:

  • 学生和课程分别是数据对象
  • 学生“选修”课程,是对象之间的联系

结构化是数据库的主要特征之一。

并且数据库中数据的最小存取单位通常是数据项


2. 数据共享性强,冗余度低,易扩充

共享性强意味着多个用户、多个应用可以共同使用同一份数据。

这样做的好处是:

  • 避免重复保存相同数据
  • 减少数据不一致
  • 提高利用率

冗余度低并不是说一点重复都没有,而是说数据库会尽量减少不必要的重复存储。

易扩充意味着随着需求变化,数据库更容易增添新数据、新表、新关系和新应用。


3. 数据独立性强

数据独立性是数据库系统非常核心的优点。

它包括两层:

(1)物理独立性

用户的应用程序与数据库中数据的物理存储相互独立。

也就是说:

  • 数据是放在磁盘的哪个位置
  • 使用什么索引
  • 采用什么存储结构

这些物理层变化,一般不需要改应用程序。

(2)逻辑独立性

用户的应用程序与数据库的逻辑结构相互独立。

也就是说:

  • 表结构做了某些调整
  • 字段组织方式有变化
  • 逻辑模式发生一定修改

只要通过相应映像机制保持外部视图不变,应用程序可以不必修改。

数据独立性由数据库系统的两级映像功能来保证。


4. 数据由 DBMS 统一管理和控制

数据库不是谁想怎么改就怎么改,而是由 DBMS 统一控制。
主要体现在四方面:

  1. 数据的安全性保护

    • 防止未授权访问
    • 控制谁能看、谁能改
  2. 数据的完整性检查

    • 保证数据正确、有效、相容
    • 例如学号不能为空、成绩必须在 0 到 100 之间
  3. 并发控制

    • 多个用户同时操作数据库时,保证结果正确
    • 防止相互干扰
  4. 数据库恢复

    • 出现故障后,能够将数据库恢复到正确状态

2.9 本节总结:为什么需要数据库系统

数据库系统之所以产生,是因为传统文件管理已经无法满足现代应用的需求。
数据库系统通过统一管理数据,解决了以下关键问题:

  • 数据冗余大
  • 数据共享差
  • 维护困难
  • 程序依赖数据
  • 多用户环境下容易混乱
  • 出错后难以恢复

因此可以概括为:

数据库是长期存储、统一组织、可共享的大量数据集合;DBMS 是对数据库进行定义、操纵、控制与维护的软件;数据库系统则是数据库及其相关软件、应用与人员组成的整体。


三、数据模型

3.1 什么是数据模型

数据模型是对现实世界数据特征的抽象,是现实世界的模拟。

它是数据库系统的核心和基础

为什么这样说?

因为数据库要处理现实世界中的事物,比如:

  • 学生
  • 课程
  • 教师
  • 订单
  • 商品
  • 用户
  • 仓库

而计算机不能直接理解“现实世界”,
所以必须先把现实中的对象和联系抽象成一种形式,才能放进数据库中管理。
这种抽象形式就是数据模型


3.2 数据模型应满足的三方面要求

一个好的数据模型,应满足以下要求:

  1. 能比较真实地模拟现实世界
  2. 容易为人所理解
  3. 便于在计算机上实现

这三个要求本质上是在平衡三件事:

  • 现实准确性
  • 人的可理解性
  • 机器可实现性

3.3 数据建模:两步抽象

现实世界的数据建模通常经历两步抽象:

第一步:现实世界 → 概念模型

这一层关注的是:

  • 有哪些对象?
  • 每个对象有哪些属性?
  • 对象之间有什么联系?

这一阶段通常由数据库设计人员完成。

第二步:概念模型 → 某种 DBMS 支持的数据模型

这一层要把概念模型进一步转换为:

  • 层次模型
  • 网状模型
  • 关系模型

在实际教学与应用中,最重要的是关系模型

补充理解:逻辑模型与物理模型

从课件示意图可以进一步看出,数据库设计还可以细分为:

  • 现实世界 → 概念模型
  • 概念模型 → 逻辑模型
  • 逻辑模型 → 物理模型

其中:

  • 概念模型:面向用户和设计者,强调“业务语义”
  • 逻辑模型:面向 DBMS 支持的数据组织方式
  • 物理模型:面向数据库内部存储实现

例如:

  • 学生选课业务先画成 E-R 图(概念模型)
  • 再变成 student、course、sc 等表(逻辑模型)
  • 最后落实为数据库文件、索引、页、记录组织等(物理模型)

3.4 概念模型

概念模型用于对信息世界建模。

它不关心数据具体如何存储,而关心:

  • 现实中有哪些实体
  • 实体具有什么属性
  • 实体之间存在什么联系

1. E-R 模型

概念模型常用的一种表示方法是:

实体—联系模型(Entity-Relationship Model,E-R 模型)

这是数据库设计中最常见、最基础的建模工具。


3.5 E-R 模型中的基本概念

1. 实体(Entity)

客观存在并且可以相互区分的事物,称为实体。

例如:

  • 一个学生
  • 一门课程
  • 一本图书
  • 一个读者

2. 属性(Attribute)

实体所具有的某种特征,称为属性。

例如学生实体的属性可以有:

  • 学号
  • 姓名
  • 性别
  • 出生日期
  • 主修专业

课程实体的属性可以有:

  • 课程号
  • 课程名
  • 学分
  • 先修课

3. 码(Key)

唯一标识实体的属性或属性组,称为码。

例如:

  • 学号可以唯一标识一个学生
  • 课程号可以唯一标识一门课程

因此学号、课程号都可以作为码。

4. 实体型(Entity Type)

用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。

例如“学生(学号,姓名,性别,出生日期,主修专业)”就是一个实体型。

5. 实体集(Entity Set)

同一类型实体的集合,称为实体集。

例如全校所有学生构成“学生实体集”。

6. 联系(Relationship)

实体之间的关联,称为联系。

例如:

  • 学生 选课
  • 读者 借阅 图书
  • 学院 设置 专业
  • 公民 拥有 身份证

3.6 联系的类型

两个实体型之间的联系通常有三种:

1. 一对一联系(1:1)

例如:

  • 公民 与 身份证

一个公民对应一个身份证,
一个身份证也只对应一个公民。

2. 一对多联系(1:n)

例如:

  • 学院 与 专业

一个学院可以设置多个专业,
一个专业通常只隶属于一个学院。

3. 多对多联系(m:n)

例如:

  • 读者 与 图书
  • 学生 与 课程

一个学生可以选多门课,
一门课也可以被多个学生选修。

多对多联系在实际数据库设计中非常常见,通常要通过一个中间关系(连接表)来表示。

例如学生选课关系中,可以增加“成绩”“开课学期”“教学班”等联系属性。


3.7 数据模型的三要素

任何数据模型一般都包含三个核心要素:

  1. 数据结构
  2. 数据操作
  3. 完整性约束

这是极其重要的理论框架。


1. 数据结构

数据结构描述的是:

  • 系统中有哪些对象
  • 这些对象之间有什么联系

它描述的是系统的静态特性

例如在关系模型中:

  • 表与表之间的联系

都属于数据结构的范畴。


2. 数据操作

数据操作描述的是:

  • 可以对这些对象做什么操作
  • 操作遵循什么规则

主要包括:

  • 查询
  • 插入
  • 删除
  • 修改

它描述的是系统的动态特性


3. 完整性约束

完整性约束是一组规则,用来限制数据库中数据的状态及其变化方式,以保证:

  • 数据正确
  • 数据有效
  • 数据相容

例如:

  • 学号不能为空
  • 主键不能重复
  • 选课记录中的学号必须在学生表中存在
  • 成绩必须在合法范围内

3.8 数据的物理模型

物理模型描述的是数据在 DBMS 内部如何组织和存储。

它关注的是:

  • 存储结构
  • 存取方法
  • 索引结构
  • 物理文件实现

这说明:

数据模型不仅有用户看到的逻辑结构,也有系统内部的物理实现。

例如在 SQL Server 或 MySQL 中,数据库最终都会映射为底层的数据文件、索引文件或页结构。

初学阶段你不需要深究所有物理细节,但要明确:

  • 逻辑模型是“给人看”的
  • 物理模型是“给系统实现”的

四、关系模型

关系模型是当前数据库系统中最重要、最广泛使用的数据模型。
MySQL、SQL Server、Oracle、PostgreSQL 等主流数据库都以关系模型为基础。


4.1 关系模型的逻辑结构

在用户观点下,关系模型中数据的逻辑结构就是一张二维表,由行和列组成。

例如“学生登记表”:

  • 每一行表示一个学生
  • 每一列表示一个属性

这也是为什么关系数据库看起来很像“Excel 表格”,但它又比普通表格严格得多。


4.2 关系模型中的基本术语

1. 关系(Relation)

一个关系通常对应一张表。

2. 元组(Tuple)

表中的一行称为一个元组。

3. 属性(Attribute)

表中的一列称为一个属性。

4. 码(Key)

表中某个属性或属性组,如果能唯一确定一个元组,就称为码。

例如学生表中,学号可以唯一确定一个学生元组,因此学号是码。

5. 域(Domain)

域是一组具有相同数据类型的值的集合,也就是属性的取值范围。

例如:

  • 性别属性的域可以是 {男, 女}
  • 成绩属性的域可以是 0~100
  • 出生日期属性的域是合法日期集合

6. 分量

元组中的一个属性值,称为分量。

例如在学生记录中,“刘晨”就是姓名属性对应的一个分量。

7. 关系模式

关系模式是对关系的描述。

例如:

学生(学号,姓名,性别,出生日期,主修专业)

它描述的是表的结构,而不是表中的具体数据。


4.3 关系术语与日常表格术语对照

为了帮助理解,可以把关系术语和普通表格术语进行对照:

关系术语一般表格术语
关系名表名
关系模式表头(表格的描述)
关系一张二维表
元组一条记录 / 一行
属性一列
属性名列名
属性值列值
分量一条记录中的某一个列值
非规范关系表中有表(大表中嵌套小表)

这个表非常重要,因为它建立了“数据库术语”和“直觉理解”之间的桥梁。


4.4 关系必须满足规范化的基本要求

课件特别强调:

关系必须是规范化的。

最基本的规范条件是:

关系中的每一个分量必须是不可分的数据项。

也就是说:

  • 一个单元格里应该是一个“原子值”
  • 不允许“表中还有表”
  • 不允许把一组值塞到同一个字段中

例子

正确做法:

学号姓名专业
20180001李勇信息安全

错误做法:

学号姓名已选课程
20180001李勇数据结构、数据库、操作系统

错误的原因在于“已选课程”不是原子值,而是多个值的混合。
这会给查询、更新、维护带来很大麻烦。


4.5 关系模型的数据操作

关系模型的数据操作具有一个鲜明特征:

操作对象和操作结果都是关系。

也就是说,关系数据库中的操作本质上是集合操作

常见操作包括:

  • 查询
  • 插入
  • 删除
  • 更新

并且关系模型有一个很大的优点:

存取路径对用户透明。

用户只需要说明:

  • 要做什么(What)

而不必详细说明:

  • 怎么做(How)

例如你写 SQL 时,只需要说:

SELECT 姓名
FROM 学生
WHERE 专业 = '计算机科学与技术';

你表达的是“我要哪些数据”,而不是“先从哪个文件开始,按什么路径读几次”。

这正是关系模型抽象层次高的体现。


4.6 关系模型的完整性约束

关系模型中常见的完整性约束有三类:

1. 实体完整性

用于保证实体能够被唯一标识。

通常体现为:

  • 主键不能为空
  • 主键不能重复

2. 参照完整性

用于保证表与表之间的引用关系正确。

例如选课表中的学号,必须在学生表中存在;
选课表中的课程号,必须在课程表中存在。

3. 用户定义的完整性

由具体应用语义决定的约束。

例如:

  • 成绩必须在 0 到 100 之间
  • 学分必须大于 0
  • 性别只能取“男”或“女”

4.7 关系模型的优点与缺点

1. 优点

课件总结得很经典:

(1)建立在严格的数学概念基础上

关系模型以集合论等数学理论为基础,因此理论体系严谨。

(2)概念单一
  • 实体可以用关系表示
  • 实体之间的联系也可以用关系表示
  • 查询结果仍然是关系

也就是说,整个系统的表示方式高度统一。

(3)存取路径对用户透明

这带来很多好处:

  • 数据独立性更高
  • 安全保密性更好
  • 简化程序员工作
  • 简化数据库开发与维护

2. 缺点

关系模型为了提高抽象程度,把底层存取路径隐藏起来了。
这虽然方便了用户,但也带来一个问题:

查询效率有时不如层次模型、网状模型那样直接。

因此关系数据库管理系统必须进行:

  • 查询优化
  • 索引设计
  • 执行计划选择

这也增加了 DBMS 实现的复杂度。


五、数据库系统的三级模式结构

这是数据库理论中的核心内容,也是考试高频重点。


5.1 为什么要引入三级模式结构

数据库面对的是复杂环境:

  • 不同用户看数据的角度不同
  • 应用系统只关心自己需要的数据
  • DBMS 还必须关心底层物理存储

所以数据库系统必须对同一份数据做不同层次的抽象。

于是就有了:

三级模式结构

它是数据库系统内部的体系结构。


5.2 型和值;模式和实例

理解三级模式之前,必须先分清“型/值”和“模式/实例”。

1. 型(Type)

型是对某一类数据的结构和属性的说明。

2. 值(Value)

值是型的一个具体赋值。

例如:

  • “学生(学号,姓名,性别)”是型
  • “(20230001,张三,男)”是值

3. 模式(Schema)

模式是数据库逻辑结构和特征的描述。

特点:

  • 是型的描述,不涉及具体值
  • 反映数据的结构及其联系
  • 相对稳定

例如:

  • 学生表有哪些字段
  • 课程表有哪些字段
  • 选课表与学生表、课程表如何关联

这些都属于模式层面的内容。

4. 实例(Instance)

实例是模式在某一时刻的具体值。

特点:

  • 反映数据库某一时刻的状态
  • 同一模式可以对应很多实例
  • 数据更新后,实例会变化

例如:

  • 2023 年某学校学生数据库中的所有学生记录、课程记录、选课记录,是一个实例
  • 2024 年的数据内容变了,就是另一个实例

5. 模式与实例的关系

可以这样记:

  • 模式看“结构”
  • 实例看“数据内容”
  • 模式相对稳定
  • 实例经常变化

这是一个非常容易考概念辨析的点。


5.3 三级模式:外模式、模式、内模式

数据库系统通常采用三级模式结构:

  • 外模式
  • 模式
  • 内模式

1. 模式(Schema)

模式也叫逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。

它是:

  • 所有用户的公共数据视图
  • 数据库逻辑结构的总体描述
  • 数据库的中心与关键

可以把它理解成:

整个数据库的“总蓝图”


2. 外模式(External Schema)

外模式是局部数据的逻辑结构和特征的描述,
是与某一应用有关的数据的逻辑表示。

它面向的是:

  • 某一类用户
  • 某一个应用程序
  • 某一种业务视图

例如:

  • 教务系统关心学生成绩
  • 图书馆系统关心借阅记录
  • 财务系统关心收费信息

不同应用可以基于同一个总模式定义不同外模式。

所以可以理解为:

外模式 = 用户视图 / 子模式 / 局部视图


3. 内模式(Internal Schema)

内模式是数据物理结构和存储方式的描述,
是数据在数据库内部的表示方式。

它关注的是:

  • 数据如何存储
  • 使用什么索引
  • 采用什么存储结构
  • 如何获得更好的时间效率和空间效率

也就是说:

内模式主要面向系统实现与性能优化。


5.4 三级模式结构的直观理解

可以把三级模式理解成三层“看法”:

第一层:外模式 —— 用户怎么看

  • 不同应用只看自己需要的部分
  • 同一数据库可以有多个外模式

第二层:模式 —— 全局怎么看

  • 描述整个数据库的逻辑结构
  • 是数据库的统一中心

第三层:内模式 —— 机器怎么存

  • 描述数据的物理组织与存储方式
  • 面向 DBMS 内部实现

5.5 两级映像与数据独立性

三级模式之间不能是割裂的,DBMS 内部需要建立联系和转换机制。
这就是两级映像

1. 外模式 / 模式映像

它建立了:

  • 外模式
  • 模式

之间的对应关系。

它的作用是:

保证数据的逻辑独立性

含义是:

当模式改变时,只要数据库管理员修改外模式 / 模式映像,使外模式保持不变,那么依赖外模式编写的应用程序就不必修改。

这就实现了:

  • 数据逻辑结构变化
  • 应用程序基本不受影响

2. 模式 / 内模式映像

它建立了:

  • 模式
  • 内模式

之间的对应关系。

它的作用是:

保证数据的物理独立性

含义是:

当数据库的存储结构改变时,只要数据库管理员修改模式 / 内模式映像,使模式保持不变,那么应用程序就不受影响。

这就实现了:

  • 底层物理存储变化
  • 应用程序基本不受影响

5.6 逻辑独立性与物理独立性的本质

1. 逻辑独立性

强调:

  • 数据的逻辑结构变了
  • 应用程序尽量不变

2. 物理独立性

强调:

  • 数据的物理存储变了
  • 应用程序不受影响

通常来说:

  • 物理独立性更容易实现
  • 逻辑独立性更高级,也更难实现

因为逻辑结构一变,往往会影响用户视图和业务程序。


5.7 三级模式结构的设计要点

课件还从设计角度做了总结,这部分很有理解价值。

1. 模式是数据库的中心与关键

因为它描述全局逻辑结构,是整个数据库设计的核心。

设计数据库时,一般应首先确定:

数据库的逻辑模式

2. 外模式面向具体应用

外模式依赖应用需求,因此设计时要考虑:

  • 当前应用是否够用
  • 将来是否便于扩展

如果应用需求变化很大,外模式也可能需要修改。

3. 内模式面向效率

内模式要在全局逻辑结构的基础上,按照一定物理存储策略组织数据,以获得较好的:

  • 时间效率
  • 空间效率

5.8 两级映像带来的实际价值

数据库的两级映像机制带来了很大的工程价值:

  1. 保证外模式稳定
  2. 从底层保证应用程序稳定
  3. 数据定义和描述可以从应用程序中分离
  4. 数据存取由 DBMS 管理
  5. 简化应用程序编写
  6. 减少维护和修改成本

这也是为什么数据库技术能支撑大型信息系统长期演化。


六、数据库系统的组成

一个完整的数据库系统,不只是“安装了 MySQL”这么简单。


6.1 数据库系统的基本组成

数据库系统主要由以下几部分组成:

  1. 数据库
  2. 数据库管理系统(及其开发工具)
  3. 应用系统
  4. 数据库管理员

6.2 数据库系统运行的支撑条件

数据库系统的正常运行还需要三类支撑:

1. 硬件平台

包括:

  • 服务器
  • 存储设备
  • 网络设备
  • 输入输出设备等

2. 软件平台

包括:

  • 操作系统
  • DBMS
  • 开发工具
  • 中间件
  • 应用软件等

3. 人员

数据库系统是“人机结合”的系统,离不开不同角色协作。


6.3 数据库系统中的人员角色

1. 数据库管理员(DBA)

DBA 是数据库系统中非常关键的角色,通常负责:

  • 数据库安装与配置
  • 安全控制
  • 权限管理
  • 备份与恢复
  • 性能监控与优化
  • 存储管理
  • 故障处理
  • 运行维护

2. 系统分析员和数据库设计人员

他们主要负责:

  • 分析业务需求
  • 识别实体、属性、联系
  • 设计概念模型
  • 设计逻辑结构
  • 规划数据库整体方案

3. 应用程序员

他们主要负责:

  • 基于外模式和业务需求编写应用程序
  • 调用 DBMS 提供的接口
  • 实现具体业务功能

4. 最终用户

最终用户一般不直接接触数据库内部结构,
而是通过客户端或应用系统来使用数据。


6.4 各类人员的数据视图

从课件图示可以看出,不同角色站在不同抽象层级看待数据库:

  • 最终用户

    • 通常通过客户端、应用系统访问数据
    • 更关心“功能是否可用”
  • 应用程序员

    • 更关注外模式
    • 关心程序如何通过视图或接口访问数据
  • 数据库管理员 / 系统分析员 / 数据库设计人员

    • 需要接触模式、内模式乃至数据库本体
    • 关心全局结构、存储方式、安全、优化与运维

这说明数据库系统不是单一视角的系统,而是一个多角色、多层次协同的系统。


七、本章核心概念总表

下面把本章最重要的概念集中整理一遍,便于你复习。

7.1 四个基本概念

概念含义
数据描述事物的符号记录
数据库(DB)长期存储在计算机中的、有组织、可共享的大量数据集合
数据库管理系统(DBMS)对数据库进行定义、操纵、控制和维护的软件
数据库系统(DBS)由数据库、DBMS、应用系统、管理员等组成的整体

7.2 数据管理技术的发展阶段

阶段特点
人工管理阶段无专门软件管理,效率低,共享差
文件系统阶段以文件存储数据,但冗余大、独立性差
数据库系统阶段结构化、共享性强、冗余低、独立性强、统一控制

7.3 数据模型相关概念

概念含义
数据模型对现实世界数据特征的抽象
概念模型面向信息世界建模,强调业务语义
逻辑模型面向 DBMS 支持的数据组织方式
物理模型面向数据库内部存储实现

7.4 E-R 模型基本元素

概念含义
实体可区分的客观对象
属性实体的特征
唯一标识实体的属性或属性组
实体型同类实体的抽象定义
实体集同类型实体的集合
联系实体之间的关联

7.5 关系模型基本术语

关系术语解释
关系一张表
元组一行
属性一列
能唯一确定元组的属性或属性组
属性的取值范围
分量元组中的一个属性值
关系模式关系结构的描述

7.6 三级模式与两级映像

名称含义作用
外模式局部逻辑结构,面向应用面向用户视图
模式全局逻辑结构数据库中心与关键
内模式物理结构和存储方式面向系统实现
外模式/模式映像外模式与模式的联系保证逻辑独立性
模式/内模式映像模式与内模式的联系保证物理独立性

八、易混概念辨析

8.1 数据库 vs 数据库管理系统 vs 数据库系统

数据库

是“数据本身”。

数据库管理系统

是“管理数据库的软件”。

数据库系统

是“数据库 + 软件 + 应用 + 人员”的整体。

记忆方法:

  • DB:存数据
  • DBMS:管数据
  • DBS:完整系统

8.2 模式 vs 实例

模式

描述结构,相对稳定。

实例

描述某一时刻的数据内容,经常变化。

记忆方法:

  • 模式像“表结构”
  • 实例像“表里的具体记录”

8.3 外模式 vs 模式 vs 内模式

外模式

某个应用看到的数据视图。

模式

整个数据库的统一逻辑结构。

内模式

数据库底层怎么存。

记忆方法:

  • 外:给用户看
  • 模:总体设计图
  • 内:给机器存

8.4 逻辑独立性 vs 物理独立性

逻辑独立性

逻辑结构变化,应用程序尽量不变。

物理独立性

物理存储变化,应用程序不受影响。

记忆方法:

  • 逻辑独立性:防“表结构变化”影响程序
  • 物理独立性:防“底层存储变化”影响程序

九、本章知识主线

如果把本章内容压缩成一条主线,可以这样理解:

  1. 现实世界中有大量需要管理的数据
  2. 传统人工管理和文件系统管理存在很多问题
  3. 因此产生了数据库系统
  4. 数据库系统通过 DBMS 对数据进行统一管理
  5. 为了描述和组织数据,需要数据模型
  6. 现实世界先抽象成概念模型,再转换成逻辑模型和物理模型
  7. 当前最重要的数据模型是关系模型
  8. 为了实现数据独立性,数据库系统采用三级模式和两级映像
  9. 最终,数据库系统由数据库、软件、应用、硬件和人员共同构成

这一条主线如果你真正理解了,第 1 章就算入门了。


十、学习建议

10.1 这一章最该死记硬背的内容

下面这些内容一定要背熟,因为它们既是基础,也是后续章节的前提:

  1. 数据、数据库、DBMS、DBS 的定义与区别
  2. 数据库系统阶段的四个主要特点
  3. 数据模型的三要素
  4. E-R 模型的六个基本概念
  5. 关系模型中的基本术语
  6. 三级模式结构
  7. 两级映像与两种数据独立性
  8. 数据库系统的组成

10.2 这一章最该真正理解的内容

只背定义还不够,你至少要真正想通下面几件事:

  1. 为什么文件系统不够,必须要数据库系统?
  2. 为什么要做“抽象”?为什么现实世界不能直接塞进数据库?
  3. 为什么需要“外模式—模式—内模式”三层?
  4. 为什么应用程序不应该依赖底层存储细节?
  5. 为什么关系模型要求每个分量都必须是原子值?

10.3 学习本章的正确方式

建议按以下顺序掌握:

第一步:先把概念区分开

尤其是:

  • DB / DBMS / DBS
  • 模式 / 实例
  • 外模式 / 模式 / 内模式
  • 逻辑独立性 / 物理独立性

第二步:用“学生—课程—选课”例子反复理解

这几乎是数据库入门最经典的案例。
你要能从这个例子里同时看懂:

  • 实体
  • 属性
  • 联系
  • m:n 联系
  • 关系表
  • 关系模式

第三步:把第 1 章当作后续章节的地图

后面学习:

  • 关系模型
  • SQL
  • 安全性
  • 完整性
  • 设计
  • 恢复
  • 并发控制

都会反复用到本章的概念。

所以这章不是“泛泛而谈”,而是整门课的地基。


十一、本章总结

本章是数据库课程的入门章,主要回答了三个根本问题:

1. 数据库系统是什么

它不是简单的数据文件集合,而是由数据库、DBMS、应用系统和人员共同组成的完整系统。

2. 数据是如何被抽象和组织的

现实世界中的对象需要先通过数据模型抽象,
再以概念模型、逻辑模型、物理模型的方式逐步落地。
其中关系模型是当前最重要的数据模型。

3. 数据库系统为什么具有较高的数据独立性

因为数据库系统采用了三级模式结构和两级映像机制,
从而把用户视图、全局逻辑结构和物理存储分离开来,
减少了应用程序对数据结构与存储细节的直接依赖。

最终你应当形成这样一个整体认识:

数据库技术的本质,不只是“把数据存起来”,而是用一种统一、结构化、可共享、可控制、可扩展的方式来组织和管理数据,从而支撑复杂的信息系统长期稳定运行。