F_JustWei's Studio.

数据库系统

字数统计: 2.9k阅读时长: 10 min
2021/05/19 9 Share

数据库系统

三级模式 - 两级映射

image-20210309135333705

数据库设计过程

image-20210309220913852

E-R模型

image-20210309221210852

  • 椭圆表示属性

  • 矩形表示实体

  • 菱形表示联系

集成的方法:

  • 多个局部 E-R 图一次集成。
  • 逐步集成,用累加的方式一次集成两个局部 E-R 。

集成产生的冲突及解决办法:

  • 属性冲突:包括属性域冲突和属性取值冲突。
  • 命名冲突:包括同名异义和异名同义。
  • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。

一个实体型转换为一个关系模式

  • 1: 1 联系至少转换为 2 个关系模式(有2个实体型,转换为 2 个关系模式)
  • 1: n 联系至少转换为 2 个关系模式(有2个实体型,转换为 2 个关系模式)
  • m: n 联系至少转换为 3 个关系模式(有2个实体型,转换为 2 个关系模式。有 1 个多对多联系,转换为 1 个关系模式。所以有三个关系模式)

三个以上实体间的一个多元联系

image-20210525222113995

有3个实体型,故转换为3个关系模式。

有1个多对多联系,故转换为1个关系模式。

所以最少转化为4个关系模式。

关系代数

image-20210309223732624

  • 并(合并,重复的值只出现一次)

image-20210525222146198

  • 交(找公共部分)

image-20210309223813959

  • 差(去掉公共部分)

    image-20210309223123000

  • 笛卡尔积

image-20210309223839913

  • 投影(选列)(sno可以用1代替,依次类推)

image-20210309223848999

  • 选择(选行)(sno可以用1代替,依次类推)

image-20210309223858046

  • 联接

image-20210309223637455

规范化理论

函数依赖

设 R(U) 是属性 U 上的一个关系模式,X 和 Y 是 U 的子集,r 为 R 的任一关系,如果对于 r 中的任意两个元组 u,v ,只要有 u[X] = v[X],就有 u[Y] = v[y],则称 X 函数决定 Y ,或称 Y 函数依赖于 X ,记为 X → Y。

image-20210310114711170

  • 部分函数依赖:设 X,Y 是关系 R 的两个属性集合,存在 X → Y,若 X’ 是 X 的真子集,存在 X ’→ Y,则称 Y 部分函数依赖于 X。

    例:学生基本信息表 R 中(学号,身份证号,姓名)当然学号属性取值是唯一的,在 R 关系中,(学号,身份证号)->(姓名),(学号)->(姓名),(身份证号)->(姓名);所以姓名部分函数依赖与(学号,身份证号)。

  • 完全函数依赖:设 X, Y是关系 R 的两个属性集合,X’ 是 X 的真子集,存在 X → Y,但对每一个 X’都有 X’! → Y,则称 Y 完全函数依赖于 X。

    例:学生基本信息表R(学号,班级,姓名)假设不同的班级学号有相同的,班级内学号不能相同,在R关系中,(学号,班级)->(姓名),但是(学号)->(姓名)不成立,(班级)->(姓名)不成立,所以姓名完全函数依赖与(学号,班级)。

  • 传递函数依赖:设 X,Y,Z 是关系 R 中互不相同的属性集合,存在 X→Y (Y !→X), Y→Z,则称 Z 传递函数依赖于 X。

    例子:在关系 R (学号 ,宿舍, 费用)中,(学号)->(宿舍), 宿舍 != 学号,(宿舍) -> (费用),费用 != 宿舍,所以符合传递函数的要求。

价值与用途

非规范化的关系模式,可能存在的问题包括:数据冗余、更新异常、插入异常、删除异常。

image-20210310120107697

超键:唯一标识元组(可能存在多余属性)(一般不考)

候选键:唯一标识元组(已消除多余属性)

主键:任选一个候选键

外键:其他关系的主键

求候选键

  • 将关系模式的函数依赖关系用”有向图”的方式表示。
  • 找入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键。
  • 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一-些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键。

例题1:给定关系R(A1, A2, A3, A4) 上的函数依赖集F={A1→A2,A3→A2, A2→A3, A2→A4}, R的候选关键字为
==A. A1== B. A1A3 C. A1A3A4 D. A1A2A3

image-20210310121247557

例题2:关系模式P(A,B,C,D,E,F,G,H,I,J)满足下列函数依赖: FD={ABD→E, AB→G, B→F, C→J, CJ→I,G→H},求候选码?(ABD→E:ABD的组合键确定E(不等于A→E,B→E,D→E))

==ABCD==

image-20210310121414849

例题3:关系R (A, B, C)满足下列函数依赖:F {B→C,B→A, A→BC},关系R的候选关键字为?
A. AB ==B. A和B== C. A和BC D. AC和AB

image-20210310121528652

范式

image-20210310122321791

主属性:属于候选键的一部分。

