数据库期末知识点总结

jkm Lv2

数据库背诵知识点


前言

众所周知,数据库是一个文科课程,期末的题型也比较固定,就是比谁背的牢。以下是本人速通期末总结的知识点,非官方出品。感觉总结的还是挺全的,最后笔试不行完全是本人背的不好,放博客上留个纪念~

第一章 概述

1.1 数据库管理技术发展的三个阶段

人工管理阶段、文件系统阶段、数据库系统阶段

1.1.1 文件系统的特点与缺点

特点

  • 数据以文件形式保留在外存上
  • 文件多样化
  • 数据的存取基本上以记录为单位
  • 程序和数据有一定的独立性
  • 文件与应用程序基本上是一一对应,数据共享性差,冗余度大

缺点

  • 文件分散、相互独立、数据冗余度大,数据和程序缺乏独立性
  • 存储空间浪费
  • 容易造成数据的不一致性
  • 数据维护难度大
  • 程序维护工作量大

1.1.2 数据库系统数据管理的特点

  • 面向全组织的复杂的数据结构,数据结构化
  • 数据冗余度小、易扩充
  • 具有较高的数据和程序的独立性
    • 数据的物理独立性
    • 数据的逻辑独立性
    • 实现:三级模式两级映象
  • 统一的数据控制功能
    • 安全性控制
    • 完整性控制
    • 并发控制
    • 数据库恢复
  • 数据的最小存取单位是数据项

二者的本质区别:数据库系统实现整体数据的结构,而文件系统中数据之间是孤立的

1.2 数据模型

1.2.1 概念模型的基本概念

定义:概念模型基于信息世界的主要概念,表达应用中的各种语义。
特点:具有较强的语义表达能力,能够方便、直接表达应用中的各种语义
要求:应该清晰简单、易于理解
常用方法:ER法
名词解释

  • 实体:客观存在并可相互区分的事物
  • 属性:实体所具有的某一特性
  • 码:唯一标识实体的属性集
  • 域:某个(些)属性的取值范围
  • 实体型:表示一类实体,用实体及其属性名集合来抽象、刻画。

1.2.2 数据模型

1.2.2.1 数据模型三要素(很重要)
  • 数据结构:
    • 由描述数据对象以及对象之间联系的一组概念组成。
    • 是数据静态特性的描述
    • 是刻画数据模型最重要的方面
  • 数据操作
    • 是数据动态特性的描述
    • 主要有检索和更新(增删改)两大类操作
  • 完整性约束
1.2.2.2 数据模型分类
  • 层次模型:
    • 优点:结构简单、易于实现
    • 缺点:支持的联系种类太少(只能直接表示二元一对关系),数据操纵不方便
  • 网状模型
    • 优点:表达的联系种类丰富(能直接表示多对多关系)
    • 缺点:结构复杂
  • 关系模型
    • 数据结构简化,概念简单
    • 可直接表示多对多联系
    • 不允许表中套表
    • 建立在数学概念基础上,有较强的理论基础

1.3 数据库系统结构

1.3.1 三级模式体系结构构成及其优点

构成

  • 三级模式:模式、外模式、内模式
  • 两级映象:外模式/模式映象、模式/内模式映象

优点

  • 保证数据的独立性
  • 简化用户接口、方便用户使用
  • 有利于数据共享
  • 有利于数据的安全保密

1.3.2 数据独立性的概念

数据物理独立性:当内模式改变时,模式/内模式映象做相应修改,使得模式保持不变
数据逻辑独立性:当模式改变时,外模式/模式映象做相应改变,可以保证外模式不变

1.3.3 DBMS(Database Management System)

主要功能

  1. 数据库定义功能
  2. 数据库运行管理
  3. 数据库的建立和维护功能
  4. 数据存取功能
  5. 数据组织、存储和管理

组成

  1. 语言编译处理程序
  2. 系统运行控制程序
  3. 系统建立和维护程序
  4. 数据字典
    • 也称为数据目录或系统目录,由一系列表组成,存储这数据库中有关信息的当前描述,包括数据库的三级模式、用户名表、用户权限等信息。

第二章 关系数据库

2.1 关系模型

2.1.1 关系模型的数据结构

