大纲
- 数据库模式 ER模式
- 关系代数与元组演算
- 规范化理论 并发控制
- 数据库完整性约束
- 分布式数据库
- 数据仓库与数据挖掘
三级模式 - 两级映射
- ——》考频:经常考
- 各级功能:
1)、物理数据库:是一个文件
2)、内模式:与物理级数据库直接关联,功能:如何存储一系列的数据,以什么格式去存储
3)、概念模式:对应数据库中的表
4)、外模式:对应视图
数据库设计过程
- ——》考点:数据库的设计过程是怎么走下来的,每个阶段有不同的产出物
E-R模型
- 因为学生可以选择多个课程,课程可以被多个学生选择,所以是多对多的关系
一方对于另一方是 : 一对多 ; 而另一方对一方也同时是:一对多;所以两者结合起来是多对多的关系 - 局部的E-R图 合成 全局的E- R图的两种方式
1)、多个局部E-R图一次集成
2)、逐步集成,用累加的方式一次集成两个局部E-R ,再与第三个局部E-R合并起来(耗时大,不容易出错) - 冲突和解决方法:
1)、属性冲突:
2)、命名冲突:
3)、结构冲突:在一个系统中,老师是一个完整的表,在另一个系统中,老师是一个字段
- E-R模型转关系模式需要注意什么
- 转换原则
1)、一个实体转换为一个模式(不同联系之间转换也存在着差异)
(1)、1 :1 ——> 将A转换为一个关系;将B转化为一个关系;将联系可以转换为一个单独的关系模式,也可以归并到直连的两端中,形成一个关系模式
(2)、1 :n ——> 将实体A、B分别转换成一个关系模式;将联系单独转换成一个关系模式;也可以将联系归并到多的实体这边
(3)、n :m ——> 将两端的实体转换为单独的关系模式,必须将联系转换为单独的关系模式,至少转成三个关系模式
2)、三个实体间的一个多元联系 - ——》注意:即使一个联系跟多个实体相连,也不需要转换为多个关系模式,只需要转换成一个关系模式,即可
关系代数
- ——》考点:主要出现在综合知识题中,以选择题的形式出现;
(1)给出一个关系代数表达式判断是否等于另一个关系代数表达式;
(2)给出一个场景,给出一些职能,让写出关系代数表达式
(3)重点考察:笛卡尔积和连接 - 运算
-
并:将两边的内容合在一起,并且相同的内容只显示一次
-
交:将公共部分显示出来,形成一个新的关系
-
差:我有的,你没有(只属于前者,不属于后者)
-
笛卡尔积:属性个数 = 关系1属性个数 + 关系2属性个数 ; 记录个数 = 属性1记录数 x 属性1记录数
-
投影:选择特定列
-
选择:选择特定行
——》注意:T【pai】1,2(S1) :1,2表示第一列和第二列 -
连接
1)、连接的符号下一般有连接条件,如果没有则为自然连接(从两个表中找共有的属性中选择相同的值)
2)、只保留选择的条件的属性(只有一列),后面跟上(前面表的剩下属性 + 后面表的剩下属性)
3)、复合运算
(1)、投影-连接:因为连接会去重,所以要得到右边表所示的结果,选择列为1,2,4
(2)、投影-笛卡尔积:因为笛卡尔积不会去重,只会选择最前面的一个,所以选择列为,1,2,5
规范化理论 - 函数依赖
- f(x)=x2 ——> 当x=1时,可以确定y=1即x—>y,而且是函数确定,所以这是一种依赖关系
- 反过来,当 y = 1 时,x= ± 1,y 对应两个 x,所以不能确定x的值,所以不存在依赖关系 (不能得到唯一值)
- 学号是唯一的,可以确认姓名;而姓名可能出现同名,不能确定学号,所以学号——>姓名存在依赖关系
- 特殊形式(泛式)
1)、部分函数依赖:两个属性组成主键,可以确定一个属性的值;组合主键中的某一部分,可以确定,这就是部分函数依赖
2)、传递函数依赖:A—>B—>C,A—>C
规范化理论 - 价值与用途
- ——》考频:非常重要
- 出现问题:
1)、数据冗余:同一个信息在表中出现多遍
2)、更新异常:因为数据冗余,一旦冗余数据需要修改,出现修改不完全,出现遗漏的情况,造成数据不一致,称更新异常
3)、插入异常:
4)、删除异常:不该删的,把它删掉了
——》注意:规范化的价值是解决上面出现的问题,但不是必须的,也会存在问题;所以会存在逆规范化的必要
规范化理论 - 键
- ——》考点:
1)、什么是候选键,候选键怎么求;
2)、候选键与主键的关系
3)、外键是什么 - 键定义:
1)、超键:唯一标识元组(一个或多个属性),与候选键的区别,是可以存在冗余属性,消除多余属性后,可以转换为候选键
(学号,姓名)——> 性别 ,(学号,姓名)可以成为超键,但不能称为候选键
冗余属性:没你也能确定其它属性的附加属性,成为冗余属性
2)、候选键:(每个候选键都可以成为主键,但是只能选择其中一个)
与主键的区别:候选键可以有多个,主键只能有一个
学号和身份证号,都能唯一确定学生的名字,但是只能选择其中一个,所以学号和身份证号为候选键,选择的其中一个为主键
3)、外键
规范化理论 - 求候选键
规范化理论 - 求候选键实例![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2fc05a4acd0f5d3a17d89bc1b98f25ef.png#pic_center)
- 图示法解题步骤:
- 步骤一:将 关系模式——> 图形形式
- 步骤二:找出入度为0的节点
1)、入度:被——>指着的节点
2)、出度:放箭头出去的节点——> - 步骤三:尝试从一个节点出发,遍历整个图(走完所有节点)
- 例题1
- 如果能遍历完,就是候选节点
- 例题2
- ABD—>E:ABD的线汇成一个箭头指向E
- ABCD组成一个组合键才能走完
- 例题3
- 如果没有找到入度为0的节点,就找中间节点(既有入度又有出度)
规范化理论 - 范式
- 范式级别越高,拆分得越细,带来性能问题
- 第一范式级别最低,依次增加;要达到第二级别范式,首先要达到第一级别范式;其它也如此
规范化理论 - 第一范式
- 消除掉 -高级职称人数- 属性即可
规范化理论 - 第二范式
- 是否存在部分依赖:CNO ——> CREDIT ;单一个候选键就能确定一个属性,所以存在部分依赖
- 解决办法:
1)、将存在部分依赖的这两个字段提取出来,形成新的关系模式;
2)、在原来的关系模式中删除 CREDIT 这一列;不能删 CNO 这一列,因为要作为新关系模式的外键
规范化理论 - 第三范式
- 因为 主键 只有一个,所以不存在部分依赖,且没有再可分属性,所以符合第一、第二范式
- 非主属性存在传递依赖,LOCATION—>DNAME—>DNO
- 解决办法:将DNO、DNAME、LOCATION提取出来,作为新的关系模式;原来的关系模式中的LOCTION、DNAME删掉,留DNO做新关系模式的主键
规范化理论 - BC范式
- 从概念上理解即可
- ——》注意:单独的S不能到达T,只能SJ组合成组合键才能到达T,SJ也可以
- 步骤
1)、先将所有的候选键,写出来
2)、将所有的函数依赖关系写出来
3)、判断函数依赖左边的键,是否为候选键 - 将所有函数依赖写出来,左边必须是候选键,因为左边的候选键是决定因素
- 【SJ】 —> T :SJ是候选键;【T】—> J :T 不是候选键,所以不符合BC范式
规范化理论 - 例题
- 因为大多数都是以号码作为主键,所以在表1中,是以部门号作为主键,所以不存在部分函数依赖
- 因为没有看出表1和表3的关系,所以在表3中增加部门号
- 因为职工号与部门口,建立了关联,所以不需要部门号,排除CD
- 商品名称是冗余属性,因为通过商品号可以查到商品名称,所以排除B
规范化理论 - 模式分解
- 当范式级别不够的时候,通过拆分关系模式来提升范式级别
- 保持函数依赖的分解:分解之前有哪些函数依赖,分解之后这些函数依赖依然存在
- A和B在同一个关系模式中,B和C在同一关系模式中,所以是保持函数依赖分解;所以保持函数依赖分解的方法是:存在函数依赖的属性,存在于一个关系模式中,冗余的可以不保留,比如:A—>C,因为A —> B,B —> C就可以推出 A —> C
- 无损分解
1)、无损:
2)、有损:不能还原到原始文件
规范化理论 - 模式分解 - 例题讲解
- 成绩关系:通过 学号链接到 学生关系模式,将 姓名 添加到 成绩关系模式 中
- 通过课程号将成绩关系和课程关系链接起来,所以可以将课程名添加到课程关系后面
- 用列表方法
- 完成初始表
1)、做什么事:尝试将分解的表链接起来
2)、将属性列在第一列;将分解出来的表,放在左边
3)、a1:a—>有这个属性,1—>第一个属性;b12:b—>没有拥有这个属性,12—>第一行第二列
4)、完成初始表
- 通过完整的依赖关系,将缺失的一个补上
- 当一行中,全部出现a,说明是无损链接分解
- 只适合分解成两个的分解
1)、因为R1(AB)、R2(AC)
2)、R1 交 R2 = A
3)、又因为R1 - R2 = B ; R2 - R1 = C
4)、所以有 A —> B ,符合题目给的依赖关系,属于无损分解
并发控制 - 基本概念
- 并发是怎么回事,并发产生的问题,解决方案
- 事务:将一系列的操作看作一个整体
1)、一致状态:能量守恒定律
2)、独立进行,互不影响 - 存在问题
1)、丢失更新:A=A-8会将A=A-5覆盖掉
2)、不可重复读:再读一次跟上次的结果不一致
3)、脏数据:不是真正的数据,不是执行产生的结果值,知识个临时值
并发控制 - 封锁协议
- S锁(读锁):读锁加上只能够再加读锁,不能加写锁
- X锁(写锁):写锁加上后,无论是写锁还是读锁都不能加
数据库完整性约束
- 三种约束(只能应对简单情况,复杂的情况不能应对)
- 实体完整性约束:使用数据库的时候,给数据表定义主键,通过这一个动作来完成
—>实体完整性约束,约束的是主键,主键的值不能为空,不能重复,标准体制 - 参照完整性约束:指 外键 的完整性约束,你在外键填入的内容,必须是参照表(也就是外键作为主键的表)里面的内容,否则出错,允许为空
- 用户自定义完整性约束:用户自定义属性值的要求,0<=x<=100
- 功能:提高数据完整性、可靠性
- 触发器(复杂情况):使用脚本来约束,数据库数据的一些要求
数据库安全
- 用户标识和鉴定(身份验证)
数据备份
- 依据备份方式
- 依据备份的量
1)、增量恢复:必须逐个恢复上一个的量才能恢复这次的
2)、差量恢复:直接跳过中间的增量恢复部分,到周日(上一次)的完全备份的时候 - 转储:备份 ; 海量:全部备份
数据库故障与恢复
数据仓库与数据挖掘
- 数据仓库:
1)、 - 数据挖掘:
- 数据集市:部门级数据仓库—>企业级数据仓库
数据挖掘方法分类
- 聚类:由个体的共性,集合成一个一个大的类别
反规范化
大数据
- 特点:数据量大,速度快,多样性复杂,价值高
- 大数据:数据极大,关系极其复杂