本博文涉及《数据库系统概论》第 6 版的主要理论知识,包含了前 7 章的理论知识。以题单的形式记录核心知识以应对期末考试。如有错误,欢迎纠正。

# 绪论

# 数据库系统概述

  1. 描述事物的 符号记录 称为数据。

  2. 数据的 含义 称为数据的语义,数据与其语义是不可分的。

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

  4. 数据库中的数据具有较小的 数据冗余、较高的 数据独立性可扩展性,并可为各种用户 共享

  5. 数据库管理系统与操作系统都是软件,但数据库管理系统是操作系统和用户的接口,操作系统是软件和硬件的接口。

  6. 数据库管理系统的英文缩写是 DBMS。

  7. 数据库管理系统是位于 用户操作系统 之间的数据管理软件。它和操作系统一样是计算机的基础软件。

  8. 数据库管理系统的主要功能有

    • 数据定义功能。
    • 数据组织、存储和管理功能。
    • 数据操纵功能。
    • 数据库的事务管理和运行管理功能。
    • 数据库的建立和维护功能。
  9. 数据定义语言的英文缩写是 DML,数据操纵语言的英文缩写是 DDL。

    定义是 DDL(Data Definition Language)。操纵是 DML(Data Manipulation Language)。

  10. 数据库系统的英文缩写是 DBS。

  11. 数据库系统是指引入 数据库 的计算机系统,一般是指由 数据库数据库管理系统应用系统数据库管理员组成的存储、管理、处理和维护数据的系统。

  12. 数据管理 是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。

  13. 数据库管理技术经历了 人工管理文件系统数据库系统 三个阶段。

  14. 人工管理阶段的数据有哪些特点?

    • 数据不保存。
    • 应用程序管理数据。
    • 数据不共享。
    • 数据不具有独立性。
  15. 文件系统阶段的数据有哪些特点?

    • 数据可以长期保存。
    • 数据由专门的软件进行管理。
    • 数据共享性弱,冗余度高。
    • 数据独立性弱。
  16. 数据库系统阶段的数据有哪些特点?

    • 整体数据结构化。
    • 数据的共享性强、冗余度低且易于扩充。
    • 数据的独立性强。
    • 数据由数据库管理系统统一管理和控制。
  17. 数据库管理系统除了提供第八题所述的主要功能外,还需要提供哪些功能?

    • 数据的安全性保护。
    • 数据的完整性检查。
    • 数据的并发性控制。
    • 数据库的恢复。

