【软件设计师自学笔记】数据库系统

本文概述了数据库设计的基本过程,包括ER模式、关系代数、规范化理论和并发控制等核心概念。讨论了数据库的三级模式及其功能,强调了数据库完整性和分布式数据库的重要性。此外,还介绍了数据仓库和数据挖掘在大数据环境中的作用。
摘要由CSDN通过智能技术生成

大纲

  • 数据库模式 ER模式
  • 关系代数与元组演算
  • 规范化理论 并发控制
  • 数据库完整性约束
  • 分布式数据库
  • 数据仓库与数据挖掘

三级模式 - 两级映射

在这里插入图片描述

  1. ——》考频:经常考
  2. 各级功能:
    1)、物理数据库:是一个文件
    2)、内模式:与物理级数据库直接关联,功能:如何存储一系列的数据,以什么格式去存储
    3)、概念模式:对应数据库中的表
    4)、外模式:对应视图

数据库设计过程

在这里插入图片描述

  1. ——》考点:数据库的设计过程是怎么走下来的,每个阶段有不同的产出物

E-R模型

在这里插入图片描述

  1. 因为学生可以选择多个课程,课程可以被多个学生选择,所以是多对多的关系
    一方对于另一方是 : 一对多 ; 而另一方对一方也同时是:一对多;所以两者结合起来是多对多的关系
  2. 局部的E-R图 合成 全局的E- R图的两种方式
    1)、多个局部E-R图一次集成
    2)、逐步集成,用累加的方式一次集成两个局部E-R ,再与第三个局部E-R合并起来(耗时大,不容易出错)
  3. 冲突和解决方法:
    在这里插入图片描述

1)、属性冲突:
2)、命名冲突:
3)、结构冲突:在一个系统中,老师是一个完整的表,在另一个系统中,老师是一个字段

  1. E-R模型转关系模式需要注意什么
    在这里插入图片描述
  • 转换原则
    1)、一个实体转换为一个模式(不同联系之间转换也存在着差异)
    (1)、1 :1 ——> 将A转换为一个关系;将B转化为一个关系;将联系可以转换为一个单独的关系模式,也可以归并到直连的两端中,形成一个关系模式
    (2)、1 :n ——> 将实体A、B分别转换成一个关系模式;将联系单独转换成一个关系模式;也可以将联系归并到多的实体这边
    (3)、n :m ——> 将两端的实体转换为单独的关系模式,必须将联系转换为单独的关系模式,至少转成三个关系模式
    2)、三个实体间的一个多元联系
  • ——》注意:即使一个联系跟多个实体相连,也不需要转换为多个关系模式,只需要转换成一个关系模式,即可

关系代数

  1. ——》考点:主要出现在综合知识题中,以选择题的形式出现;
    (1)给出一个关系代数表达式判断是否等于另一个关系代数表达式;
    (2)给出一个场景,给出一些职能,让写出关系代数表达式

    (3)重点考察:笛卡尔积和连接
  2. 运算
    在这里插入图片描述

在这里插入图片描述

  • 并:将两边的内容合在一起,并且相同的内容只显示一次

  • 交:将公共部分显示出来,形成一个新的关系

  • 差:我有的,你没有(只属于前者,不属于后者)

  • 笛卡尔积:属性个数 = 关系1属性个数 + 关系2属性个数 ; 记录个数 = 属性1记录数 x 属性1记录数

  • 投影:选择特定列

  • 选择:选择特定行
    ——》注意:T【pai】1,2(S1) :1,2表示第一列和第二列

  • 连接
    1)、连接的符号下一般有连接条件,如果没有则为自然连接(从两个表中找共有的属性中选择相同的值)
    2)、只保留选择的条件的属性(只有一列),后面跟上(前面表的剩下属性 + 后面表的剩下属性)
    3)、复合运算
    在这里插入图片描述
    (1)、投影-连接:因为连接会去重,所以要得到右边表所示的结果,选择列为1,2,4
    (2)、投影-笛卡尔积:因为笛卡尔积不会去重,只会选择最前面的一个,所以选择列为,1,2,5

规范化理论 - 函数依赖

  1. f(x)=x2 ——> 当x=1时,可以确定y=1即x—>y,而且是函数确定,所以这是一种依赖关系
  2. 反过来,当 y = 1 时,x= ± 1,y 对应两个 x,所以不能确定x的值,所以不存在依赖关系 (不能得到唯一值)
  3. 学号是唯一的,可以确认姓名;而姓名可能出现同名,不能确定学号,所以学号——>姓名存在依赖关系
  4. 特殊形式(泛式)
    1)、部分函数依赖:两个属性组成主键,可以确定一个属性的值;组合主键中的某一部分,可以确定,这就是部分函数依赖
    2)、传递函数依赖:A—>B—>C,A—>C

