视频加载失败

课程

9959 字
约 29 分钟

数据库原理及应用 - 期末复习指南

数据库系统原理及应用notes/senior-materials·更新于 2026-09-15

第一章 绪论

  • 基本概念:
    • 数据 (Data): 描述事物的符号记录,可以是数值、文字、图像等。
    • 数据库 (Database, DB): 长期存储在计算机内,有组织、可共享的数据集合。
    • 数据库管理系统 (Database Management System, DBMS): 用于管理数据库的软件系统,负责数据的定义、存取、维护和管理。
    • 数据库系统 (Database System, DBS): 由数据库、DBMS、应用系统、数据库管理员和用户组成。
  • 三种主要数据库模型:
    • 层次模型: 用树状结构表示实体之间的关系。
    • 网状模型: 用图状结构表示实体之间的关系。
    • 关系模型: 用二维表格(关系)表示实体及实体之间的关系,是目前最主流的模型。
  • 数据库系统三级模式和二级映像:
    • 三级模式:
      • 概念模式 (Conceptual Schema): 对全局数据结构的描述,独立于具体的硬件和软件。
      • 外模式 (External Schema): 针对特定用户的局部数据视图,也称子模式。
      • 内模式 (Internal Schema): 描述数据在物理存储介质上的表示方式。
    • 二级映像:
      • 外模式/概念模式映像: 保证数据的逻辑独立性,即当概念模式发生改变时,外模式不会受到影响。
      • 概念模式/内模式映像: 保证数据的物理独立性,即当存储结构发生改变时,概念模式不会受到影响。

第二章 关系数据库

  • 关系数据库系统的基本特征:
    • 以关系模型为基础,用表格表示数据。
    • 数据之间存在联系,通过键来关联不同表。
    • 具有数据独立性,逻辑独立性和物理独立性。
    • 提供数据查询、更新、管理功能。
  • 关系的完整性约束:
    • 实体完整性: 主码不能为空。
    • 参照完整性: 外码值必须是参照表中已存在的主码值或为空。
    • 用户自定义完整性: 由用户定义的约束,如数据类型、取值范围等。
  • 关系代数运算:
    • 基本运算: 选择 (σ)、投影 (π)、并 (∪)、差 (-)、笛卡尔积 (×)。
    • 组合运算: 交 (∩)、连接 (⋈)、除 (÷)。

第三章 SQL

  • SQL 的主要功能:
    • 数据定义 (DDL): 创建、修改、删除数据库对象,如表、索引、视图等。
      • CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, CREATE VIEW
    • 数据操纵 (DML): 查询、插入、修改、删除数据。
      • SELECT, INSERT, UPDATE, DELETE
    • 数据控制 (DCL): 控制用户的访问权限。
      • GRANT, REVOKE
  • 基本表的定义、删除与修改:
    • CREATE TABLE table_name (column_name datatype [constraints], ...);
    • ALTER TABLE table_name ADD/MODIFY/DROP COLUMN column_name;
    • DROP TABLE table_name;
  • 索引的概念和特点:
    • 概念: 用于加速数据检索的特殊数据结构。
    • 特点:
      • 提高查询效率,但会降低数据更新速度。
      • 需要额外的存储空间。
    • CREATE INDEX index_name ON table_name (column_name);
  • 插入、删除、修改数据:
    • INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
    • DELETE FROM table_name WHERE condition;
    • UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
  • 视图:
    • 概念: 基于表或其他视图的虚拟表,不实际存储数据,只存储视图定义。
    • CREATE VIEW view_name AS SELECT ... FROM ... WHERE ...;

第四章 数据库的安全性

  • 什么是数据库的安全性:
    • 保护数据库免受未经授权的访问、修改、破坏,以及确保数据的保密性、完整性和可用性。
  • 实现数据库系统安全性的技术和方法:
    • 用户身份验证: 用户名/密码、指纹识别等。
    • 访问控制: 定义用户的权限,如读、写、执行等。
    • 数据加密: 将数据转换为密文进行存储和传输。
    • 审计: 记录用户操作,以便追踪和分析安全事件。

