数据库原理期末考试核心知识点可系统性地划分为基础理论、数据模型与设计、SQL与查询优化、事务管理与并发控制、数据库安全与完整性以及数据库新技术六大模块。其核心内容与逻辑关系如下表所示:
| 模块 | 核心知识点 | 简要说明 |
|---|---|---|
| 1. 基础理论 | 数据库系统特点、三级模式结构、数据独立性 | 理解数据库系统的核心优势与体系架构 。 |
| 2. 数据模型与设计 | 关系模型、ER图、函数依赖、范式理论、数据库设计流程 | 掌握从概念模型到逻辑模型的转换与规范化方法 。 |
| 3. SQL与查询优化 | 数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)、关系代数、查询优化 | 熟练运用SQL进行数据操作,并理解查询执行的内在逻辑 。 |
| 4. 事务管理与并发控制 | 事务ACID特性、并发问题、封锁协议、隔离级别、恢复技术 | 保证数据库在并发访问下的正确性与故障后的可恢复性 。 |
| 5. 数据库安全与完整性 | 用户权限管理、完整性约束(实体、参照、用户定义) | 确保数据的安全访问和内在逻辑正确 。 |
| 6. 数据库新技术 | NoSQL数据库、数据仓库、数据挖掘 | 了解数据库技术的发展前沿与应用扩展 。 |
一、 基础理论
数据库系统与文件系统相比,具有数据结构化、数据共享性高、冗余度低、数据独立性高、数据由DBMS统一管理和控制等特点 。其体系结构采用三级模式结构,提供了数据独立性的保障。
- 三级模式结构:
- 外模式:也称用户模式或子模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征描述。一个数据库可以有多个外模式。
- 模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。
- 内模式:也称存储模式,是数据在数据库内部的表示方式,描述了数据的物理存储结构和存取方法。
- 两级映像与数据独立性:
- 外模式/模式映像:保证了数据的逻辑独立性。当模式改变时(如增加新的关系、属性),DBA可以修改此映像,使外模式保持不变,从而应用程序无需修改 。
- 模式/内模式映像:保证了数据的物理独立性。当数据库的存储结构改变时,DBA可以修改此映像,使模式保持不变,从而应用程序不受影响 。
二、 数据模型与设计
1. 关系模型
关系模型是当前主流的数据模型,其三要素为:数据结构(二维表)、数据操作(关系代数或SQL)和完整性约束(实体完整性、参照完整性、用户定义完整性)。
2. 概念设计:ER模型
使用实体-联系(ER)图进行概念设计。
- 实体:客观存在并可相互区别的事物。
- 属性:实体所具有的某一特性。
- 联系:实体之间的联系,包括一对一(1:1)、一对多(1:n)和多对多(m:n)。
3. 逻辑设计:规范化理论
规范化是逻辑设计的核心,旨在消除数据冗余和操作异常。其理论基础是函数依赖。
- 函数依赖与范式:
范式是关系模式满足的某种规范级别,从低到高主要有1NF、2NF、3NF、BCNF。- 第一范式(1NF):关系中每一分量(属性)必须是不可再分的数据项。这是关系模式最基本的要求。
- 第二范式(2NF):在满足1NF的基础上,消除非主属性对候选码的部分函数依赖。
- 示例:关系模式
选课(学号, 课程号, 成绩, 课程学分)。候选码为(学号, 课程号)。课程学分仅函数依赖于课程号(候选码的一部分),存在部分依赖,不属于2NF。可分解为选课(学号, 课程号, 成绩)和课程(课程号, 课程学分)。
- 示例:关系模式
- 第三范式(3NF):在满足2NF的基础上,消除非主属性对候选码的传递函数依赖。
- 示例:关系模式
学生(学号, 姓名, 系号, 系名, 系地址)。学号->系号,系号->系名, 因此学号传递决定了系名。可分解为学生(学号, 姓名, 系号)和系(系号, 系名, 系地址)。
- 示例:关系模式
- BC范式(BCNF):在满足3NF的基础上,消除主属性对候选码的部分和传递函数依赖。更严格,所有决定因素都包含候选码 。
三、 SQL与查询优化
1. SQL语言
SQL是关系数据库的标准语言,主要分为以下几类:
- 数据定义语言(DDL):
CREATE,ALTER,DROP。用于定义和修改数据库对象(表、视图、索引等)。 - 数据操作语言(DML):
INSERT,UPDATE,DELETE。用于对表中的数据进行增删改。 - 数据查询语言(DQL):
SELECT。核心,用于数据查询。 - 数据控制语言(DCL):
GRANT,REVOKE。用于权限管理。
核心查询示例:
-- 单表查询:查询计算机系年龄大于20岁的学生姓名和学号 SELECT Sname, Sno FROM Student WHERE Sdept='CS' AND Sage>20; -- 连接查询:查询选修了‘数据库原理’课程的学生学号和姓名(假设Course表有Cname) SELECT Student.Sno, Sname FROM Student, SC, Course WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Course.Cname = '数据库原理'; -- 嵌套查询:查询与‘刘晨’在同一个系学习的学生(使用IN) SELECT Sno, Sname, Sdept FROM Student WHERE Sdept IN (SELECT Sdept FROM Student WHERE Sname='刘晨'); -- 分组与聚集函数:查询每个系的学生平均年龄 SELECT Sdept, AVG(Sage) AS AvgAge FROM Student GROUP BY Sdept; -- 集合查询:查询计算机系的学生及年龄不大于19岁的学生(UNION自动去重) SELECT * FROM Student WHERE Sdept='CS' UNION SELECT * FROM Student WHERE Sage<=19;2. 关系代数与查询优化
关系代数是SQL查询的数学基础,基本运算包括选择(σ)、投影(π)、并(∪)、差(-)、笛卡尔积(×)、更名(ρ),以及由基本运算导出的连接(⋈)、除(÷)等 。
查询优化的目标是选择一个高效执行计划。DBMS的查询优化器通常会:
- 将SQL语句转换为关系代数表达式树。
- 应用代数优化规则(如尽早执行选择σ和投影π操作,减少中间结果大小)。
- 进行物理优化,为每个操作选择高效的存取路径和算法(如使用哪个索引)。
四、 事务管理与并发控制
1. 事务(Transaction)
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务具有ACID特性:
- 原子性(Atomicity):事务中的所有操作是一个不可分割的整体。
- 一致性(Consistency):事务的执行必须使数据库从一个一致性状态转变到另一个一致性状态。
- 隔离性(Isolation):一个事务的执行不能被其他事务干扰。
- 持久性(Durability):事务一旦提交,其对数据库的改变就是永久性的 。
2. 并发控制
当多个事务并发执行时,可能破坏隔离性,导致数据不一致。主要问题包括:
- 丢失修改:两个事务读入同一数据并修改,后提交的结果覆盖了先提交的结果。
- 不可重复读:事务T1读取数据后,T2修改了该数据,T1再次读取时得到不同值。
- 读“脏”数据:事务T1修改了数据,T2读取了该数据,之后T1被撤销,则T2读到的是不存在的数据。
封锁协议是解决并发问题的主要技术:
- 排他锁(X锁,写锁):若事务T对数据对象A加X锁,则只允许T读取和修改A,其他事务不能再对A加任何锁。
- 共享锁(S锁,读锁):若事务T对数据对象A加S锁,则T可以读A但不能修改A,其他事务只能再对A加S锁,不能加X锁。
- 三级封锁协议:
封锁协议 解决的问题 一级封锁协议 事务在修改数据前必须加X锁,直到事务结束。可防止丢失修改。 二级封锁协议 在一级基础上,事务在读取数据前必须加S锁,读完后即可释放。可防止丢失修改和读“脏”数据。 三级封锁协议 在一级基础上,事务在读取数据前必须加S锁,直到事务结束才释放。可防止丢失修改、读“脏”数据和不可重复读。
两段锁协议(2PL)是保证并发调度可串行化的充分条件:事务分为两个阶段,扩展阶段(只能获得锁,不能释放锁)和收缩阶段(只能释放锁,不能获得锁)。
隔离级别是SQL标准定义的并发控制粒度,由低到高为:读未提交->读已提交->可重复读->串行化。级别越高,一致性越强,但并发性能越低。
3. 数据库恢复
恢复技术保证事务的原子性和持久性。核心机制是日志文件。DBMS利用日志进行撤销(UNDO)和重做(REDO)操作 。
- 故障类型:事务故障、系统故障、介质故障。
- 恢复策略:针对系统故障,常用检查点技术,结合日志进行REDO和UNDO。针对介质故障,需要定期进行数据库转储(备份),结合日志进行恢复。
五、 数据库安全与完整性
1. 安全性
通过用户身份认证和授权机制实现。主要使用SQL的GRANT和REVOKE语句。
-- 将查询Student表的权限授予用户U1 GRANT SELECT ON TABLE Student TO U1; -- 将Student和Course表的所有权限授予用户U2,并允许U2传播此权限 GRANT ALL PRIVILEGES ON TABLE Student, Course TO U2 WITH GRANT OPTION; -- 收回U1对Student表的查询权限 REVOKE SELECT ON TABLE Student FROM U1;2. 完整性
指数据的正确性和相容性。通过定义在表上的约束实现。
- 实体完整性:主码的值必须唯一且非空。
PRIMARY KEY - 参照完整性:外码的取值要么为空,要么等于被参照表的主码值。
FOREIGN KEY ... REFERENCES ... - 用户定义完整性:针对具体应用语义的约束。如
CHECK (Sage BETWEEN 15 AND 40),NOT NULL等 。
六、 数据库新技术
- NoSQL数据库:为应对Web 2.0时代海量数据、高并发、灵活 schema 的需求而兴起。主要类型包括键值存储(如Redis)、文档数据库(如MongoDB)、列族数据库(如HBase)和图数据库(如Neo4j)。
- 数据仓库与数据挖掘:
- 数据仓库:面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。其体系结构通常包含数据源、ETL(抽取、转换、加载)、数据仓库存储、OLAP(联机分析处理)服务器、前端工具。
- 数据挖掘:从大量数据中提取隐含的、未知的、潜在有用的信息和知识的过程。常见任务包括关联规则挖掘(如Apriori, FP-Growth算法)、分类、聚类(如DBSCAN算法)、离群点检测等 。例如,FP-Growth算法通过构建频繁模式树(FP-Tree)来高效挖掘频繁项集,避免了Apriori算法产生大量候选项集的缺点。
参考来源
- 数据库原理及应用-期末考试试题及答案
- 山东大学软件学院2022-2023数据仓库数据挖掘期末考试(回忆版)
- 期末考试必背知识点:数据库系统的特点与考点例题分析(含常考知识点汇总)
- 【数据库原理与应用】期末知识点总结——电子科技大学2023期末考试总复习
- [知识点整理]中科院/国科大 自然语言处理nlp 期末考试知识点整理
- 关系数据库原理与应用期末考试必考知识点详解(含考点例题分析)