规范化理论 - 价值与用途

在这里插入图片描述

  1. ——》考频:非常重要
  2. 出现问题:
    1)、数据冗余:同一个信息在表中出现多遍
    2)、更新异常:因为数据冗余,一旦冗余数据需要修改,出现修改不完全,出现遗漏的情况,造成数据不一致,称更新异常
    3)、插入异常:
    4)、删除异常:不该删的,把它删掉了
    ——》注意:规范化的价值是解决上面出现的问题,但不是必须的,也会存在问题;所以会存在逆规范化的必要

规范化理论 - 键

  1. ——》考点:
    1)、什么是候选键,候选键怎么求;
    2)、候选键与主键的关系
    3)、外键是什么
  2. 键定义:
    在这里插入图片描述

1)、超键:唯一标识元组(一个或多个属性),与候选键的区别,是可以存在冗余属性,消除多余属性后,可以转换为候选键
(学号,姓名)——> 性别 ,(学号,姓名)可以成为超键,但不能称为候选键
冗余属性:没你也能确定其它属性的附加属性,成为冗余属性
2)、候选键:(每个候选键都可以成为主键,但是只能选择其中一个
与主键的区别:候选键可以有多个,主键只能有一个
学号和身份证号,都能唯一确定学生的名字,但是只能选择其中一个,所以学号和身份证号为候选键,选择的其中一个主键
3)、外键

规范化理论 - 求候选键

规范化理论 - 求候选键实例在这里插入图片描述

  1. 图示法解题步骤:
  • 步骤一:将 关系模式——> 图形形式
  • 步骤二:找出入度为0的节点
    1)、入度:被——>指着的节点
    2)、出度:放箭头出去的节点——>
  • 步骤三:尝试从一个节点出发,遍历整个图(走完所有节点)
  1. 例题1
    在这里插入图片描述
  • 如果能遍历完,就是候选节点
  1. 例题2
    在这里插入图片描述
  • ABD—>E:ABD的线汇成一个箭头指向E
  • ABCD组成一个组合键才能走完
  1. 例题3
    在这里插入图片描述
  • 如果没有找到入度为0的节点,就找中间节点(既有入度又有出度)

规范化理论 - 范式

在这里插入图片描述

  1. 范式级别越高,拆分得越细,带来性能问题
  2. 第一范式级别最低,依次增加;要达到第二级别范式,首先要达到第一级别范式;其它也如此

规范化理论 - 第一范式

在这里插入图片描述

  1. 消除掉 -高级职称人数- 属性即可

规范化理论 - 第二范式

在这里插入图片描述

  1. 是否存在部分依赖:CNO ——> CREDIT ;单一个候选键就能确定一个属性,所以存在部分依赖
  2. 解决办法:
    1)、将存在部分依赖的这两个字段提取出来,形成新的关系模式;
    2)、在原来的关系模式中删除 CREDIT 这一列;不能删 CNO 这一列,因为要作为新关系模式的外键

规范化理论 - 第三范式

在这里插入图片描述

  1. 因为 主键 只有一个,所以不存在部分依赖,且没有再可分属性,所以符合第一、第二范式
  2. 非主属性存在传递依赖,LOCATION—>DNAME—>DNO
  3. 解决办法:将DNO、DNAME、LOCATION提取出来,作为新的关系模式;原来的关系模式中的LOCTION、DNAME删掉,留DNO做新关系模式的主键

规范化理论 - BC范式

  1. 从概念上理解即可
  2. ——》注意:单独的S不能到达T,只能SJ组合成组合键才能到达T,SJ也可以
  3. 步骤
    1)、先将所有的候选键,写出来
    2)、将所有的函数依赖关系写出来
    3)、判断函数依赖左边的键,是否为候选键
  4. 将所有函数依赖写出来,左边必须是候选键,因为左边的候选键是决定因素
  5. 【SJ】 —> T :SJ是候选键;【T】—> J :T 不是候选键,所以不符合BC范式

规范化理论 - 例题

