首页 > 编程知识 正文

第一第二第三范式的区别,第三范式和第四范式区别

时间:2023-05-06 20:04:56 阅读:15568 作者:1039

键:超级键:在关系中唯一标识元组的属性或属性集称为键模式超级键。 候补键:不包含多馀属性的超级键称为候补键。 也就是说,候选键中删除属性的不是键。 主键:用户选择作为元组id的候选键称为主键。 一般不说明,键是指主键。 外键:如果架构r的属性k是其他架构的主键,则k在架构r中称为外键。 函数依赖关系:存在关系:

r (学校编号、姓名、性别、班级、踏实的冰棍、课程编号、课程名称、成绩) )。

主键:学校编号、课程编号

主要属性: {学校编号、课程编号}

非主要属性(姓名、性别、班级、坚实的冰棍、课程名称、成绩) )。

函数依赖,{学校号、科目号}--成绩、{学校号、科目号}可以决定成绩,但不能只决定学校号,或只决定科目号决定成绩。 部分函数的名称仅由{学校编号、课程编号}--名称、学校编号决定(课程编号冗长)。 传递函数依赖,(学号、课号)---坚实的冰棍、坚实的冰棍依赖班级,班级依赖学号,因此坚实的冰棍间接依赖学号。 第一范式(1NF )数据库的各列是不可分割的基本数据项,强调列的原子性。 也就是说,不能分割列。 反例:

ID姓名联系人邮箱1jmd188XXXXXXXXXXX@163.COM第二范式(2NF )基于第一范式,每个非主属性必须完全函数依赖于候选密钥(或主键,哪个候选密钥) 这意味着,非主键列完全依赖于主键,而不是依赖于主键的部分。 必须满足以下两个条件:

需要主键。 主键中不包含的列必须完全依赖主键,不能只依赖主键的一部分。 第三范式(3NF )基于第二范式,任何非主属性都不依赖于其他非主属性。 也就是说,每个非主属性不传递依赖于其范式的候选密钥。 这意味着,非主键列只依赖于主键,而不依赖于其他非主键。

在BC范例(BCNF )建立第三范例的基础上,任何非主属性都不能依赖于主键子集。 也就是说,如果数据库表中没有与任何候选键的传递函数相关的字段,则遵循BC规范化。

总结:清除部分对1NF主键的函数依赖后=2NF。

消除对2NF主键的传递函数依赖后=3NF。

消除对3NF候选密钥的部分函数依赖和传递函数依赖后=BCNF。

BNF在3NF的改进,即3NF的基础上将范围从主代码扩大到候补代码。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。