数据库复习提纲
2019-12-26
2019-12-26
1 数据库系统概述
1.1 基本概念
- 数据库,数据库管理系统,数据库系统,数据库管理员(相互之间的关系)
1.2 数据库系统的特点
- 数据集成化,数据独立性,数据共享,数据冗余,数据安全性,完整性和一致性,并发控制和故障恢复
1.3 数据库内部结构体系
- 数据模式
- 三级模式,二级映射
- 三级模式与数据独立性关系
2 数据模型
2.1 数据模型的基本概念
- 数据模型及其组成成分:数据结构,数据操作,数据约束
- 数据模型的核心,不同类型数据模型的区分依据
- 三个抽象层次上的数据模型概念:概念数据模型,逻辑数据模型,物理数据模型
2.2 数据模型的四个世界
- 现实世界,概念世界,信息世界,计算机世界
2.3 概念世界与概念模型
- E-R模型与E-R图(包括扩充E-R模型)
- 实体,属性,联系
- 多值属性,组合属性
- 联系上的函数对应关系,参与方式
- IS-A联系,弱实体
- 面向对象模型:对象,对象标识符,类,方法,超类和子类,聚合和分解,继承和合成
2.4 信息世界和逻辑模型
- 关系模型:关系,属性,值域(域),元组,关系数据库,关键字
2.5 计算机世界与物理模型
- 逻辑模型的物理存储:项,记录,文件,索引,集簇
- 提高文件访问效率的常用方法:索引,集簇,hash
3 关系数据库系统
3.1 关系数据库系统概述
3.2 关系数据库系统的衡量准则
- 完全关系型的十二条衡量准则
- 空值(NULL)的定义
3.3 关系代数
3.3.0 关系模型(概念)
- 关系数据结构
- 表结构(表头):表框架,表的元数与基数
- 关系:关系的性质
- 关键字:候选关键字,主关键字,外关键字
- 关系数据库:关系子模式-视图(view)
- 关系操纵
- 数据查询:两个关系的合并,单个关系内的元组选择,单个关系内的属性指定
- 元组的删除,插入,修改
- 空值的处理
- 关系中的数据约束
- 实体完整性约束,参照完整性约束,用户定义的完整性
3.3.1 关系的表示
- 关系的表示,笛卡尔乘积
3.3.2 关系操纵的表示
- 关系代数中的五种基本运算:选择,投影,笛卡尔积,并,差(注意执行条件)
3.3.3 关系模型与关系代数
3.3.4 关系代数中的扩充运算
- 交,除法,联接,自然联接,$\theta$-联接
- 扩充运算与基本运算之间的关系
3.3.5 关系代数的应用
3.3.6 关系演算
- 原子公式,公式的定义
- 基于关系演算的数据查询表示:单表查询,多表连接查询,复杂查询的表示
3.4 关系数据库语言SQL
3.4.1 SQL概貌
- SQL的基本概念与使用方式:表,行,列
3.4.2 数据定义功能
3.4.3 数据操纵功能
- SQL语言与关系代数的关系
- 基本查询功能:
distinct
,like
,is null
,多表联接查询,表的自联接查询 - 嵌套查询:
in
,some
/any
/all
,exists
等谓词,相关子查询与独立子查询 - 子查询的合并:
union
/intersect
/except [all]
- 统计查询(
group by
,having
):统计与分组统计查询,空值与空集在统计函数中的处理方法 - 复杂数据查询
- 查询结果输出
- 结果元组去重:
distinct
- 结果元组排序:
order by
- 结果元组去重:
3.4.4 更新功能
- 元组删除
- 元组插入:常量元组的插入,带子查询的元组插入
- 元组修改
3.4.5 视图
- 视图概念,视图与基表的区别
- 视图的创建与删除
- 视图的嵌套定义
- 视图删除中的连锁反应
- 可更新视图的判断准则
- 视图的作用
4 数据库的安全性与完整性保护
4.1 数据库的安全性保护
- 数据库安全的基本概念与内容:主体,客体,身份标识与鉴别,自主访问控制,审计
- SQL对数据库安全的支持
- SQL中的存储权限
- SQL中的授权命令
grant
和权限回收命令revoke
4.2 数据库的完整性保护
- 数据库完整性保护的功能:目的与常用实现措施
- 实体完整性,参照完整性,用户定义完整性
- 完整的
create table
命令- 基表的创建
- 完整性约束的定义:主关键字,外关键字,
check
约束,unique
,not null
,default
- 触发器及其创建命令
5 事务处理,并发控制与故障恢复技术
5.1 事务处理(概念)
- 事务的定义与ACID性质
- 事务活动及其状态转换图
- 事务控制及相关的参数设置语句:事务的提交与回滚,事务的读/写类型与隔离级别
- 事务的语句组成成分
5.2 并发控制技术(概念)
- 事务
- 事务的并发性,并发控制
- 调度,串行调度,可串行化调度,冲突与冲突可串行化,视图可串行化
- 冲突可串行化的判定方法
- 不正确的事务所导致的数据不一致现象:丢失修改(lost-update),脏读(dirty-read),不可重复读(unrepeatable-read)
- 封锁
- 共享锁(S锁),排它锁(X锁),锁相容矩阵,锁申请/锁释放算法
- 基于封锁技术的并发控制实现方法
- 三级封锁协议,三级封锁协议与数据不一致现象之间的关系
- 两阶段封锁协议
- 两阶段封锁协议与冲突可串行化的关系
- 多粒度封锁
- 封锁粒度/并发度/并发控制实现开销之间的关系
- 多粒度树,多粒度封锁
- 基于意向锁的多粒度封锁协议
- 意向锁:IS,IX,SIX
- 意向锁锁相容矩阵
- 意向锁锁申请/释放算法
- 死锁的监测与预防
- 死锁,活锁
- 死锁的检测及其处理办法
- 等待图法
- 超时死锁检测法:锁申请等待超时,事务执行超时
- 时间戳死锁检测法
5.3 数据库恢复技术
- 数据库恢复的含义,方法和常用措施
- 数据库故障的分类
- 数据库故障恢复三大技术:数据转储,日志,数据库镜像
- 数据转储:静态转储/动态转储,海量转储/增量转储
- 日志
- 日志的内容,组成,作用与记载原则
- 在日志中设置检查点的作用
- 事务的撤销(undo)与重做(redo)
- undo日志
- redo日志
- undo/redo日志
- 3种日志的优缺点
- 恢复策略:小型/中型/大型故障的恢复策略
6 7
游标管理
- 游标的作用
- 游标的定义,打开,使用,关闭
- 可滚动游标的定义及其在数据更新命令中的使用
索引
- B+索引的数据结构,搜索算法
8 关系数据库规范化理论
8.1 概述
- 模式设计质量的评级指标:数据冗余度,插入/删除等更新异常
- 为什么要研究关系的规范化设计:规范化的目的与手段
8.2 规范化理论
8.2.1 函数依赖(FD)
- 函数依赖的定义
- 如何寻找函数依赖:函数依赖与数据完整性约束的关系
- 完全/部分FD,平凡/非平凡FD,直接/传递FD
- Armstrong公理系统:3条基本原则+3条扩充原则
- 基于函数依赖的关键字定义
- 属性集闭包的计算算法
- 关键字的计算算法
8.2.2 与函数依赖有关的范式
- 范式定义:1NF,2NF,3NF,BCNF
- 理解各级范式与数据冗余度,插入/删除异常的关系
8.2.3 多值依赖与第四范式
- 多值依赖,平凡多值依赖,非平凡多值依赖
- 多值依赖与函数依赖的关系
- 4NF
8.3 规范化所引起的一些问题
- 函数依赖的逻辑蕴含,函数依赖集的等价
- 最小函数依赖集及其判定方法
- 最小函数依赖集的计算算法
- 模式分解的无损联结性,依赖保持性及其判定方法
- 直接到3NF且满足无损联结性和依赖保持性的模式分解算法
- 从3NF到BCNF,4NF的分解方法