第三章:数据库系统(软件设计师备考)


第一节:三级模式——两级映射

外模式:

外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。

概念模式

概念模式又称模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。

内模式:

内模式又称存储模式,对应于物理级。它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。

两级映像:保证了逻辑独立性和物理独立性

外模式/模式映像:

外模式/模式映像保证了当模式改变时,外模式不用变——逻辑独立性。

模式/内模式映像:

模式/内模式映像保证了当内模式改变时,模式不用变——物理独立性。

image-20210926095024883

第二节:数据库设计过程

image-20210926100358372

第三节:E-R模型

image-20210926100656694

方框——实体;椭圆——属性;菱形——关系;M-N——多对多

我们在绘制数据库的ER图时,常常从局部开始绘制,然后将许多局部的ER图合成位全局的ER图,而局部的ER图合成全局的ER图时可以有两种方式:逐步集成和一次集成。

集成的方法:

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

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

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

E-R模型转关系模式:

  1. 一个实体转换为一个关系模式(1-1联系,至少转成2个关系模式;1-n联系,至少转成2个关系模式;m-n联系,至少转成3个关系模式)

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

    image-20210926102619416

    解题思路:每个实体转为一个关系模式,多对多的关系转为一个关系模式。

    答案:C

第四节:关系代数

  1. 并、交、差

    image-20210926103421446
  2. 笛卡尔积、投影、选择

    image-20210926103744918
  3. 连接(默认为自然连接,即连接两关系中的相同字段,并取消重复列)

    image-20210926104336649

第五节:规范化理论

1. 函数依赖

设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。

举例:在一张学生表中,学号相等的两个元组,姓名一定相等,则称学号函数决定姓名,或姓名函数依赖于学号。

完全函数依赖:

成绩表(学号,课程号,成绩)关系中,(学号,课程号)→ 成绩,学号 -\→ 成绩,课程号 -\→ 成绩,所以(学号,课程号)→ 成绩 是完全函数依赖。

部分函数依赖:

学生表(学号,姓名,性别,班级,年龄)关系中,(学号,姓名)→ 性别,学号 → 性别,所以(学号,姓名)→ 性别 是部分函数依赖。

传递函数依赖:

关系S1(学号,系名,系主任),学号 → 系名,系名 → 系主任,并且系名 -\→ 学号,所以学号 → 系主任为传递函数依赖。

image-20210926111046897

2. 价值与用途

在非规范化的关系模式中,可能存在的问题包括:数据冗余,更新异常,插入异常,删除异常。由此提出了规范化理论。

3. 键

image-20210926112211899

4. 求候选键

步骤:

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

例题:

image-20210926113341189

5. 范式

image-20210929100739020
  1. 第一范式(1NF)

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

    image-20210929101951041

    未达到第一范式。

    解决方式:应去掉分量“高级职称人数”。

  2. 第二范式(2NF)

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

    image-20210929102123448

    credit由cno可以直接确定,存在部份函数依赖,故未达到第二范式。

    存在问题:数据冗余、更新异常、插入异常、删除异常。

    解决方式:将cno和credit拆分出来,形成新的表。

  3. 第三范式(3NF)

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

    image-20210929103437828

    达到第二范式,但存在传递函数依赖(sno → dname → location,dname –\→ sno)故未达到第三范式。

    存在问题:数据冗余、更新异常、插入异常、删除异常。

    解决方式:将dno、dname、location列拆分出来,形成新的表。

  4. BC范式(BCNF)

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

    image-20210929105017968

    判断是否为BCNF的思路:

    1. 判断主属性(候选键所包含的所有属性)和非主属性

      候选键:ST、SJ,故S、T、J都为主属性,故达到第三范式。

    2. 写出所有函数依赖,函数依赖左边即为决定因素

      SJ → T;T → J,由于T不是候选码,故R不是BC范式。