基本概念
* 关系、域、n目关系、元组、属性
* 码
* 侯选码:某一属性组,唯一标识了一个元组,并且具有最小性
* 主码:若有多个候选码,选其中之一
* 主属性与非主属性
* 关系模式:R(U, D, dom, F)
#### 2.1.2 关系模型的完整性约束
* 实体完整性:主码不可为空
* 参照完整性:如果关系R的主码 $F_k$ 与关系S的主码 $P_k$ 相对应,则R中的每一个元组的 $F_k$ 值或者等于S中的某个元组的 $P_k$ 值,或者为空。
* 用户定义完整性
#### 2.1.3 关系的性质
* 列是同质的
* 不同的列可出自同一域,每列必须有不同的属性名
* 列的顺序无关紧要
* 行的顺序无关紧要
* 任意两个元组不能完全相同
* 每一分量必须是不可再分的数据

第三章 SQL

3.1 关系数据语言的分类及特点

关系数据语言的核心是查询,所以又称为查询语言,关系运算的分类也决定了关系语言的分类。
特点

  • 一体化
  • 非过程化
  • 面向集合的存取方式
  • 既可独立使用又可与主语言嵌套使用。

3.2 SQL数据查询功能


第四章 数据库保护

4.1 数据安全性保护

4.1.1 数据库安全性的含义

定义:是指保护数据库以防止不合法的使用所造成的数据泄露、更改和破坏。包括以下两方面的含义:

  • 向授权用户提供可靠的信息服务
  • 拒绝对数据的非授权存取访问请求。保证数据的可用性、完整性和一致性,进而保护数据库所有者和使用者的合法权益。

4.1.2 数据库系统安全性控制的手段或机制:

  • 用户标识与认证:标识是指系统采用一定的方式标识其用户或应用程序的名字或身份;认证是指系统在用户或应用程序登录时判断其是否为合法的授权用户。
  • 访问控制(存取控制)
    • 用户权限定义:将用户权限记录到数据字典中,形成安全规则或授权规则
    • 合法权限检查:当用户发出数据库操作请求后,DBMS根据数据字典中的安全规则检查用户权限是否合法
  • 加密技术:将原始数据(明文)变换为不可识别的格式(密文),从而使不知道解密算法的人无法获知数据的内容。
  • 审计:把用户对数据库的所有操作都自动记录下来放入审计日志中。
  • 视图机制:为不同的用户定义不同的视图,可以将用户对数据的访问限制在一定的范围内。

4.1.3 数据存取控制方法基本概念:

自主存取控制:用户对于不同的数据对象拥有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其拥有的权限转授给其他用户
强制存取控制:每一个数据对象被标以一定的密级,每一个用户也被授予某一级别的许可证。对于任一个对象,只有具有合法许可证的用户才可以存取

4.1.4 SQL存取控制

用户级权限:为每个用户授予的特定权限,是对用户使用整个数据库权限的限定。
关系级权限:与关系或视图有关的权限
了解GRANT、REVOKE的用法

4.2 数据完整性保护

4.2.1 数据库完整性的含义

定义:数据完整性是指数据的正确性和相容性

  • 正确性:是指数据应具有合法的类型,并在有效取值范围之内
  • 相容性:是指表示同一个事实的两个数据应该相同

4.2.2 完整性约束条件的分类

  • 静态(列、元组、关系)
  • 动态(列、元组、关系)

4.2.3 完整性控制功能构成

  • 定义功能
  • 检查功能
  • 违约响应

4.2.4 SQL完整性支持功能

  • CREATE TABLE
  • ASSERTION
  • 触发器

第五章 关系数据理论

5.1 函数依赖

5.1.1 基本概念

定义:函数依赖 X -> Y 可定义为对于X的每个具体值,Y有唯一的值与之对应。
完全函数依赖
部分函数依赖
传递函数依赖

5.1.2 属性集闭包的概念及求法

5.1.3 候选码求法

5.1.4 最小依赖集

5.1.5 Armstrong公理系统

  • 自反律
  • 增广律
  • 传递律

5.2 范式

5.2.1 范式等级判定

1NF:没有“表中套表”
2NF:每个非主属性完全依赖于码
3NF:非主属性对码不能有传递依赖
BCNF:每个函数依赖,左部必须含有码

  • 所有非主属性都完全依赖于码
  • 所有主属性都完全依赖于每个不包含它的候选码
  • 没有任何属性完全依赖于非码的任何一组属性

5.3 模式分解算法

5.3.1 无损分解的判定算法

  1. 画表(步骤见ppt)
  2. 定理:R1,R2的共同属性至少构成R1,R2二者之一的候选码。

5.3.2 分解的保持函数依赖性判定算法

R中的每个函数依赖都能够从R1…Rn函数依赖的并集当中逻辑导出

5.3.3 模式分解的原则

  • 具有无损连接性
  • 保持函数依赖