第五章 数据库完整性

  • 什么是数据库的完整性:
    • 确保数据库中数据的正确性、一致性和有效性。
  • 关系数据库管理系统完整性实现的机制:
    • 约束机制: 包括实体完整性约束、参照完整性约束、用户自定义完整性约束。
    • 触发器: 定义特定事件(如插入、删除、更新)发生时自动执行的操作。
    • 断言: 定义必须满足的条件。

第六章 关系数据理论

  • 函数依赖的基本概念:
    • 函数依赖 (Functional Dependency, FD): 关系模式中属性之间的制约关系,如 X → Y,表示在关系中,X 的值确定 Y 的值。
  • 完全函数依赖、部分函数依赖、传递函数依赖:
    • 完全函数依赖: 如果 X 能决定 Y,并且 X 的任何真子集都不能决定 Y。
    • 部分函数依赖: 如果 X 能决定 Y,且 X 的某个真子集也能决定 Y。
    • 传递函数依赖: 如果 X 能决定 Y,Y 能决定 Z,且 Y 不能决定 X,则 X 传递决定 Z。
  • 候选码、主码:
    • 候选码 (Candidate Key): 能唯一标识关系中元组的最小属性集,一个关系可以有多个候选码。
    • 主码 (Primary Key): 从候选码中选出一个作为关系的主码。
  • 1NF、2NF、3NF、BCNF、4NF 的含义:
    • 1NF (First Normal Form): 关系中的每个属性都不可再分。
    • 2NF (Second Normal Form): 满足 1NF,且非主属性完全依赖于主码。
    • 3NF (Third Normal Form): 满足 2NF,且非主属性不传递依赖于主码。
    • BCNF (Boyce-Codd Normal Form): 满足 3NF,且每个决定因素都包含主码。
    • 4NF (Fourth Normal Form): 满足 BCNF,且不包含多值依赖。

第七章 数据库设计

  • 数据库的设计过程 (重中之重):
    1. 需求分析: 理解用户的需求,明确数据范围、业务规则。
    2. 概念结构设计: 将需求转换为概念模型,通常使用 E-R 图。
    3. 逻辑结构设计: 将概念模型转换为特定的逻辑模型(如关系模型)。
    4. 物理结构设计: 确定数据的物理存储结构,如索引、存储方式等。
    5. 数据库实施: 根据设计创建数据库,导入数据。
    6. 数据库运行与维护: 监控数据库运行状态,定期维护。

第八章 数据库编程

  • 存储过程的概念和特点:
    • 概念: 存储在数据库服务器中的预编译的 SQL 代码块,可以包含控制语句、循环、变量等。
    • 特点:
      • 提高数据库访问性能。
      • 减少网络流量。
      • 可以模块化地组织业务逻辑。
      • 增强数据库安全性。

第十章 关系查询处理和查询优化

  • 代数优化和物理优化的概念:
    • 代数优化: 对关系代数表达式进行等价变换,减少中间结果的数量。
    • 物理优化: 选择合适的物理存取路径,如使用索引、选择连接方式等。

第十一章 数据库恢复技术

  • 事务的概念和性质:
    • 事务 (Transaction): 数据库操作的基本逻辑单元,要么全部执行,要么全部不执行。
    • ACID 特性:
      • 原子性 (Atomicity): 事务是不可分割的,要么全部执行成功,要么全部失败回滚。
      • 一致性 (Consistency): 事务执行前后,数据库从一个一致性状态转换到另一个一致性状态。
      • 隔离性 (Isolation): 并发事务之间相互隔离,不受影响。
      • 持久性 (Durability): 已提交的事务对数据库的修改是永久性的。

数据库原理及应用 - 期末复习指南

1. 考试概况

成绩构成

  • 期末考试:60%
  • 平时分:40%(包含期中考试 20%,实验 10%,作业 10%)
  • 注意事项:所有的课程材料截止时间为 1月7日24点。

试卷结构

  • 考试方式:闭卷
  • 考试时间:120分钟
  • 卷面总分:100分
  • 题型分布
  • 单项选择题:20分(2分 × 10个)
  • 填空题:20分(2分 × 10个)
  • 简答题:30分(4-6分 × 4个)
  • 综合设计题:30分(15分 × 2个)

