简述下写这篇博客的原因,首先数据库老师说这节考试比重大,二来确实有点难理解,我上课也学的迷迷糊糊,说不清哪里会,哪里不会,然后趁着写数据库作业,看了学堂在线哈工大战老师的视频,做了以下的笔记和总结,希望自己可以更好的理解。

【函数依赖】:
1NF:关系模式R(U)中关系的每个分量都是不可分的数据项(原子),记作R(U)∈1NF。
示例:Star(name,address(city,street))不属于1NF,因为分量不是原子。
特征:表格行列都是单一的数值。关系中没有复合属性,多值属性和组合。
————
转换成第一范式:Star(name,address)或者Star(name,city,street)。

2NF:R(U)∈1NF且U中的每一非主属性完全函数依赖于候选键,记作R(U)∈2NF。
候选键:完全决定所有属性的属性或者属性组。
非主属性:不包含在候选键中的属性。
完全函数依赖:如果X决定Y,X的任何真子集X’不能决定Y。
示例:R(S#,SN,SD,CN,G)
其中,S#:学号,SN:姓名,SD:班级,CN:课程,G:成绩。
函数依赖:S# —>SN, S# —>SD, {S#,CN} —>G
候选键:{S#,CN},非主属性:SN,SD
因为{S#,CN}部分决定SN,SD,所以R不属于2NF。
————
可以将其分解:R1(S#,SN,SD)R2(S#,CN,G),则R1∈2NF,R2∈2NF。

3NF:R(U,F)∈2NF,且R中不存在这样的情况:候选键X,属性组Y包含U和非主属性A,且A不属于X,A不属于Y,Y不包含X,Y不决定X,使得X—>Y,
Y—>A成立,那R(U)属于第三范式,记作R(U)∈3NF。
特征:没有传递函数依赖。
示例:学生(学号,系号,系主任)
候选键:学号,非主属性:系主任,
传递依赖:学号—>系号,系号—>系主任,无部份依赖
所以满足2NF,不满足3NF。
注:如果满足3NF,那么必定满足2NF。反之,则不然。
————
关系模式分解成3NF,
示例:R(A,B,C,D,E,F,G)
函数依赖集合{A—>B,A—>C,C—>D,C—>E,E—>FG}
候选键A,存在传递依赖,所以不是第三范式。
分解规则:将每一个函数依赖单独组成一个关系
ρ={R1(A,B),R2(A,C),R3(C,D),R4(C,E),R5(E,F,G)}
则每一个模式都属于第三范式。
也可以合并一些关系:
ρ={R12(A,B,C),R34(C,D,E),R5(E,F,G)}

BCNF:简言之,就是没有不依赖于候选键的函数依赖存在。
示例:邮编(城市,街道,邮政编码)
函数依赖:{城市,街道}—>邮政编码,邮政编码—>城市,
候选键:城市,街道
因为不含有候选键:邮政编码—>城市,所以不满足BCNF
如果是BC范式,那么一定满足第三范式。
————
关系模式分解成BCNF
R(A,B,C,D,E,F,G)
函数依赖集合{A—>B,A—>C,C—>D,C—>E,E—>FG}
候选键A,有不依赖于候选键的其他函数依赖,所以R不满足BC范式。
分解规则:将左侧不含候选键的函数依赖单独组成一个关系,将包含候选键的组成一个关系。
ρ={R1(C,D),R2(C,E),R3(E,F,G),R4(A,B,C)}
那么R1,R2,R3,R4都属于BC范式。
也可以把R1,R2合并。

【多值依赖】:
数据库关系模式设计之规范形式2020-05-17
函数依赖是多值依赖的特例,简单说就是一组X的值,有一组Y对应,且Y值可以替换。
示例:R={课程名C,教师名T,上课时间H,教师R,学生名S,成绩G}
则有C—>—>HR,T—>—>HR,但不存在C—>—>H,C—>—>R
说明,同一门课程huo同一教师对同一批学生可以在不同时间,不同地点上课。

4NF:
数据库关系模式设计之规范形式2020-05-17
第四范式消除了非空属性对候选键以外属性的多值依赖,如果有多值依赖,那么一定依赖于候选键。
定理:若R∈4NF,那么必有R∈BCNF。
若R上没有多值依赖,仅存在函数依赖,则若有R∈BCNF,即有R∈4NF,反之,若R∈4NF,也有R∈BCNF。

然后还有W4NF,阿姆斯特朗公理,看不懂了。。。跪求大神简单讲下。

相关文章:

  • 2022-12-23
  • 2021-08-18
  • 2021-11-02
  • 2021-06-29
  • 2021-07-11
  • 2021-11-01
猜你喜欢
  • 2021-08-14
  • 2021-08-09
  • 2021-05-13
  • 2021-07-21
  • 2021-10-05
  • 2021-07-13
  • 2021-12-08
相关资源
相似解决方案