数据库的第一范式,第二范式,第三范式,BCNF范式理解

数据库的第一范式,第二范式,第三范式,BCNF范式理解第一范式属性的原子性所谓的第一范式就是数据库中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性,如果出现重复的属性则需要重新构建实体,新的实体由重复的属性构成。见图分析图:在进货和销售中有两个重复的属性(数量和单价),并且进价和销售是可以再分割的,不满足原子性,即不满足第一范式,可以修改为下面的两个实体第二范式属性完…

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

第一范式 属性的原子性

所谓的第一范式就是数据库中的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性,如果出现重复的属性则需要重新构建实体,新的实体由重复的属性构成。
见图
在这里插入图片描述
分析图: 在进货和销售中 有两个重复的属性(数量和单价),并且进价和销售是可以再分割的,不满足原子性,即不满足第一范式,可以修改为下面的两个实体
在这里插入图片描述
在这里插入图片描述

第二范式 属性完全依赖于主键

第二范式是在第一范式的基础上建立起来的,即满足第二范式必须先满足第一范式,第二范式要求数据库的每个实例或行必须可以被唯一的区分,即表中要有一列属性可以将实体完全区分,这个属性就是主键,即每一个属性完全依赖于主键,在员工管理中,员工可以通过员工编号进行唯一区分,
完全依赖概念:即非主属性不能依赖于主键的部分属性,必须依赖于主键的所有属性。

第三范式

满足第三范式必须先满足第二范式,第三范式要求一个数据库表中不包含已在其他表中已包含的非主关键字信息, 例如 存在一个课程表,课程表中有课程号(Cno),课程名(Cname),学分(Ccredit),那么在学生信息表中就没必要再把课程名,学分再存储到学生表中,这样会造成数据的冗余, 第三范式就是属性不依赖与其他非主属性,也就是说,如果存在非主属性对于码的传递函数依赖,则不符合第三范式

在这里插入图片描述
这个例子就是典型的非3NF 两个非主属性
属性不依赖与其他非主属性,则不符合第三范式
——–选修课程名—->选修课程号(非主属性)
如果存在非主属性对于码的传递函数依赖,则不符合第三范式
理解为
——–选修课程名—->选修课程号——> 学号(传递依赖)
不是第三范式

BCNF 范式

满足BCNF范式的条件如下:

  1. 所有的非主属性对每一个码都是完全函数依赖 (暗含 主关键字里面可能有多个码可以将实体区分)
  2. 所有的主属性对每一个不包含它的码也是完全函数依赖(即所选码与未选择的码之间也是完全函数依赖的)
  3. 没有任何属性完全函数依赖于非码的任何一组属性(即非主属性之间不能函数依赖)

解释:
例如关系模式 S(Sno,Sname,Sdept,Sage) 假设 Sname具有唯一性
解释条件1:非主属性 (Sdept,Sage) 不仅依赖于Sno,而且依赖于Sname,因为不仅可以通过学号知道学生的信息,还可以通过姓名知道学生的信息。
解释条件2:Sno 与Sname之间也是完全函数依赖关系
解释条件3:没有任何一个属性函数依赖于Sdept和Sage

感谢涛声依旧的博客

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

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

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


相关推荐

  • SQLSERVER存储过程语法的具体解释

    SQLSERVER存储过程语法的具体解释

    2022年1月11日
    29
  • Linux 安装tomcat 部署war包项目

    Linux 安装tomcat 部署war包项目准备工作:jdk-8u161-linux-x64.tar.gz链接:https://pan.baidu.com/s/1zQGL_cfN5jFWshZkAJOkNw密码:0u7dapache-tomcat-9.0.20.zip链接:https://pan.baidu.com/s/1Nf_qdmUVlQ0Cz8BOoQg2rA密码:bh9f以及你的war包…

    2022年6月11日
    126
  • DropDownList1_SelectedIndexChanged方法中改变了索引后没有反应「建议收藏」

    DropDownList1_SelectedIndexChanged方法中改变了索引后没有反应「建议收藏」这是因为DropDownList1中的AutoPostBack也就是自动回发没有设置为True,在默认的情况下,为了降低服务器默认,它的值是False.转载于:https://www.cnblogs.com/jany/archive/2009/12/29/1634623.html…

    2022年7月18日
    12
  • 计算机中完成全选的快捷键,怎么全选-很实用!word中全选的快捷键介绍及使用方法…[通俗易懂]

    计算机中完成全选的快捷键,怎么全选-很实用!word中全选的快捷键介绍及使用方法…[通俗易懂]全选快捷键可以提高我们在操作word时工作效率,在操作Word2003中怎么对文档中的文字进行全选呢?下面为大家提供几种全选的方法,绝对好用。Word怎样全选?方法一、使用Word全选快捷键“Ctrl+A”进行全选(也适用于电子表格);方法二、展开菜单栏中的“编辑”,然后选择“全选”按钮来全选;方法三、利用鼠标全选,鼠标左键按住不放然后拖动到最后也可以全选;方法四、鼠标单击开始部分,然后在最末尾部…

    2022年5月9日
    133
  • C#第七回:DialogResult

    C#第七回:DialogResult一直没太搞明白这个逻辑是什么意思,今天无意中看到个例子,终于小小的理解了一下。下面这段代码很好理解,//createanewdialog,andgetthevaluebyusingdialogResultDialogResultdialogResult=MessageBox.Show("是否要创建目录"+textBox1…

    2022年6月22日
    27
  • BugkuCTF 部分题解(随缘更新)

    BugkuCTF 部分题解(随缘更新)之前做的题在佛系更新等假期抽空做bugku佛系更新MISC简单取证1南城旧梦成果狗成果狗MISC简单取证1下载得到windows系统下一个目录,获取用户名和密码需要用SAM和system两个文件。把SAM和SYSTEM文件放到Win32文件夹下,运行mimikatz,执行命令所以flag{administrator-QQAAzz_forensics}南城旧梦mmz.bmp文件尾有一段DE@@=<6J:DB625K4,rot47解码后得到stoolkeyisqeadzc意思是使

    2022年7月11日
    28

发表回复

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

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