数据库第六章总结

2021/5/3 2:26:21

本文主要是介绍数据库第六章总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

关系数据理论

  • 问题的提出
  • 规范化
    • 函数依赖
    • 范式
      • 2NF
      • 3NF
      • BCNF
    • 多值依赖
      • 4NF
  • 小结

问题的提出

逻辑设计(表结构)
  1.针对具体问题,构造数据模式
  2.工具:关系数据库的规范化理论
关系模式由五部分组成,是一个五元组:R(U, D, DOM, F)
  R是符号化的元组语义
  U为一组属性
  D为属性组U中的属性所来自的域
  DOM为属性到域的映射
  F为属性组U上的一组数据依赖
D、DOM与模式设计关系不大,只用到三元组:R<U,F>

二维表每个分量必须是不可分开的数据项。
满足了这个条件的关系模式就属于:第一范式(1NF)
数据依赖是一个关系内部属性与属性之间的一种约束关系
  1.通过属性间值的相等与否体现出来的数据间相互联系
  2.是现实世界属性间相互联系的抽象
  3.是数据内在的性质
  4.是语义的体现
主要类型:
  函数依赖(Functional Dependency,简记为FD)
  多值依赖(Multi-Valued Dependency,简记为MVD)

规范化

函数依赖

设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
若对于R(U)的任意一个可能的关系r,r 中不可能存在:
两个元组在X上的属性值相等,而在Y上的属性值不等,
则称**“X函数确定Y”或“Y函数依赖于X”**,记作X→Y。

设K为R<U,F>中的属性或属性组合。若则K → F \overset F\to →FU,则K称为R的一个候选码。如果U部分函数依赖于K,即K → U,则K称为超码 。候选码是最小的超码,即K的任意真子集都不是候选码。若关系模式R有多个候选码,则选定其中的一个做为主码。包含在任何一个候选码中的属性 ,称为主属性。不包含在任何码中的属性称为非主属性。整个属性组是码,称为全码

范式

范式是符合某一种级别的关系模式的集合。
种类:
1.第一范式(1NF)
2.第二范式(2NF)
3.第三范式(3NF)
4.BC范式(BCNF)
5.第四范式(4NF)
6.第五范式(5NF)
各种范式之间存在联系:
在这里插入图片描述

2NF

若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF在这里插入图片描述
非主属性Sdept、Sloc并不完全依赖于码,关系模式S-L-C不属于2NF,一个关系模式不属于2NF,会产生插入异常、删除异常、修改复杂.
解决方法:
用投影分解把关系模式S-L-C分解成两个关系模式
SC(Sno,Cno,Grade)
S-L(Sno,Sdept,Sloc)

3NF

设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (Y⊇ Z), 使得X→Y,Y→Z成立,Y ↛ X不成立,则称R<U,F> ∈ 3NF。SC没有传递依赖.因此SC ∈ 3NF,S-L中Sno →Sdept( Sdept ↛ Sno), Sdept→Sloc,可得Sno → Sloc。

解决的办法是将S-L分解成
S-D(Sno,Sdept)∈ 3NF
D-L(Sdept,Sloc)∈ 3NF

BCNF

设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF。换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。

多值依赖

设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关

4NF

关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。
如果一个关系模式是4NF, 则必为BCNF

小结

感觉这一张的就开始回归原理的方面了,和之前的SQl是完全不同的学习方法,那个是在电脑上多练,这章就要多理解并且做一些不一样的题从多个角度来理解范式这些东西。



这篇关于数据库第六章总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程