非主属性:不属于候选键的一部分。

第一范式(1NF) :在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称R是第一范式。

例题:下表所示的关系R是否满足1NF,如果不满足,应如何调整?

image-20210310122724500

调整后:

系名称 教授 副教授
计算机系 6 10
电子系 3 5

第二范式(2NF) :当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,则称R是第二范式。

思考题:请思考该关系模式会存在哪些问题(从数据冗余、更新异常、插入异常、删除异常这几个方面来考虑),解决方案是什么?

image-20210310123056260

SNO:学号 CNO:课程号 GRADE:成绩 CREDIT:绩点

拆分为两个表(简略):

  • 表1
SNO CNO GRADE
S01 C01 75
S02 C01 92
  • 表2
CNO CREDIT
C01 4
C02 2

第三范式(3NF) :当且仅当R是1NF,且E中没有非主属性传递依赖于主键时,则称R是第三范式。

思考题:请思考该关系模式会存在哪些问题(从数据冗余、更新异常、插入异常、删除异常这几个方面来考虑),解决方案是什么?

image-20210310123901619

拆分为两个表(简略):

  • 表1
SNO SName DNO
S01 张三 D01
S02 李四 D01
  • 表2
CNO DNAME LOCATION
D01 计算机系 1号楼
D02 信息系 2号楼

BC范式(BCNF) :设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选码。

image-20210310211839598

==C D A==

模式分解

  • 保持函数依赖分解

设数据库模式ρ={R1, R2,…,Rk}是关系模式R的一个分解,F是R上的函数依赖集,ρ 中每个模式Ri上的FD集是Fi。如果{F1, F2,…,Fk} 与F是等价的(即相互逻辑蕴涵),那么称分解ρ保持FD。

  • 无损分解

什么是有损,什么又是无损?
有损:不能还原。

无损:可以还原。

无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。

思考题:

有关系模式:成绩(学号,姓名,课程号,课程名,分数)
函数依赖:学号→姓名,课程号→课程名,(学号,课程号)→分数
若将其分解为:
成绩(学号,课程号,分数)
学生(学号,姓名)
课程(课程号,课程名)

请思考该分解是否为无损分解?

由于有:学号→姓名,所以:
成绩(学号,课程号,分数,姓名)
由于有:课程号→课程名,所以:
成绩(学号,课程号,分数,姓名,课程名)

image-20210310214301261

image-20210310214532328

image-20210310214612915

并发控制

基本概念

image-20210311092636812

存在的问题

image-20210311092942335

封锁协议

  • 一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。==可防止丢失修改==
  • 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。==可防止丢失修改,还可防止读“脏”数据==
  • 三级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。==可防止丢失修改、防止读“脏”数据与防止数据重复读==
  • 两段锁协议。可串行化的。可能发生死锁

数据库完整性约束

  • 实体完整性约束
  • 参照完整性约束
  • 用户自定义完整性约束
  • 触发器

数据库安全

image-20210311094008389

数据备份

  • 冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份下来。
  • 热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。

image-20210311094312726

  • 完全备份:备份所有数据
  • 差量备份:备份上一次完全备份之后变化的数据
  • 增量备份:备份上一次备份之后变化的数据
星期一 星期二 星期三 星期四
完全备份 增量备份 增量备份 差量备份
备份星期一备份之后变化的数据 备份星期一备份之后变化的数据
备份星期二备份之后变化的数据
备份星期一备份之后变化的数据
  1. 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
  2. 静态增量转储:在系统中无运行事务时进行,每次只转储上一 次转储后更新过的数据。
  3. 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
  4. 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据。

日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。

数据库故障与恢复

image-20210311100024791

数据仓库与数据挖掘

  • 面向主题
  • 集成的
  • 相对稳定的(非易失的)
  • 反映历史变化(随着时间变化)

image-20210311144031024

数据挖掘方法:

  • 决策树
  • 神经网络
  • 遗传算法
  • 关联规则挖掘算法

数据挖掘方法分类:

  • 关联分析:挖掘出隐藏在数据间的相互关系。
  • 序列模式分析:侧重点是分析数据间的前后关系(因果关系)。
  • 分类分析:为每一个记录赋予-个标记再按标记分类。
  • 聚类分析:分类分析法的逆过程。

反规范化

由于规范化会使表不断的拆分,从而导致数据表过多。这样虽然减少了数据冗余,提高了增、删、改的速度,但会增加查询的工作量。系统需要进行多次连接,才能进行查询操作,使得系统效率大大下降。

技术手段:

  • 增加派生性冗余列
  • 增加冗余列
  • 重新组表
  • 分割表

大数据

image-20210311145310170

image-20210311145610400

大数据处理系统应该具有的重要特征:

  • 高度可扩展性
  • 高性能
  • 高度容错
  • 支持异构环境
  • 较短的分析延迟
  • 易用且开放的接口
  • 较低成本
  • 向下兼容性
CATALOG
  1. 1. 数据库系统