# 数据模型

  1. 数据模型也是一种模型,它是对现实世界 数据特征 的抽象。

  2. 什么是数据库系统的核心和基础?

    • 概念模型。
    • E-R 图。
    • 数据模型。
    • 数据结构。
  3. 把现实世界中的具体事物抽象、组织为某一数据库管理系统所支持的数据模型,这个过程称为 数据建模

  4. 数据建模主要有两步,分别为 建立概念模型将概念模型转换为数据模型

  5. 概念模型是按 用户 的观点来对数据建模,主要用于 数据库设计

  6. 数据模型是按 计算机系统 的观点对数据建模,是数据库管理系统支持的,用于 数据库管理系统 的实现。

  7. 客观存在并可相互区别的事物称为 实体

  8. 实体所具有的某一特性称为 属性

  9. 唯一标识实体的属性集称为

  10. 同一类型实体的集合称为 实体集

  11. 实体内部的联系通常是指组成实体的 各属性 之间的联系,实体之间的联系通常是指 不同实体集 之间的联系。

  12. 实体之间的联系有一对一、一对多、多对多、多对一等多种类型。

    实体之间的联系没有多对一的类型。

  13. 通常用 E-R 图 来描述现实世界的概念模型。

    这种方式构建了一个 E-R 模型。

  14. 实体用 矩形 来表示。属性用 椭圆 来表示。联系用 菱形 来表示。

  15. 所有表都是实体。

    并非所有的表都是实体,表是实体集的呈现方式与存储方式,表既可以是实体也可以是联系。

  16. 数据模型的三要素是 数据结构数据操纵完整性约束

    数据模型的三要素实际上就是数据模型的组成部分。

  17. 数据结构描述数据库的 组成对象 以及 对象之间 之间的联系。

  18. 数据操纵是指对数据库中各种对象(型)和实例(值)允许执行的 操作 的集合。

    数据操纵包括数据操作以及有关的操作规则。

  19. 完整性规则是给定的数据模型中的数据及其联系所具有的 制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。

  20. 关系模型由一组关系组成,每个关系的数据结构是一张 规范化的二维表

  21. 关系表中的一行即为一个 元组

    元组又称为记录。

  22. 关系表中的一列即为一个 属性

    每列的名称即为属性名。

  23. 是关系表中的属性集,能唯一标识一条记录。

  24. 表示某一属性的取值范围,通常是一组具有相同数据类型的值的集合。

  25. 分量 是元组中一个属性值。

    特指在元组内。

  26. 关系模式要求关系必须是 规范化 的。

    规范条件中最基本的一条就是:关系的每个分量必须是一个不可分的数据项,即行不可分,不允许表中还有表。这就是 1NF。

  27. 数据操纵是 集合 操作,操作对象和操作结果都是 关系

  28. 关系模型有哪些优点?

    • 关系模型建立在严格的数学概念基础上。
    • 关系模型的概念单一。
    • 关系模型的存取路径对用户隐蔽。
    • 降低了开发关系数据库管理系统的难度。

    关系模型的缺点是:查询效率较低;增加了开发关系数据库管理系统的难度。

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

  1. 型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。

  2. 模式是数据库中全体数据的 逻辑结构特征 的描述。

  3. 模式的一个具体值称为模式的一个 实例

    同一个模式可以有很多实例。

  4. 模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

  5. 模式是所有用户的 公共数据 视图。

  6. 三级模式结构是指数据库系统是由 模式外模式内模式三级构成。

    一个数据库对应一个模式。

  7. 外模式是数据库用户能够看见和使用的 局部 数据的 逻辑结构特征 的描述。

    外模式是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

  8. 一个数据库只能有一个外模式。

    一个数据库可以有多个外模式。

  9. 同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

  10. 内模式是对数据 物理结构存储方式 的描述,是数据在数据库内部的组织方式。

  11. 一个数据库只能有一个内模式。

  12. 两级映像实现了模式、内模式和外模式这三个抽象层次的联系和转换。两级映像包括 外模式 // 模式映像模式 // 内模式映像

  13. 两级映像的存在,保证了数据库系统中的数据能够具有较强的逻辑独立性和物理独立性。

  14. 当模式改变时,数据库管理员对外模式 // 模式映像进行改变,可以使得 外模式 保持不变,因而应用程序不必修改,保证了数据与程序的逻辑独立性,简称 数据的逻辑独立性

  15. 一个数据库不只有一个外模式 // 模式映像。

  16. 当数据库的存储结构改变时,数据库管理员对模式 // 内模式映像进行改变,可以使 模式 保持不变,因而应用程序也不必改变,保证了数据与程序的物理独立性,简称 数据的物理独立性

  17. 数据库系统的组成包括硬件平台、软件平台、人员,其中人员包括

    • 数据库管理员。
    • 系统分析员。
    • 数据库设计员。
    • 应用程序员。
    • 最终用户。

# 关系模型

# 关系模型的数据结构和形式化定义

  1. 笛卡尔积不允许域相同。

  2. 笛卡尔积是域上的一种集合运算。

  3. 一个域允许的不同取值个数称为这个域的 基数

  4. 笛卡尔积的基数由组成它的所有域的基数累乘而来。

  5. 笛卡尔积没有实际语义,只有它的某个真子集才有实际含义。

  6. 某组域上的笛卡尔积的子集称为这组域上的 关系

  7. 笛卡尔积的域的个数称为在这组域上关系的目(或度)。

    目常被认为是属性列的个数。

  8. 关系有哪三种类型?

    • 基本关系(通常又称为基本表)。
    • 查询结果。
    • 视图。
    • 触发器。
  9. 基本关系有哪 6 条性质?

    • 列是同质的,每个列中的分量来自同一个域。
    • 不同的列可出自同一个域。
    • 列的顺序无所谓。
    • 行的顺序无所谓。
    • 每个分量必须是不可分的数据项。
    • 任意两个元组的码不能取相同的值。
  10. 在关系模型中,关系是元组的集合,关系是值;关系模型是对关系的描述,关系模式是型。

  11. 关系模式可以形式化地表示为:R (U,D,DOM,F)。其中,R 是关系名,U 是组成该关系的 属性的属性名 的集合,D 是 U 中属性所来自的 ,DOM 为属性向域的 映像集合,F 是属性间 数据依赖关系 的集合。

    关系模式可以简写为:R (U) 或 R (A_1,A_2,...,A_n),A_i 是属性名。

  12. 若关系模式中某一个属性或一组属性的值能唯一地标识一个元组,而它的真子集不能唯一地标识一个元组,则称该属性或属性组为 候选码

    若一个关系有多个候选码,则选定其中一个为主码。
    候选码是能唯一标识一条记录的最小属性集。

  13. 候选码的诸属性称为 主属性。不包含在任何候选码中的属性称为 非主属性

  14. 关系模式的所有属性是这个关系模式的候选码,称为 全码

  15. 关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。

  16. 关系数据库模式是关系数据库中 所有关系模式 的集合,是对关系数据库的描述。关系数据库是这些关系模式在某一时刻对应的 关系 的集合。