5.3.4 模式分解的算法:达到3NF且满足两条分解算法

步骤见ppt

5.3.5 候选码的快速求法

先把所有属性分成四类:L类、R类、N类、LR类
求N、L类的属性集的闭包,看是否等于U


第六章 数据库设计

6.1 数据库规范设计法

阶段

  • 需求分析:对应用环境进行详细调查,收集支持系统目标的基础数据及其处理
  • 数据库概念结构设计:通过对用户需求进行综合、归纳与抽象,形成独立于数据库逻辑结构与具体DBMS的概念模型,可以用E-R图表示
  • 数据库逻辑结构设计:将概念结构转换为某个特定的DBMS所支持的数据模型,并进行优化。再将得到的逻辑结构转换成特定的DBMS能处理的模式、子模式
  • 数据库物理结构设计:设计数据库在物理设备上的存储结构和存取方法。一般分为两步:一是确定数据库的内模式;二是对物理结构进行时间与空间效率的评价;
  • 数据库实施:建立数据库的过程。用DBMS的DDL描述三级模式,并调试产生目标模式。开发应用程序,组织数据入库并试运行;
  • 数据库运行和维护:在数据库正式运行后,由DBA执行对数据库经常性的维护工作,包括数据库转储与恢复、数据库控制、数据库性能监控、数据库的重组与重构

6.2 概念结构设计

画E-R图
局部ER图合并中的冲突

  • 属性冲突:属性的类型、取值范围、取值集合不同
  • 命名冲突:同名异义、异名同义
  • 结构冲突:同一对象在不同应用中有不同抽象。如在一应用中为实体、在另一应用中为属性

冗余联系没必要在合并时解决

6.3 逻辑结构设计

6.3.1 E-R图向关系模型的转换规则

  • 一个实体型转换为一个关系模式
  • 一个联系转换为一个关系模式
    • 1:1联系:每个关系的码均是该关系的候选码,可以合并到任意一端实体,把联系的属性加进实体里,另一端实体的主码作为外码
    • 1:n联系:该关系的码是n端实体的码,合并到n端实体,把联系的属性加进实体里,1端实体的码作为n端实体的外码
    • n:m联系:该关系的码是逐实体码的组合
  • 三个或以上实体间的多元联系,转换为一个关系模式。
  • 具有相同码的关系可以合并

6.3.2 关系模型的优化

水平分解:把关系的元组分为若干子集合

  • 80/20原则:把经常用的一部分数据提取出来作为一个关系
  • 数据分片:如果关系R上具有n个事务而且多数事务存取的数据不相交,则把R分解为少于或等于n个子关系。

垂直分解:把关系的属性分解为若干子集合

  • 原则:经常在一起使用的属性从R中分解出来形成一个子关系模式
  • 必须确保无损连接和保持函数依赖

6.4 常用存取方法基本概念及选择原则

常用存取方法

  • 索引方法:
    • B树索引
    • B+树索引
    • HASH索引
  • 聚集方法
  • HASH方法

第七章 存储管理与索引

7.1 数据的存储结构/物理结构

7.1.1 DBMS存储管理的目标

7.1.2 文件中记录的几种组织方式的含义

:记录可以存放在文件空间中的任何位置
顺序:基于每个记录的搜索码值顺序排列
索引:按某种顺序有序存储
散列 在搜索码上的hash函数,计算出记录在文件中存放的块
聚集:将有联系的记录存储在同一个块上,以最小化I/O次数

7.1.3 页/块的分槽结构

7.2 缓冲区管理

缓冲区:是主存中可以存储磁盘块副本的区域
缓冲区管理器:负责缓存空间分配,内外存交换
管理目标:最小化磁盘和主存间传输存储块的数量,即最小化磁盘存取次数,实现手段是在主存中保持尽量多的块。

7.3 索引

7.3.1 基本概念

  • 索引文件构成:索引记录/索引项,包括两个域
    • 索引域:存储数据文件中一个或一组域(属性)
    • 指针:指向索引域值为K的记录所在磁盘块的地址
  • 索引将表中的部分属性进行组织或排序,使得DBMS的执行引擎利用这些属性能够快速有效地进行表的访问