6. 模式分解

  1. 保持函数依赖分解

    分解之前存在的函数依赖,分解之后仍然存在,冗余的函数依赖不需要保存(例如A→B,B→C,A→C,其中冗余的函数依赖A→C不需要保存)。

  2. 无损分解

    有损:分解之后不能还原

    无损:分解之后可以还原

    判别无损分解的方法:

    1. 自行判断

      image-20210929123810480
    2. 表格法

      image-20210929123900743

      初始表中各参数含义:

      第一行:在原关系中所拥有的一系列属性

      第一列:需要拆分成的关系模式(上图需要拆分成成绩、学生和课程三个关系模式)

      a:拆分后的关系拥有对应的属性(a1代表成绩关系中拥有学号这一属性,a1的下标1,代表学号这一列是第一列)

      b:拆分后的关系没有包含对应的字段(b12代表成绩关系中没有姓名这一属性,b12的下标12,代表姓名当前分量在第一行第二列)

      判别步骤:

      1. 画出初始表

      2. 修改初始表

        若初始表中学生拥有学号,学生拥有姓名,成绩也拥有学号,则将b12改为a2(学生表中的姓名和成绩表中的姓名通过学号连接)

        同理,将b14改为a4(成绩表中的课程名和课程表中的课程名通过课程号连接)

      3. 修改后的初始表,假设有一行全部是a,则为无损分解。反之,为有损分解。

    3. 适用于一分为二的判别法

      方法:

      如果将R分级为{R1,R2},若满足R1∩R2→(R1-R2)或R1∩R2→(R2-R1)其中之一,则为无损分解。

      举例:

      image-20210929130503533

第六节:并发控制

事务:

事务是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。

事务的性质:

  1. 原子性:事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。
  2. 一致性:几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
  3. 隔离性:事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
  4. 持久性:对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障

并发产生的问题:

image-20211002161159742

为了解决并发产生的问题,我们提出了封锁协议:

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

注意:读锁之上还可以加读锁,但不能加写锁。写锁之上不能加任何锁。

第七节:数据库完整性约束

数据库完整性约束包括:实体完整性约束、参照完整性约束和用户自定义完整性约束。

实体完整性约束:

在使用数据库时,给数据表定义主键,规定表的每一行在表中是惟一的实体。主键的值不能为空,不能重复。

参照完整性约束:

是指两个表的主关键字和外关键字的数据应一致。外键

用户自定义完整性约束:

用户自定义的,针对某个特定关系数据库的约束条件。

触发器:

设置更为复杂的约束需要设置触发器。

第八节:数据库安全

image-20211002164748762

第九节:数据备份

1. 冷备份与热备份

冷备份:

冷备份也称静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。

热备份:

热备份也成为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。

各自的优缺点:

image-20211002165514501

2. 三种备份形式

  1. 完全备份:备份所有数据。
  2. 差量备份:仅备份上一次完全备份之后变化的数据。
  3. 增量备份:备份上一次备份之后变化的数据。

3. 转储(也是一种备份)

  1. 静态海量转储:在系统中无运行事务时进行,每次转储全部数据库。
  2. 静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据。
  3. 动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库。
  4. 动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储更新过的数据。

4. 日志文件

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

第十节:数据库故障与恢复

image-20211002172557672

第十一节:数据仓库与数据挖掘

1. 数据仓库

数据仓库:

数据仓库是一种特殊的数据库。为了加快数据库系统的运行速度,我们通常需要删除许多历史数据,考虑到这些历史数据仍然具有一定价值,所以我们将这些数据存储在数据仓库中。

数据仓库的特点:

  1. 面向主题:数据仓库的数据是面向主题的。例如面向商品主题,我们就会把各个数据库中面向商品的数据抽取出来存入数据仓库。
  2. 集成的:数据仓库会存储例如月报表,周报表等集成式的数据。
  3. 相对稳定的(非易失的):存入的数据将不会进行修改,删除等操作。
  4. 反映历史变化(随着时间变化):隔一段时间会将新的数据导入进来

数据仓库的建立需要经历的阶段:

  1. 抽取相应信息、清理冗余数据(做数据格式的统一)、装载入数据仓库、定期刷新(添加新数据)。
  2. 创建数据集市:数据集市,也叫数据市场,数据集市就是满足特定的部门(企业中)或者用户的需求。
  3. OLAP:做分析处理工作
image-20211002174318949

2. 数据挖掘

数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。

数据挖掘的方法与分类:

方法:

  1. 决策树
  2. 神经网络
  3. 遗传算法
  4. 关联规则挖掘算法

分类:

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

第十二节:反规范化技术

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

技术手段:

  1. 增加派生性冗余列
  2. 增加冗余列
  3. 重新组表
  4. 分割表

第十三节:大数据

大数据,或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。

传统数据与大数据的比较:

image-20211002180534448

大数据应该具有的重要特征:

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

参考资料:https://www.bilibili.com/video/BV1rW411j7e7?p=42

猜你喜欢

转载自blog.csdn.net/weixin_45605541/article/details/120587895