当前位置: 首页> 教育> 高考 > web前端工资_html布局模板_优化算法_郑州网站优化公司

web前端工资_html布局模板_优化算法_郑州网站优化公司

时间:2025/7/11 7:53:22来源:https://blog.csdn.net/m0_74807013/article/details/144693642 浏览次数:0次
web前端工资_html布局模板_优化算法_郑州网站优化公司

一、概述

1.数据依赖的主要类型

(1)函数依赖

        Sname=f(Sno)

        即Sno函数决定了Sname

(2)多值依赖

二、规范化

1.函数依赖

(1)平凡函数依赖和非平凡函数依赖

  • XY,但YX则称XY非平凡的函数依赖
  • XY,但YX 则称XY平凡的函数依赖

 (2)完全函数依赖和部分函数依赖

  • R(U)中,如果XY,并且对于X的任何一个真子集X’, 都有 X’ Y, 则称YX完全函数依赖,记作X Y
  • XY,但Y不完全函数依赖于X,则称YX部分函数依赖,记作XY

(3)传递函数依赖 

R(U) 中,如果X Y ( Y X ) Y X Y Z Z Y , 则称 Z X 传递函数依赖 (transitive functional dependency) 。记为: X Z

 2.码

(1)候选码

能唯一表示每一行数据,候选码是最小的超码

3.范式

(1)第一范式(1NF)

定义:一个关系满足第一范式(1NF),意味着关系中的每一列(属性)的值都是原子的,即不能再分解成更小的部分。每个字段都必须包含单一的、不可分的值。

要求:
  1. 表格中的每一列必须包含原子值(不可分割的基本数据项)。
  2. 每一列中的数据类型必须是单一的。
  3. 每一列中的数据值必须是唯一的,且每个值不可再分解。

(2)第二范式(2NF)

定义:一个关系满足第二范式(2NF),需要首先满足第一范式(1NF),并且所有非主属性必须完全依赖于每一个候选键,不能只依赖于主键的部分属性。

要求:
  1. 满足第一范式(1NF)。
  2. 消除部分依赖:如果一个表有复合主键(即主键由多个属性组成),那么表中的非主属性必须依赖于复合主键的全部属性,而不是主键的一部分
示例:

假设有一个学生-课程成绩表,主键是 (StudentID, Course),即每个学生在每门课程上的成绩唯一。

StudentIDCourseInstructorGrade
1MathDr. SmithA
1EnglishDr. JohnsonB
2MathDr. SmithB
2EnglishDr. JohnsonA

在这个表格中,StudentIDCourse 组合起来是主键。Instructor 依赖于 Course,而不依赖于整个复合主键 (StudentID, Course),因此 Instructor 是部分依赖的。

修正后的表格(符合2NF)

  1. 学生成绩表:
StudentIDCourseGrade
1MathA
1EnglishB
2MathB
2EnglishA
  1. 课程信息表:
CourseInstructor
MathDr. Smith
EnglishDr. Johnson

通过拆分表格,Instructor 现在不再依赖于复合主键的一部分,符合第二范式。

(3)第三范式(3NF)

定义:一个关系满足第三范式(3NF),需要首先满足第二范式(2NF),并且消除所有的传递依赖,即非主属性不应依赖于其他非主属性

要求:
  1. 满足第二范式(2NF)。
  2. 消除传递依赖:非主属性不应依赖于其他非主属性。
示例:

假设有一个学生-课程-成绩表,其中学生的邮箱依赖于学生的ID,而成绩依赖于学生和课程组合。

StudentIDCourseGradeStudentEmail
1MathAalice@email.com
1EnglishBalice@email.com
2MathBbob@email.com

在这个表格中,StudentEmail 依赖于 StudentID,而 Grade 依赖于 (StudentID, Course)。因此,StudentEmail 通过 StudentID 传递依赖于 Grade

修正后的表格(符合3NF)

  1. 学生信息表:
StudentIDStudentEmail
1alice@email.com
2bob@email.com
  1. 学生成绩表:
StudentIDCourseGrade
1MathA
1EnglishB
2MathB

通过拆分表格,消除了 StudentEmail 依赖于非主属性的问题,符合第三范式。

(4)BC范式(BCNF)

定义:一个关系满足 BCNF,需要满足第三范式(3NF),并且每个决定因子(determinant)都是候选键。

要求:
  1. 满足第三范式(3NF)。
  2. 每个决定因子都是候选键:在BCNF中,所有非主属性的依赖关系必须由候选键来决定。
示例:

假设有一个包含学生课程和讲师的表格,主键是 (StudentID, Course),但 Instructor 依赖于 Course

StudentIDCourseInstructor
1MathDr. Smith
1EnglishDr. Johnson
2MathDr. Smith

在这个表格中,Course 决定了 Instructor,但 Course 并不是候选键。因此,该表不符合 BCNF。

修正后的表格(符合BCNF)

  1. 学生成绩表:
StudentIDCourse
1Math
1English
2Math
  1. 课程信息表:
CourseInstructor
MathDr. Smith
EnglishDr. Johnson

通过拆分表格,我们确保了 Instructor 只依赖于候选键,符合BCNF。

(5)第四范式(4NF)

定义:一个关系满足第四范式(4NF),需要满足BCNF,并且消除多值依赖,即一个属性集的值依赖于关系的多个属性集,而非一个单一的属性。

要求:
  1. 满足BCNF。
  2. 消除多值依赖:一个表中的非主属性不应依赖于多个候选属性集的组合。
示例:

假设有一个学生-课程-兴趣表格,其中学生可以有多个课程和多个兴趣爱好。

StudentIDCourseInterest
1MathFootball
1EnglishMusic
1HistoryFootball
2PhysicsMusic

在这个表格中,StudentID 确定了学生的 CourseInterest,但 InterestCourse 是多值依赖的。

修正后的表格(符合4NF)

  1. 学生课程表:
StudentIDCourse
1Math
1English
1History
2Physics
  1. 学生兴趣表:
StudentIDInterest
1Football
1Music
2Music

通过拆分表格,消除了多值依赖,符合第四范式。

(6)第五范式(5NF)

定义:一个关系满足第五范式(5NF),需要满足第四范式(4NF),并且消除连接依赖,即一个表格中某些属性的值依赖于其他属性的组合。

要求:
  1. 满足第四范式(4NF)。
  2. 消除连接依赖:只有当表中的数据被完全分解时,才满足第五范式。
示例:

假设有一个学生-课程-教材表格,其中每个学生可能在不同的课程中使用不同的教材。

StudentIDCourseTextbook
1MathMathBook
1EnglishEnglishBook
2MathMathBook
2EnglishEnglishBook

该表存在连接依赖,因为学生、课程和教材之间的组合是冗余的。

修正后的表格(符合5NF)

  1. 学生课程表:
StudentIDCourse
1Math
1English
2Math
2English
  1. 课程教材表:
CourseTextbook
MathMathBook
EnglishEnglishBook
  1. 学生教材表:
StudentIDTextbook
1MathBook
1EnglishBook
2MathBook
2EnglishBook

通过拆分表格,消除了连接依赖,符合第五范式。

总结

  • 1NF: 关系中的属性值必须是原子的。
  • 2NF: 满足1NF,并且消除部分依赖。
  • 3NF: 满足2NF,并且消除传递依赖。
  • BCNF: 满足3NF,并且每个决定因子都是候选键。
  • 4NF: 满足BCNF,并且消除多值依赖。
  • 5NF: 满足4NF,并且消除连接依赖。

各种范式之间的关系

三、数据依赖的公理系统

关键字:web前端工资_html布局模板_优化算法_郑州网站优化公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: