范式概述以及三大范式详解

范式概述

​ 概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求。

​ 设计数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。

​ 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)

分类:

  1、第一范式(1NF):每一列都是不可分割的原子数据项

  2、第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)

  3、第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

 

 

 

 

 

三大范式详解

分类:

​ 1、第一范式(1NF):每一列都是不可分割的原子数据项。

学号 姓名 系名 系主任 课程名称 分数
10010 张无忌 经济系 张三丰 高等数学 95
10010 张无忌 经济系 张三丰 大学英语 27
10010 张无忌 经济系 张三丰 计算机基础 65
10011 令狐冲 法律系 任我行 法理学 77
10011 令狐冲 法律系 任我行 大学英语 37
10011 令狐冲 法律系 任我行 法律社会学 65
10012 杨过 法律系 任我行 法律社会学 95
10012 杨过 法律系 任我行 法理学 97
10012 杨过 法律系 任我行 大学英语 99
    计算机系 殷天正    

 

 

 

 

 

 

 

 

 

 

 

 

 

存在的问题:

  1、存在非常严重的数据冗余(重复):姓名、系名、系主任

  2、数据添加存在问题:添加新开设的系和系主任时,数据不合法

  3、数据删除存在问题:张无忌同学毕业了,删除数据,会将系的数据一起删除

 

​ 2、第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除非主属性对主码的部分函数依赖)

​ (1)函数依赖:A–>B,如果通过A属性(属性组)的值,可以确定唯一B属性的值。则称B依赖于A。

​ 例如:学号—>姓名。 (学号,课程名称) --> 分数

​ (2)完全函数依赖:A–>B,

如果A是一个属性组,则B属性值的确定需要依赖于A属性组中所有的属性值。

​ 例如:(学号,课程名称) --> 分数

​ (3)部分函数依赖:A–>B,如果A是一个属性组,则B属性值的确定只需要依赖于A属性组中的某一些值即可。

​ 例如:(学号,课程名称) --> 姓名

​ (4)传递函数依赖:A --> B,B -->C,如果通过A属性(属性组)的值,可以确定唯一B属性的值,存在B属性(属性组)可以确定唯一C属性的值,则称C传递函数依赖于A

​ 例如:学号 -->系名,系名 -->系主任

(5)码:如果一张表中,一个属性或属性组,被其他所有属性所完全依赖,则称这个属性(属性组)为该表的码。

​ 例如:该表中的码为:(学号,课程名称)

​   主属性:码属性组中的所有属性
​   非主属性:除去码属性组的属性

选课表:

学号 课程名称 分数
10010 高等数学 95
10010 大学英语 27
10010 计算机基础 65
10011 法理学 77
10011 大学英语 37
10011 法律社会学 65
10012 法律社会学 95
10012 法理学 97
10012 大学英语 99

 

 

 

 

 

 

 

 

 

 

 

学生表:

学号 姓名 系名 系主任
10010 张无忌 经济系 张三丰
10011 令狐冲 法律系 任我行
10012 杨过 法律系 任我行
    计算机系 殷天正

 

 

 

 

 

 

存在的问题:

  1、数据添加存在问题:添加新开设的系和系主任时,数据不合法

  2、数据删除存在问题:张无忌同学毕业了,删除数据,会将系的数据一起删除

 

 

​ 3、第三范式(3NF):在2NF的基础上,任何非主属性不依赖于其他非主属性(在2NF的基础上消除传递依赖)

选课表:

学号 课程名称 分数
10010 高等数学 95
10010 大学英语 27
10010 计算机基础 65
10011 法理学 77
10011 大学英语 37
10011 法律社会学 65
10012 法律社会学 95
10012 法理学 97
10012 大学英语 99

 

 

 

 

 

 

 

 

 

 

 

学生表:

学号 姓名 系名
10010 张无忌 经济系
10011 令狐冲 法律系
10012 杨过 法律系

 

 

 

 

 

系表:

系名 系主任
经济系 张三丰
法律系 任我行
法律系 任我行

 

 

 

 

 

存在的问题:

  刚刚所有的三个问题被全部解决

 

posted @   xjw12345  阅读(1959)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示