7.3.2 索引的分类

  1. 两种基本类型
    • 排序索引
    • 哈希索引
  2. 聚集索引与非聚集索引
    • 聚集索引:索引域的排列顺序与记录在文件中的排列顺序一致,也称为主索引
    • 非聚集索引:索引项排列的顺序与文件中的排列顺序不同,也称为辅助索引
  3. 稠密索引与稀疏索引
    • 稠密索引:对于文件中的每个搜索码值都有一个索引项(非聚集索引都是稠密索引
    • 稀疏索引:只有部分索引域有索引记录

7.3.3 B树、B+树的原理

不同点:

  • B树:关键字散布在各层
  • B+树:树中所有关键字都按递增次序从左到右安排在叶节点上,并且连接起来。可以同时进行随机查找和顺序查找

相同点:

  • 限制每个节点放置关键字与指针的最大最小个数
  • 所有叶节点都在同一层

7.3.4 Hash索引的原理

基于哈希表实现,分为静态哈希和动态哈希


第八章 查询处理与查询优化

8.1 查询处理的步骤

  1. 查询分析
    • 词法分析
    • SQL语法检查和语法分析
  2. 查询检查
    • 语义检查
    • 存取权限检查
    • SQL语句转换为关系代数表达式
  3. 查询优化
    • 选择一个高效执行的查询处理
    • 生成查询计划
  4. 查询执行
    • 生成查询计划的代码
    • 代码执行

8.2 主要查询操作的实现算法

  • 选择
    • 全表扫描法
    • 索引扫描法
  • 连接
    • 嵌套循环法:两个连接的表,第一个表为外循环,第二个表为内循环
    • 索引连接法:第二个表按照连接属性建立索引,取第一个表元组的连接属性与第二个表元组的连接属性比较
    • 排序–合并法:两个表都按照连接属性排序,取第一个表元组的连接属性与第二个表元组的连接属性比较
    • Hash join法:连接属性作为hash码,用同一个hash函数把两个连接表的元组散列到同一个hash文件中

8.3 查询优化的目标

选择一个高效执行的查询处理策略,使得查询代价 最小,即访问磁盘的块数最少

8.4 代数优化

  • 基本概念:通过对关系代数表达式的等价变换来提高查询效率
  • 等价变换规则:见ppt
  • 一般准则
    • 选择运算尽早执行
    • 投影运算尽早执行
    • 把投影运算和选择运算同时进行,把投影同其前或其后的双目运算结合起来
    • 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个新的运算
    • 找出公共子表达式,把结果写入中间文件
  • 优化算法

8.5 物理优化

含义:选择高效合理的操作算法或存取路径,得到优化的查询算法
常用方法

  • 基于规则的启发式优化算法:
    • 选择:小关系–全表顺序扫描;大关系:索引扫描/全表顺序扫描
    • 连接:
      • 如果两个表都已经按照连接属性排序—-排序合并法
      • 如果一个表在连接属性上有索引—-索引扫描法
      • 如果连接属性上未排序且未建索引,且其中一个表较小—-Hash Join法
      • 实在没辙—-嵌套循环法,小表作为外循环
  • 基于代价估算的优化方法:计算各种操作算法的执行代价,选择具有最小代价的执行计划。
  • 两者结合的优化方法

第九章 事务处理技术

9.1 事务

  • 概念:是用户定义的数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。
  • 特性(ACID)
    • 原子性(Atomicity):事务中包括的所有操作要么都做,要么都不做
    • 一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态,变到另一个一致性状态
    • 隔离性(Isolation):一个事物的执行不能被其他事务干扰
    • 持久性(Durability):一个事务一旦提交,它对数据库的影响必须是永久的

9.2 数据库恢复

9.2.1 数据库恢复的基本原理与技术

  • 定义:数据库管理系统必须具有把数据库从错误状态恢复到某一已知正确状态的功能,这就是数据库的恢复。
  • 数据库恢复子系统的意义
    • 保证事务的原子性
    • 当系统发生故障以后,数据库能够恢复到正常状态
  • 数据转储
    • 定义:定期将整个数据库复制到浏览器磁带或另一个磁盘上保存起来的过程。这些备用的数据文本为后备副本或后援副本。
    • 两种转储状态
      • 静态转储:系统中无事务运行时进行,转储过程中不允许对数据库进行任何存取、修改
      • 动态转储:转储期间允许对数据库进行存取或修改
    • 两种转储方式
      • 海量转储:每次全部转储
      • 增量转储:只转储更新过的数据
  • 日志文件
    • 定义:用来记录事务对数据库更新操作的文件
    • 两种格式
      • 以记录为单位
      • 以数据块为单位
    • 作用:
      • 事务故障和系统故障必须使用日志文件
      • 动态转储中,必须用日志文件,后备副本 + 日志文件合起来才能有效地恢复数据库
      • 静态转储中,用日志文件恢复转储结束时刻到故障点间的事务
    • 写入规则:先写日志文件,后写数据库

9.2.2 故障的种类

  • 事务内部的故障(可预期的、不可预期的)
  • 系统故障
  • 介质故障
  • 计算机病毒

9.2.3 恢复策略

  • 事务故障:Undo(不影响其他事务的情况下,强行回滚)
  • 系统故障:Undo + Redo(正向扫描日志文件,做完的Redo,没做完的Undo)
  • 介质故障:装入最新的数据库后备副本,是数据库恢复到最近一次转储时的一致状态。
  • 具有检查点的恢复技术:检查点技术可以改善效率,使得在检查点之前提交的事务,在数据库恢复处理时不必重做。故障之前做完的:Redo,故障发生还没做完的:Undo

9.3 并发控制

可能导致的问题:破坏一致性
基本思想:合理调度并发事务
基本手段:封锁机制——事务T在对某个数据对象操作之前,先向系统发出请求,对其加锁,从而对该数据对象有了一定的控制权
锁的类型:排它锁(X),共享锁(S)
三种封锁协议

  • 一级封锁协议:修改数据之前对事务加 X 锁,结束释放。可以防止丢失修改
  • 二级封锁协议:一级 + 读数据之前加 S 锁,读完后释放 S 锁。可以防止读脏数据
  • 三级封锁协议:一级 + 读数据之前加 S 锁,直到结束才释放。可以防止“不可重复读”

可串行性概念:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果相同,我们称这种调度策略为可串行化调度。
两段锁协议

  1. 在对任何数据进行读写操作之前,事务首先要获得对该数据的封锁
  2. 在释放一个锁之后,事务不再获得任何其他封锁

死锁
* 预防:
* 一次封锁法:一次将所有要使用的数据全部加锁
* 顺序封锁法:预先对数据对象规定一个封锁顺序
* 检测:
* 超时法
* 等待图法
* 解除:选择一个处理死锁代价最小的事务,将其撤销
### 9.4 多粒度封锁与意向锁
多粒度封锁协议
意向锁
* 含义:该结点的下层结点正在被加锁
* 对任意节点加锁时,必须先对其上级节点加意向锁
* 好处:在对象加锁时,不再检查下级节点的封锁,只需检查对象和它的上级节点。

第十章 数据库技术新发展

10.1 分布式数据库的定义与特点

定义:分布式数据库是由一组分布在计算机网络的不同结点上的数据组成,每个结点具有独立处理的能力(称为场地自治),可以执行局部应用,同时每个结点也能通过网络通信支持全局应用。
特点

  • 数据独立性
  • 集中与自治相结合的控制结构
  • 适当增加数据冗余
  • 全局的一致性、可串行性、可恢复性

10.2 分布式数据库系统的模式结构

  1. 全局外模式及全局外模式/全局概念模式映象
  2. 全局概念模式
  3. 分片模式及全局概念模式/分片模式映象
  4. 分布模式及分片模式/分布模式映象
  5. 分布模式/局部数据库概念模式映象

10.3 数据分片方式

  • 较基本:水平分片、垂直分片
  • 较复杂:混合分片、导出分片

10.4 分布透明性的概念

  • 分片透明性:用户或应用程序只对全局关系进行操作而不必考虑关系的分片。它是分布透明性的最高层次。依靠全局概念模式/分片模式实现
  • 位置透明性:用户或应用程序不必了解片段的存储场地也不必关心各数据副本的一致性。
  • 局部数据模型透明性:用户或应用程序不必了解局部场地上使用的是哪种数据模型。模型的转换以及查询语言等的转换均由分布模式/局部概念模式(映象4)完成。

10.5 分布式查询处理和优化

目标:

  • 查询:执行的开销I/O代价 + CPU代价 + 通信代价

全局查询是分布式数据库查询优化的主要对象

连接查询的优化:半连接

10.6 分布式事务处理

分布事务的原子性:组成该事务的所有子事务要么全部提交,要么全部回滚。
两段提交协议:两段提交协议把一个分布事务的所有局部事务管理分为两类,协调者和参与者。

  • 第一阶段:协调者征求意见做决定
  • 第二阶段:参与者执行决定
  • 标题: 数据库期末知识点总结
  • 作者: jkm
  • 创建于 : 2024-08-24 20:40:00
  • 更新于 : 2024-08-26 23:59:07
  • 链接: https://goldenkm.github.io/2024/08/24/Database-KnowLedge/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
此页目录
数据库期末知识点总结