# 关系操作

  1. 哪些是 5 个基本关系操作?

    • 笛卡尔积。
    • 交。
    • 并。
    • 投影。
    • 连接。
    • F. 选择。
    • G. 差。
    • H. 补。
    • I. 除。
  2. 一个关系数据语言能够表示关系代数可以表示的查询,则称其具有完备的表达能力,简称 关系完备性

    关系数据语言是用于操纵关系数据的语言。

  3. 关系数据语言类型有哪些?

    • 关系代数。
    • SQL 语言。
    • C 语言。
    • 关系演算。

# 关系的完整性

  1. 关系模型中有三类完整性约束:实体完整性参照完整性用户定义的完整性

  2. 关系的两个不变性是指关系模型必须满足实体完整性和用户定义的完整性。

    关系模式必须满足的两个完整性是实体完整性和参照完整性。

  3. 实体完整性约束的关键是 “主码非空且唯一”。

  4. 参照完整性约束的关键是 “外码为空或与被参照表主码相等”。

  5. 参照完整性约束中,外码在参照表中,外码与被参照表中的主码值相等。

  6. 参照完整性约束中,参照表和被参照表可以是同一张表。

# 数据库安全与触发器

# 存取控制

存取控制机制确保了只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据。存取控制机制主要包括定义用户权限和合法权限检查两部分。

  1. 存取控制方法分为 自主存取控制方法强制存取控制方法

  2. 自主存取控制方法中,同一用户对于不同的数据库对象有不同的存取权限。

  3. 自主存取控制方法中,不同用户对于同一数据库对象的权限相同。

    不同用户对同一数据库对象的存取权限也不同。

  4. 自主存取控制方法中,用户可以将拥有的存取权限转授给其他用户。

  5. 强制存取控制方法中,每一个数据库对象都被标以一定的密级。

  6. 强制存取控制方法中,每一个用户会被授予某一个级别的许可证。

  7. 强制存取控制方法中,对于任意一个数据库对象,任何用户都能存取。

    在强制存取控制方法中,只有具有合法许可证的用户才能存取当前的数据库对象。

# 触发器

触发器又叫做事件 - 条件 - 动作规则。当特定的系统事件(如对一个表的更新操作,事务的结束等)发生时,对规则的条件进行检查,如果条件成立则执行规则中的动作,否则不执行该动作。

  1. 触发器是用户定义在 关系表 上的一类由 事件 驱动的 特殊过程

    触发器类似约束,但是比约束更加灵活,可以实施更为复杂的检查和违约操作。

  2. 如下关于创建触发器的 SQL 语句,请回答相关问题

    CREATE TRIGGER SC_T
    AFTER UPDATE ON SC
    REFERENCING
        OLD AS OldTuple
        NEW AS NewTuple
    FOR EACH ROW
    WHEN(NewTuple.Grade >= 1.1 * OldTuple.Grade)
    BEGIN
        INSERT INTO SC_U(Sno, Cno, OldGrade, NewGrade)
        VALUES(OldTuple.Sno, OldTuple.Cno, OldTuple.Grade, 			NewTuple.Grade)
    END

    CREATE TRIGGER 后面要加触发器名。()

  3. 在第 96 题的背景下, AFTER UPDATE ON SC 的含义是在 SC 表更新后激活触发器。于是对应有 BEFORE UPDATE ON SC ,表示触发器激活的时间是在执行除法事件前。()

    格式为: AFTER | BEFORE 触发事件 ON 表名。触发事件可以是 INSERTDELETEUPDATE ,也可以是 INSERT OR DELETEDELETE AND INSERT

  4. 在第 96 题的背景下,REFERENCING 指出引用的变量,如果触发事件是 UPDATE 操作,并且有 FOR EACH ROW 子句,则可以引用的变量有 OLDNEW ,分别表示修改之前的元组和修改之后的元组。若没有 FOR EACH ROW 子句,则可以引用的变量有 OLD TABLENEW TABLE ,分别表示表中原来的内容和表中变化后的部分。()

  5. 在第 96 题的背景下, BEGINEND 之间的内容是动作体。

  6. 在 96 题的背景下, FOR EACH ROW 定义了触发器的类型,指明动作体执行的频率。该语句的含义是对于 UPDATE 执行了多少行,则触发器执行多少次。()

FOR EACH STATEMENT 是语句级触发器。 FOR EACH ROW 是行级触发器。语句级触发器是执行了触发事件的语句后执行一次动作体。行级触发器则是触发事件执行影响了多少行,则执行多少次动作体。

  1. 在第 96 题的背景下, WHEN () 的内容是触发条件,当触发条件为真时,动作体才执行,否则动作体不执行。如果省略 WHEN 触发条件,则在触发事件引发的触发器激活后就立即执行动作体。

  2. 删除触发器的 SQL 语句格式是: DROP TRIGGER 触发器名 ON 表名

未完待续...