0. 复习课:考点
第一章 绪论
一.数据模型
了解何谓数据模型,数据结构化的重要性。
了解数据模型三要素:数据结构、数据操作、数据约束(完整性约束)
二.数据库系统结构
1 系统结构
掌握三级模式两级映象
掌握若干概念:模式、字模式、内模式、模式/子模式映射、模式/内模式映射。
各自定义、特点、作用。
三.数据库系统组成
了解:硬件、软件、用户、DB
了解DBMS组成:DB定义、数据操作语言及其编译、DB运行控制、实用程序。
四.数据库系统优点
掌握数据结构化、数据高度共享、数据独立性高、安全性等优点(能联系实际)。
第二章 关系数据库
一.关系数据结构
掌握笛卡尔积、域、基数、关系、候选码、主码、全码、外码、关系模式、关系数据库等概念
二.关系的完整性
了解实体完整性、参照完整性、用户自定义完整性。
三.关系代数
掌握传统的集合操作:并、差、笛卡尔积
掌握扩展的关系操作:选择、投影
掌握组合的关系操作:交、连接运算(q连接、等值连接、自然连接)
掌握关系代数表达式。除法、关系演算语言不作要求。
第三章 Sql语言
一.概述
了解Sql语言特点
二.数据定义功能
掌握建库、建表、建索引,创建视图等语句
掌握和理解索引的类型、作用。理解可以用什么数据结构实现索引。
三.数据查询功能
掌握简单查询、嵌套查询、分组查询、集合查询、查询视图。
掌握根据查询要求撰写Sql语句。
四.数据更新功能
了解Insert、Delete、Update语句的写法。
了解视图更新。
五、视图
掌握视图创建语句;
掌握视图的优点:安全性,提高逻辑独立性和简化查询等。
第四章 数据库安全性
一.数据库安全性
了解数据库安全性内容,实现安全性方法。
了解安全性控制及其SQL语句的实现
第五章 数据库完整性
一.数据库完整性
掌握三类数据库完整性,了解完整性约束条件,掌握实现完整性策略及其实现语句。注意完整性和一致性的区别。
第六章 关系数据理论
一.关系模式设计的问题
理解关系模式在数据更新时出现的数据语义问题,要求能够分析一个关系模式存在的数据操作异常。
二.关系模式规范化
掌握函数依赖的概念。包括平凡、非平凡的函数依赖、部分、传递函数依赖等。
了解1NF,2NF,3NF,BCNF的定义。
三.函数依赖的公理系统
了解逻辑蕴涵、F+背包概念,掌握属性闭包的计算,掌握函数依赖集最小化的计算。
掌握Armstrong公理系统及其推理规则。
第七章 数据库设计
一.概述
掌握数据库设计步骤、方法、内容。
二.需求分析
了解需求分析的任务、方法、步骤。
三.概念设计
掌握局部E-R图设计方法,了解视图合成方法。
四.逻辑设计
掌握逻辑设计方法、内容,掌握从E-R图向特定DBMS转化的方法。
第八章 关系数据库引擎基础及B+树
一、 数据库存储
掌握数据库存储结构(文件、页、元组)
第九章 关系查询处理和查询优化
1、 掌握逻辑优化(目标,算法)
2、 了解物理优化
第十章 数据库恢复技术
一.事务
掌握事务定义、构成方式、ACID特性。
二.数据库恢复
了解三类故障,了解数据库备份方式和策略。
掌握基于日志的恢复策略。
掌握基于检查点的恢复策略。
第十一章 并发控制
掌握破坏隔离性而引起的三个问题:丢失更新,读脏数据以及不可重复读。
掌握封锁方法、三级封锁协议。
掌握并发调度的可串行性,掌握两段锁协议。
了解封锁的粒度,了解活锁和死锁。
一 绪论
三级模式和两级映象
结构:三级模式和两级映象
三级模式:模式、外模式、内模式;三级模式之间有两级映象
- 模式:逻辑模式;逻辑结构
- 外模式;
- 内模式:存储模式 / 物理模式;存储结构
二级映象
三级结构与二级映象的目的是为了实现数据独立性,即:当内模式、模式发生改变时可以通过改变系统的映象来使应用程序不必改变
因此二级模式分别对应有数据的逻辑独立性和数据的物理独立性
外模式 / 模式映象——数据的逻辑独立性:
模式 / 内模式映象——数据的物理独立性:
数据库系统优点
二 关系代数(关系数据库)
关系数据结构
掌握笛卡尔积、域、基数、关系、候选码、主码、全码、外码、关系模式、关系数据库等概念
域(Domain):一组具有相同数据类型的值的集合
笛卡尔积:可表示为二维表
关系:是有意义的笛卡尔积(对笛卡尔积命名),当然也可以用二维表表示
关系的性质
候选码、主码、外部码:
关系数据结构的一个实例:
关系模式:一个关系的描述;需要包含:关系名,属性名,每个属性的域(也就是数据类型),属性间的数据依赖
对于 关系模式 与 (一个)关系,可以这样理解:(一个)关系是关系模式的一个实例
关系代数
掌握传统的集合操作:并、差、笛卡尔积
掌握扩展的关系操作:选择、投影
掌握组合的关系操作:交、连接运算(q连接、等值连接、自然连接)
掌握关系代数表达式。除法、关系演算语言不作要求。
交、并、差
广义笛卡尔积 $ \times $
选择运算 $\sigma_F(R)$:选择行
- F为选择条件(一般是属性间的表达式),从关系中选择出满足条件的行(数据)
投影 $ \Pi_A(R) $:选择列
- A为R的一些属性列,投影就是从关系中取出特定的列,注意:投影的结果要去除相同的行
连接:$ \mathop{\Join} \limits_{A \theta B} $ 从两个关系的广义笛卡尔积中选择给定属性间满足一定条件的元组
自然连接:$ \Join $ 从两个关系的广义笛卡儿积中选取在相同属性列上取值相等的元组,并去掉重复的列
注意:除法不做要求
三 SQL
数据定义功能
掌握建库、建表、建索引,创建视图等语句
掌握和理解索引的类型、作用。理解可以用什么数据结构实现索引。
- 基本表的定义:
CREATE TABLE C (
C# CHAR(4),
CNAME CHAR(10) NOT NULL,
TEACHER CHAR(8),
PRIMARY KEY (C#)
REFERENCES C(S#),
CHECK(GRADE is null)
);
- 建库
# 建库
create database 数据库名
# 删库
drop database 数据库名
- 建索引:实际上就是 记录的关键字与其相应地址的对应表
- 建视图
数据查询功能
掌握简单查询、嵌套查询、分组查询、集合查询、查询视图。
掌握根据查询要求撰写Sql语句。
- 一些子句
select from where
order by
group by
视图
掌握视图创建语句;
掌握视图的优点:安全性,提高逻辑独立性和简化查询等。
create view 视图名
as <查询表达式>
四 数据库安全性(本章了解)
五 数据库完整性
- 三种数据库完整性
六 关系数据理论
- 异常
数据冗余
更新异常
插入异常
删除异常
关系模式规范化
掌握函数依赖的概念。包括平凡、非平凡的函数依赖、部分、传递函数依赖等。
了解1NF,2NF,3NF,BCNF的定义。
函数依赖:理解一下
平凡函数依赖:没什么信息量,所以平凡
非平凡的函数依赖:Y不是X的子集
部分 / 完全函数依赖:关于 子集 能不能决定Y
传递函数依赖:字面义
范式与规范化:
函数依赖公理系统
了解逻辑蕴涵、F+背包概念,掌握属性闭包的计算,掌握函数依赖集最小化的计算。
掌握Armstrong公理系统及其推理规则。
逻辑蕴含:
Armstrong公理系统:
推理规则:
合并规则
分解规则
为传递规则
属性闭包与函数依赖集最小化
函数依赖闭包$F^+$一般难求,转而求属性集的闭包
属性集闭包$X_F^+$求法:(下图描述很复杂,其实很简单)
最小依赖集
每一个函数依赖集都等价于一个最小依赖集->需要进行极小化处理
注意:F的最小依赖集不一定唯一,与对各个函数依赖的处置顺序有关
通过两个示例来理解:
- 、根据(2)检查依赖
- 根据(3)检查左侧属性集
七 数据库设计
掌握数据库设计步骤、方法、内容。
了解需求分析的任务、方法、步骤。
掌握局部E-R图设计方法,了解视图合成方法。
掌握逻辑设计方法、内容,掌握从E-R图向特定DBMS转化的方法。
翻译:
掌握根据需求画E-R图,根据E-R图转为关系模式明确主码外码
E-R图部分:暂略
将实体转化为关系模式:比较直观
将联系转化为关系模式:
- 1:1联系
可以与任意一端的关系模式进行合并
- 1:n联系
可以独立,也可以与n端对应的关系模式合并
- m:n联系
一般转换为一个关系模式,该关系的码是各实体码的组合
八 数据库存储
掌握数据库存储结构(文件、页、元组)
九 查询优化
掌握逻辑优化
- 关系代数等价变换规则
连接、笛卡尔积交换,结合律
投影串接:一次选出最终所需列
选择串接:一次检查全部选择条件
十 数据库恢复技术
一.事务
掌握事务定义、构成方式、ACID特性。
二.数据库恢复
了解三类故障,了解数据库备份方式和策略。
掌握基于日志的恢复策略。
掌握基于检查点的恢复策略。
- ACID
基于日志的恢复策略
- 事务故障的恢复:根据日志反向扫描逆操作至开始
- 系统故障的恢复:
- 介质故障的恢复
检查点的恢复策略:
十一 并发
掌握破坏隔离性而引起的三个问题:丢失更新,读脏数据以及不可重复读。
掌握封锁方法、三级封锁协议。
掌握并发调度的可串行性,掌握两段锁协议。
了解封锁的粒度,了解活锁和死锁。
丢失更新:
读脏数据:读取后原数据更改,所读取的就变"脏"
不可重复读:重复读会产生不一致
封锁方法与三级封锁协议
- Xlock
- Slock
- 三级封锁协议;
- 一级封锁协议:修改前加X锁
- 二级封锁协议:读前加S锁
- 三级封锁协议:改为仅当事务T结束时才释放锁
并发调度
两段锁协议
即:在扩展阶段获得封锁,在收缩阶段释放封锁
能够保证冲突可串行化
强严格2PL:释放时事务结束阶段释放全部封锁。
QUESTIONS
数据库完整性都考啥?怎么看