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特性。

二.数据库恢复

了解三类故障,了解数据库备份方式和策略。

掌握基于日志的恢复策略。

掌握基于检查点的恢复策略。

第十一章 并发控制

掌握破坏隔离性而引起的三个问题:丢失更新,读脏数据以及不可重复读。

掌握封锁方法、三级封锁协议。

掌握并发调度的可串行性,掌握两段锁协议。

了解封锁的粒度,了解活锁和死锁。

一 绪论

三级模式和两级映象

结构:三级模式和两级映象

  • 三级模式:模式、外模式、内模式;三级模式之间有两级映象

    • 模式:逻辑模式;逻辑结构
    image-20230618220104767
    • 外模式;
    image-20230618220136373
    • 内模式:存储模式 / 物理模式;存储结构
  • 二级映象

    • image-20230618220352648
    • image-20230618220405817

三级结构与二级映象的目的是为了实现数据独立性,即:当内模式、模式发生改变时可以通过改变系统的映象来使应用程序不必改变

因此二级模式分别对应有数据的逻辑独立性和数据的物理独立性

外模式 / 模式映象——数据的逻辑独立性:

image-20230618220904679

模式 / 内模式映象——数据的物理独立性:

image-20230618221019717

数据库系统优点

二 关系代数(关系数据库)

关系数据结构

掌握笛卡尔积、域、基数、关系、候选码、主码、全码、外码、关系模式、关系数据库等概念

域(Domain):一组具有相同数据类型的值的集合

笛卡尔积:可表示为二维表

关系:是有意义的笛卡尔积(对笛卡尔积命名),当然也可以用二维表表示

  • 关系的性质

    image-20230618223226610

候选码、主码、外部码:

image-20230618223410124

关系数据结构的一个实例:

image-20230618223627554

关系模式:一个关系的描述;需要包含:关系名,属性名,每个属性的域(也就是数据类型),属性间的数据依赖

对于 关系模式 与 (一个)关系,可以这样理解:(一个)关系是关系模式的一个实例

关系代数

掌握传统的集合操作:并、差、笛卡尔积

掌握扩展的关系操作:选择、投影

掌握组合的关系操作:交、连接运算(q连接、等值连接、自然连接)

掌握关系代数表达式。除法、关系演算语言不作要求。


交、并、差

广义笛卡尔积 $ \times $

选择运算 $\sigma_F(R)$:选择行

  • F为选择条件(一般是属性间的表达式),从关系中选择出满足条件的行(数据)

投影 $ \Pi_A(R) $:选择列

  • A为R的一些属性列,投影就是从关系中取出特定的列,注意:投影的结果要去除相同的行

连接:$ \mathop{\Join} \limits_{A \theta B} $ 从两个关系的广义笛卡尔积中选择给定属性间满足一定条件的元组

自然连接:$ \Join $ 从两个关系的广义笛卡儿积中选取在相同属性列上取值相等的元组,并去掉重复的列

注意:除法不做要求

三 SQL

image-20230417090912383

数据定义功能

掌握建库、建表、建索引,创建视图等语句

掌握和理解索引的类型、作用。理解可以用什么数据结构实现索引。


  • 基本表的定义:
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

image-20230619010443473

group by

image-20230619010722136

视图

掌握视图创建语句;

掌握视图的优点:安全性,提高逻辑独立性和简化查询等。


image-20230619011137912
create view 视图名
	as <查询表达式>

四 数据库安全性(本章了解)

五 数据库完整性

  • 三种数据库完整性

六 关系数据理论

  • 异常

数据冗余

更新异常

插入异常

删除异常

关系模式规范化

掌握函数依赖的概念。包括平凡、非平凡的函数依赖、部分、传递函数依赖等。

了解1NF,2NF,3NF,BCNF的定义。


函数依赖:理解一下

平凡函数依赖:没什么信息量,所以平凡

image-20230619022216114

非平凡的函数依赖:Y不是X的子集

部分 / 完全函数依赖:关于 子集 能不能决定Y

image-20230619023002717

传递函数依赖:字面义

范式与规范化:

image-20230619023637936 image-20230619023646816

函数依赖公理系统

了解逻辑蕴涵、F+背包概念,掌握属性闭包的计算,掌握函数依赖集最小化的计算。

掌握Armstrong公理系统及其推理规则。


逻辑蕴含:

image-20230619024533959

Armstrong公理系统:

image-20230619024629938

推理规则:

  • 合并规则

    image-20230619024739800
  • 分解规则

image-20230619024824753
  • 为传递规则

    image-20230619024848503

属性闭包与函数依赖集最小化

函数依赖闭包$F^+$一般难求,转而求属性集的闭包

属性集闭包$X_F^+$求法:(下图描述很复杂,其实很简单)

image-20230619232254188

最小依赖集

每一个函数依赖集都等价于一个最小依赖集->需要进行极小化处理

  1. image-20230619233531866
  2. image-20230619233550071
  3. image-20230619233600312

注意:F的最小依赖集不一定唯一,与对各个函数依赖的处置顺序有关

通过两个示例来理解:

  • 、根据(2)检查依赖
image-20230619234146915
  • 根据(3)检查左侧属性集
image-20230619234120651

七 数据库设计

掌握数据库设计步骤、方法、内容。

了解需求分析的任务、方法、步骤。

掌握局部E-R图设计方法,了解视图合成方法。

掌握逻辑设计方法、内容,掌握从E-R图向特定DBMS转化的方法。

翻译:

掌握根据需求画E-R图,根据E-R图转为关系模式明确主码外码


E-R图部分:暂略

将实体转化为关系模式:比较直观

将联系转化为关系模式:

  • 1:1联系

可以与任意一端的关系模式进行合并

  • 1:n联系

可以独立,也可以与n端对应的关系模式合并

  • m:n联系

一般转换为一个关系模式,该关系的码是各实体码的组合

八 数据库存储

掌握数据库存储结构(文件、页、元组)

九 查询优化

掌握逻辑优化

image-20230619121620369
  • 关系代数等价变换规则

连接、笛卡尔积交换,结合律

投影串接:一次选出最终所需列

选择串接:一次检查全部选择条件

十 数据库恢复技术

一.事务

掌握事务定义、构成方式、ACID特性。

二.数据库恢复

了解三类故障,了解数据库备份方式和策略。

掌握基于日志的恢复策略。

掌握基于检查点的恢复策略。

  • ACID
image-20230619142046578
  • 基于日志的恢复策略

    • 事务故障的恢复:根据日志反向扫描逆操作至开始
    • 系统故障的恢复:
    • 介质故障的恢复
    image-20230619144551815
  • 检查点的恢复策略:

image-20230619144733174

十一 并发

掌握破坏隔离性而引起的三个问题:丢失更新,读脏数据以及不可重复读。

掌握封锁方法、三级封锁协议。

掌握并发调度的可串行性,掌握两段锁协议。

了解封锁的粒度,了解活锁和死锁。

丢失更新:

image-20230619150723795

读脏数据:读取后原数据更改,所读取的就变"脏"

不可重复读:重复读会产生不一致

封锁方法与三级封锁协议

  • Xlock
image-20230619151323013
  • Slock
image-20230619151348258
  • 三级封锁协议;
    • 一级封锁协议:修改前加X锁
    • 二级封锁协议:读前加S锁
    • 三级封锁协议:改为仅当事务T结束时才释放锁
image-20230619153559316

并发调度

两段锁协议

即:在扩展阶段获得封锁,在收缩阶段释放封锁

能够保证冲突可串行化

强严格2PL:释放时事务结束阶段释放全部封锁。


QUESTIONS

  • 数据库完整性都考啥?怎么看