在这里插入图片描述

  1. 因为大多数都是以号码作为主键,所以在表1中,是以部门号作为主键,所以不存在部分函数依赖
  2. 因为没有看出表1和表3的关系,所以在表3中增加部门号
  3. 因为职工号与部门口,建立了关联,所以不需要部门号,排除CD
  4. 商品名称是冗余属性,因为通过商品号可以查到商品名称,所以排除B

规范化理论 - 模式分解

  1. 当范式级别不够的时候,通过拆分关系模式来提升范式级别
  2. 保持函数依赖的分解:分解之前有哪些函数依赖,分解之后这些函数依赖依然存在
  3. A和B在同一个关系模式中,B和C在同一关系模式中,所以是保持函数依赖分解;所以保持函数依赖分解的方法是:存在函数依赖的属性,存在于一个关系模式中,冗余的可以不保留,比如:A—>C,因为A —> B,B —> C就可以推出 A —> C
    在这里插入图片描述
  4. 无损分解
    1)、无损:
    2)、有损:不能还原到原始文件

规范化理论 - 模式分解 - 例题讲解

在这里插入图片描述

  1. 成绩关系:通过 学号链接到 学生关系模式,将 姓名 添加到 成绩关系模式
  2. 通过课程号成绩关系课程关系链接起来,所以可以将课程名添加到课程关系后面
  3. 用列表方法
  • 完成初始表
    1)、做什么事:尝试将分解的表链接起来
    2)、将属性列在第一列;将分解出来的表,放在左边
    3)、a1:a—>有这个属性,1—>第一个属性;b12:b—>没有拥有这个属性,12—>第一行第二列
    4)、完成初始表
    在这里插入图片描述
  • 通过完整的依赖关系,将缺失的一个补上
    在这里插入图片描述
  • 当一行中,全部出现a,说明是无损链接分解
    在这里插入图片描述
  1. 只适合分解成两个的分解
    在这里插入图片描述

1)、因为R1(AB)、R2(AC)
2)、R1 交 R2 = A
3)、又因为R1 - R2 = B ; R2 - R1 = C
4)、所以有 A —> B ,符合题目给的依赖关系,属于无损分解

并发控制 - 基本概念

在这里插入图片描述

  1. 并发是怎么回事,并发产生的问题,解决方案
  2. 事务:将一系列的操作看作一个整体
    1)、一致状态:能量守恒定律
    2)、独立进行,互不影响
  3. 存在问题
    1)、丢失更新:A=A-8会将A=A-5覆盖掉
    2)、不可重复读:再读一次跟上次的结果不一致
    3)、脏数据:不是真正的数据,不是执行产生的结果值,知识个临时值

并发控制 - 封锁协议

在这里插入图片描述

  1. S锁(读锁):读锁加上只能够再加读锁,不能加写锁
  2. X锁(写锁):写锁加上后,无论是写锁还是读锁都不能加

数据库完整性约束

在这里插入图片描述

  1. 三种约束(只能应对简单情况,复杂的情况不能应对)
  • 实体完整性约束:使用数据库的时候,给数据表定义主键,通过这一个动作来完成
    —>实体完整性约束,约束的是主键,主键的值不能为空,不能重复,标准体制
  • 参照完整性约束:指 外键 的完整性约束,你在外键填入的内容,必须是参照表(也就是外键作为主键的表)里面的内容,否则出错,允许为空
  • 用户自定义完整性约束:用户自定义属性值的要求,0<=x<=100
  • 功能:提高数据完整性、可靠性
  1. 触发器(复杂情况):使用脚本来约束,数据库数据的一些要求

数据库安全

在这里插入图片描述

  1. 用户标识和鉴定(身份验证)

数据备份

  1. 依据备份方式
    在这里插入图片描述
  2. 依据备份的量
    1)、增量恢复:必须逐个恢复上一个的量才能恢复这次的
    2)、差量恢复:直接跳过中间的增量恢复部分,到周日(上一次)的完全备份的时候
  3. 转储:备份 ; 海量:全部备份
    在这里插入图片描述

数据库故障与恢复

在这里插入图片描述

数据仓库与数据挖掘

  1. 数据仓库:
    1)、
  2. 数据挖掘:
  3. 数据集市:部门级数据仓库—>企业级数据仓库
    在这里插入图片描述

数据挖掘方法分类

在这里插入图片描述

  1. 聚类:由个体的共性,集合成一个一个大的类别

反规范化

在这里插入图片描述

大数据

在这里插入图片描述

  1. 特点:数据量大,速度快,多样性复杂,价值高

在这里插入图片描述

  1. 大数据:数据极大,关系极其复杂
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值