第一范式、第二范式和第三范式「建议收藏」

第一范式、第二范式和第三范式「建议收藏」数据库的范式概念:设计数据库是,需要遵循的一些规范,要遵循后边的范式要求,必须遵循前边的所有范式要求设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈梯次规范,越高的范式数据库冗余越小目前关系型数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式、第四范式(4NF)、第五范式(5NF)。…

大家好,又见面了,我是你们的朋友全栈君。

数据库的范式

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

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

目前关系型数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式、第四范式(4NF)、第五范式(5NF)。

 

分类:

第一范式:每一列都是不可分割的原子数据项

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

几个概念:

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

例如:学号–>姓名      (学号,课程名称) –> 分数

  1. 完全函数依赖:A->B  如果A是一个属性组,则B属性值得确定需要依赖于A属性组中的所有的属性值。

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

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

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

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

例如:学号 –> 系别,系别–>系主任

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

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

主属性:码属性组中的所有属性

非主属性:除码属性组的属性

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

 

 

 

学号

姓名

课程名称

分数

系名

系主任

10010

张无忌

经济系

张三丰

高等数学

95

10010

张无忌

经济系

张三丰

英语

93

10010

张无忌

经济系

张三丰

计算机基础

97

10011

令狐冲

法律系

任我行

线性代数

88

10011

令狐冲

法律系

任我行

刑法

87

10012

杨过

艺术系

小龙女

家庭法

88

10012

杨过

艺术系

小龙女

唱歌

99

表一

不满足第一范式

 

学号

姓名

系名

系主任

课程名称

分数

10010

张无忌

经济系

张三丰

高等数学

95

10010

张无忌

经济系

张三丰

英语

93

10010

张无忌

经济系

张三丰

计算机基础

97

10011

令狐冲

法律系

任我行

线性代数

88

10011

令狐冲

法律系

任我行

刑法

87

10012

杨过

艺术系

小龙女

家庭法

88

10012

杨过

艺术系

小龙女

唱歌

99

表二

第一范式

存在的问题:

  1. 数据有大量冗余(重复)
  2. 数据添加存在问题,添加新开设的系和系主任时,数据不合法
  3. 数据存在问题:张无忌同学毕业了,删除数据,会将系的数据一起删除

 

 

 

选课表

学号

课程名称

分数

10010

高等数学

95

10010

英语

93

10011

计算机基础

97

10011

线性代数

88

10012

刑法

87

 10012

高等数学

88

 

 

学生表

学号

姓名

系名

系主任

10010

张无忌

经济系

张三丰

10011

令狐冲

法律系

任我行

10012

杨过

艺术系

小龙女

 

第二范式

 

存在问题:

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

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

 

 

 

 

 

 

选课表

学号

课程名称

分数

10010

高等数学

95

10010

英语

93

10011

计算机基础

97

10011

线性代数

88

10012

刑法

87

 10012

高等数学

88

 

 

 

 

 

 

学生表

学号

姓名

10010

张无忌

10011

令狐冲

10012

杨过

 

 

系名

系主任

经济系

张三丰

法律系

任我行

艺术系

小龙女

 

 

第三范式

存在的所有问题都被解决了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142511.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • insert into 语句的三种写法

    insert into 语句的三种写法

    2021年10月24日
    50
  • matlab figure函数的用法[通俗易懂]

    matlab figure函数的用法[通俗易懂]用法1>>figure%创建一个新的窗口,所有参数采用默认用法2>>figure(s) %s为参数,s为数据时要大于0,否则报错比如下例:用法3>>figure(‘PropertyName’,propertyvalue,…)如下例:用法4>>h=figure(s)%返回该窗口的句柄,其中,s是一个整数…

    2022年7月17日
    17
  • Linux的文件系统类型「建议收藏」

    Linux的文件系统类型「建议收藏」提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、文件系统类型 二、Linux基本文件操作 1.基本目录和文本命令 三、Linux查找 总结前言本节学习Linux下的l文件系统类型提示:以下是本篇文章正文内容,下面案例可供参考一、文件系统类型不同文件系统采用不同的方法来管理磁盘空间,各有优劣;文件系统是具体到分区的,所以格式化针对的是分区,分区格式化是指采用指定的文件系统类型对分区空间进行登记、索引并建立相应的管理表格的过程。

    2022年9月17日
    2
  • kali装电脑_Kali安装教程(Windows7和kali双系统安装教程)[通俗易懂]

    kali装电脑_Kali安装教程(Windows7和kali双系统安装教程)[通俗易懂]Kali安装教程(一)Windows7+kali双系统安装准备先安装win7,然后安装kali,并且kali的引导项安装在/boot分区而不安装在MBR中,因为这样的话就算重装win7,kali系统经过简单引导仍然可以使用。Win7的安装此处就不在赘述,现在只聊一聊kali的安装。注:教程中个别截图借用了网上某人热心童鞋的截图,在此表示感谢!!1)准备阶段准备4G的优盘一个;刻录工具为:unetb…

    2022年5月5日
    112
  • ArcGIS教程:路径分析(一)

    ArcGIS教程:路径分析(一)求解路径分析表示根据要求解的阻抗查找最快、最短甚至是最优的路径。如果阻抗是时间,则最佳路线即为最快路线。如果阻抗是具有实时或历史流量的时间属性,则最佳路径是对指定日期和时间来说最快的路径。

    2022年8月24日
    11
  • SENT协议译码的深入探讨

    SENT协议译码的深入探讨作者:Ben在工作期间,我有机会仔细地研究现代车辆上的一些最新传感器技术。虽然这些特殊的传感器已经存在一段时间了,但是SENT技术越来越多地出现在车辆中。在汽车论坛中,我发现有关使用这些传感器的问题和讨论有所增加。这些现象促使我去研究如何利用虹科Pico示波器从这些传感器中获得尽可能多的信息。我不会在SENT协议上花费太多时间,因为网络上有很多关于该协议如何工作的资料。但是,我会简单介绍一下这个网络。SENT代表单边半字节传输,并遵循J2716标准。它是低成本且单向的(仅一个方向),这意味着传

    2022年6月16日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号