2. 重点复习内容(简答题与综合题核心)

I. 数据库系统的特点

数据结构化:包括内部结构化和整体结构化,数据之间具有联系,数据用数据模型描述,无需应用程序定义。

数据独立性高:包括物理独立性和逻辑独立性,当数据的物理或逻辑结构改变时,应用程序不用改变。

数据的共享性高,冗余度低且易扩充:数据面向整个系统,可以被多个用户,多个应用共享使用。

数据由DBMS统一管理和控制:提供安全性,完整性,并发和恢复功能。

II.

数据库管理系统 (DBMS) 的功能

数据定义功能:用于定义数据库的结构和组织方式,包括创建、修改和删除数据库、表、视图、索引等对象的操作,它使用户能够在数据库中创建适合其需求的数据模型。

数据操作功能:用于对数据库中的数据进行操作,包括插入、更新、删除和查询数据等,它使用户能够通过指定条件来检索和修改数据库中的数据,还要进行性能优化等。

数据控制功能:包括数据的安全性保护,数据的完整性检查,并发控制和数据库恢复。

III.

数据库的安全性

定义:数据库的安全性是指保护数据库,以防止不合法的使用所造成的数据泄露、更改和破坏。

  • 常用技术和方法
  • 用户身份鉴别
  • 存取控制:定义用户权限,合法权限检查
  • 审计功能
  • 对数据存储和运输进行加密

IV.

数据库设计过程(五个阶段及主要任务)

需求分析阶段:理解用户需求,收集数据需求,确定功能需求,可以使用数据流图、数据字典和判定书等方法实现。

概念设计阶段:使用实体联系模型或其他方法将需求转化为高级概念模型,识别关键实体和属性,定义它们的联系。 3. 逻辑结构设计:将E-R图或其他概念模型转化为数据模型如关系模型,对数据模型进行优化,设计用户子模式。 4. 物理结构设计:确定关系模式的存取方法和存储结构。

数据库的实施和维护:监视数据库的性能、可用性和安全性,并进行必要的维护和优化操作,定期备份数据库等。


3. 各章详细知识点梳理

章节涉及知识点备注
第一章 绪论1. 基本概念:数据、数据库、数据库管理系统、数据库系统 2. 三种主要数据库模型,**数据模型的组成**3. 数据库系统三级模式和二级映像
第二章 关系数据库1. 关系数据库系统的基本特征 2. 关系的完整性约束3. 关系代数运算
第三章 SQL1. SQL的主要功能 2. 基本表的定义、删除与修改3. 索引的概念和特点 4. 插入、删除、修改数据5. 视图
第七章 数据库设计1. 数据库的设计过程“2. 需求分析、概念设计、逻辑设计等
第八章 数据库编程1. 存储过程的概念和特点第8章不考大题
第九章 关系查询处理1. 代数优化和物理优化的概念9-11章没有简答和综合设计
第十章 数据库恢复技术1. 事务的概念和性质同上
第十一章 并发控制1. 并发操作所带来哪些数据库不一致同上

4. 综合设计题攻略

综合设计题共有两道,分值较高(共30分),主要考察以下内容:

  1. SQL 综合应用
  • 与期中考试类似,使用SQL语句完成对一个信息处理系统的各项操作。
  1. 数据库设计(第7章)
  • 画 E-R 图:根据需求描述画出数据库的 E-R 图。
  • 转换关系模式:将 E-R 图转换为二维表(关系模式)。
  • 分析范式:分析表里面包含什么码(主码/主属性/非主属性),并判断满足第几范式。

1. 修改表结构 (ALTER TABLE)

修改表名

语法ALTER TABLE 旧表名 RENAME 新表名;

示例alter table tb_emp rename jd_emp; (将 tb_emp 改名为 jd_emp)

