当前位置: 首页 > news >正文

数据库知识汇总2

一. 范式

定义:范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式;
一个低一级范式的关系模式,通过模式分解(schema decomposition)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化
规范化的目的:减少数据冗余 ( minimal data redundancy )、消除异常(插入、删除和更新)。

确定关系属于第几范式,首先要确定函数依赖候选码
1NF:属性不能有多个值或者不能有重复的属性;(不能有多值属性
对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库
2NF:非主属性都完全函数依赖于任何一个候选码(最小的超码集合),没有部分函数依赖(子集不能决定)
(候选码指向每个非主属性)
3NF: 不存在传递函数依赖
BCNF:每个决定属性都包含候选码(超码)(只有两个属性的一定是BCNF
如果一个关系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消除了插入异常和删除异常。

最小函数依赖集Fmin

F中的函数依赖均不能由F中其他函数依赖导出,F中各函数依赖左部均为最小属性集(不存在冗余属性)。

Fmin求解过程:

  1. 用分解的法则,使F中的任何一个函数依赖的右部仅含有一个属性;(右边只能有一个属性)
  2. 去掉多余的函数依赖:从第一个函数依赖X→Y开始将其从F中去掉,然后在剩下的函数依赖中求X的闭包X+,看X+是否包含Y,若是,则去掉X→Y;否则不能去掉,依次做下去。直到找不到冗余的函数依赖;
  3. 去掉各依赖左部多余的属性。一个一个地检查函数依赖左部非单个属性的依赖。例如XY→A,若要判Y为多余的,则以X→A代替XY→A是否等价?若A (X)+,则Y是多余属性,可以去掉。

例子:

                                

LLJD:无损连接分解(依赖关系下的其他信息)
DPD:依赖保持分解(依赖关系本身)

LLJD-DPD-3NF算法:(两个关系均保持)
输入:关系模式 R,R 中的 FD F 集。
输出:无损联接和依赖项保留分解 D,使得 D 中的每个架构都在 3NF 中。
(1) 找到所有候选键;
(2) 计算 Fmin;
(3) 设 X->Ai, i=1,...,m,是 Fmin 中具有相同左侧 X 的所有 FD。创建一个关系模式 XUA1U...UAm .  如果 Am 不是现有关系架构的子架构,则为 D 中;
(4) 如果所有关系模式都不包含 R 的候选键,则使用候选键形成另一个关系模式。

例子:

                

找候选码的方法:(画图-->画表格)

如图画出图后,第一行是一定要的,候选码中一定要有的;第二行是一定不要的;如果第一行的组合能决定R中所有元素,那么该组合是唯一的候选码,否则则需要和第三行的元素进行组合,此时可能会有多个候选码。

LLJD-BCNF算法(只能保证一个关系模式):
输入:关系模式 R,R 中的一组 FD。
输出:无损联接分解 D,使得 D 中的每个新架构都在 BCNF 中。

 例子:

                

                

                

注意:每个范式都是针对一张表的,所以比如BCNF只需要该表的决定因素都是该表的候选码的超码即可。

http://www.lryc.cn/news/514769.html

相关文章:

  • CS·GO搬砖流程详细版
  • 《长寿养生报》是科普报刊吗?参与评选的科普作品需要注意什么?
  • React native 原生环境搭建(最新版本RN环境搭建,不是expo)
  • Unity Excel转Json编辑器工具
  • XML结构快捷转JSON结构API集成指南
  • 数据挖掘——支持向量机分类器
  • ImageNet 2.0?自动驾驶数据集迎来自动标注新时代
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之11 方案再探之2 项目文件(修改稿1)
  • 详解MySQL SQL删除(超详,7K,含实例与分析)
  • uniapp:跳转第三方地图
  • 深入浅出梯度下降算法:快速抵达函数最小值的方法
  • RWKV 语言模型
  • pycharm如何拉取一个git项目,然后,修改后再上传到自建的项目中?
  • Java 性能调优实战
  • ctfshow 每日练习 web 区 php特性 1-10
  • 《C++设计模式》单例模式
  • mapbox进阶,添加路径规划控件
  • 【论文阅读笔记】SCI算法与代码 | 低照度图像增强 | 2022.4.21
  • RAG实战:本地部署ragflow+ollama(linux)
  • 前路漫漫,曙光在望 !
  • 特征工程-特征预处理
  • 代码随想录算法训练营day22
  • 2024秋语法分析作业-B(满分25分)
  • Python爬虫入门(1)
  • 鸿蒙1.2:第一个应用
  • 2024年常用工具
  • 【蓝桥杯】走迷宫
  • 【pyqt】(三)designer
  • 【Go学习】-01-3-函数 结构体 接口 IO
  • 昆仑万维大数据面试题及参考答案