修改字段(列)

  • 修改字段名
  • 语法:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
  • 修改字段数据类型
  • 语法:ALTER TABLE 表名 MODIFY 字段名 数据类型;
  • 添加字段
  • 语法:ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER 已存在字段名];
  • 删除字段
  • 语法:ALTER TABLE 表名 DROP 字段名;
  • 修改字段排列位置
  • 语法:ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRST|AFTER 字段2;
  • 示例:ALTER TABLE tb_emp modify Name varchar(25) FIRST; (将 Name 字段移至第一列)

修改约束

  • 删除外键约束
  • 语法:ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;
  • 添加外键约束
  • 语法示例:CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES t_dept(deptId)
  • 设置自动增长
  • 语法示例:id int PRIMARY KEY AUTO_INCREMENT

2. 数据查询 (SELECT)

条件筛选

  • 排除特定集合 (NOT IN)
  • 语法:SELECT 字段名 FROM 表名 WHERE 字段名 NOT IN (n1,n2,n3,...);
  • 排除特定范围 (NOT BETWEEN)
  • 语法:SELECT 字段名 FROM 表名 WHERE 字段名 NOT BETWEEN n1 AND n2;
  • 模糊查询 (LIKE)
  • 匹配任意长度字符:SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '字符%'; (其中 % 代表任意长度字符)
  • 匹配单个字符:SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '字符_'; (其中 _ 代表单个字符)

结果处理

  • 去除重复行 (DISTINCT)
  • 语法:SELECT DISTINCT 字段名 FROM 表名;
  • 限制查询结果 (LIMIT)
  • 示例:LIMIT 1,4; (表示跳过第1条,取接下来的4条,即查询第2名到第5名的数据)

3. 连接查询 (JOIN)

  • 内连接 (INNER JOIN)
  • 隐式写法:select ... from tb_class,tb_student where tb_student.class_id=tb_class.id;
  • 显式写法:select ... from tb_student join tb_class on tb_student.class_id=tb_class.id;
  • 左外连接 (LEFT JOIN)
  • 语法:select ... from tb_student left join tb_class on tb_student.class_id=tb_class.id;
  • 右外连接 (RIGHT JOIN)
  • 语法:select ... from tb_student right join tb_class on tb_student.class_id=tb_class.id;
  • 复合查询
  • 结合连接、筛选和排序:
select distinct tb_student.name ...
from tb_student join tb_class
on tb_student.score > 90 and tb_student.class_id=tb_class.id
order by score desc;

4. 数据操纵 (DML)

  • 插入数据 (INSERT)
  • 语法:INSERT INTO 表名 (字段名) VALUES (内容);
  • 更新数据 (UPDATE)
  • 语法:UPDATE 表名 SET 字段名1 = 内容1, 字段名2 = 内容2 ... WHERE 过滤条件;
  • 删除数据 (DELETE)
  • 基本语法:DELETE FROM 表名;
  • 条件删除示例:delete from tb_emp where Salary>3000;

5. 视图与索引

视图 (VIEW)

  • 创建或修改视图
CREATE OR REPLACE
VIEW view_name [{column_list}]
AS SELECT_STATEMENT
WITH CHECK OPTION

索引 (INDEX)

  • 创建普通索引

create INDEX 索引名称 on 表名(字段名 desc/asc);

ALTER TABLE 表名 ADD INDEX 索引名称 (字段名);

  • 删除索引

drop index index_name on table_name;

alter table table_name drop index index_name;

alter table table_name drop primary key; (删除主键索引)

  • 创建联合索引
  • 语法:create index 索引名称 on 表名(字段1, 字段2, 字段3);
  • 创建唯一索引
  • 语法:create unique index 索引名称 on 表名(字段名称);
  • 创建前缀索引
  • 语法:CREATE INDEX index_name ON table_name (column_name (length));
  • 创建全文索引
  • 语法:ALTER TABLE table_name ADD FULLTEXT INDEX index_name (column_name);

22级期末回忆

1, 简答题

1)谈一谈三层映像的好处

2)将SQL语句转化成关系代数,并画出语法树进行优化(根本没

做这类题)

3)谈一谈你对国产数据库的看法,数据库有什么意义

4)判断是否为二级范式

2**, 大题**

画出ER图并且转换成关系模型

填空写SQL语句

Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录