第二范式和bcnf范式区别(bcnf范式通俗解释)

第一范式:数据库的每一列都是不可分割的基本数据项,强调列的原子性。即列不可以再拆分。第二范式:建立在第一范式的基础上,每一个非主属性要完全函数依赖于候选键(或者说是主键,任一个候选键都可以做主键)。即非主键列完全依赖于主键,而不能是依赖于主键的一部分,必须满足两个条件:1.必须有一个主键;2.没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。第三范式(3NF)建立在第二范式的基础上,任何非主属性不依赖于其它非主属性。即每一个非主属性都不传递依赖于该范式的候选键。即非主键列只依赖于主键

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

关键码:

  1. 超键:在关系中能唯一标识元组的属性或属性集称为关键模式的超键。
  2. 候选键:不含有多余属性的超键称为候选键。也就是在候选键中在删除属性就不是键了。
  3. 主键:用户选作元组标识的候选键称为主键。一般不加说明,键就是指主键。
  4. 外键:如果模式R中属性K是其他模式的主键,那么K在模式R中称为外键。

函数依赖关系:

存在关系:

R(学号,姓名,性别,班级,班主任,课号,课名,成绩)

主键:学号,课号

主属性:{学号,课号}

非主属性:{姓名,性别,班级,班主任,课名,成绩}

  1. 完全函数依赖,{学号,课号}–>成绩,{学号,课号}可以决定成绩,但只有学号或是只有课号无法决定成绩。
  2. 部分函数依赖,{学号,课号}–>姓名,只有学号就能决定姓名   (课号是冗余的)  。
  3. 传递函数依赖,{学号,课号}–>班主任,班主任依赖于班级,因班级依赖于学号,所以班主任间接依赖于学号。

第一范式(1NF)

数据库的每一列都是不可分割的基本数据项,强调列的原子性。即列不可以再拆分。反例:

ID 姓名 联系方式
    电话 邮箱
1 张三 188XXXXXXXX XXX@163.COM

第二范式(2NF)

建立在第一范式的基础上,每一个非主属性要完全函数依赖于候选键(或者说是主键,任一个候选键都可以做主键)。即非主键列完全依赖于主键,而不能是依赖于主键的一部分,必须满足两个条件:

  1. 必须有一个主键。
  2. 没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。

第三范式(3NF)

建立在第二范式的基础上,任何非主属性不依赖于其它非主属性。即每一个非主属性都不传递依赖于该范式的候选键。即非主键列只依赖于主键,不依赖于其他非主键。

BC范式(BCNF)

建立第三范式的基础上,任何非主属性不能对主键子集依赖。即数据库表中如果不存在任何字段对任一候选键的传递函数依赖则符合BC范式。

总结:

1NF消去对主键的部分函数依赖后=2NF。

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

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

BCNF是对3NF的改进,即在3NF的基础的又把范围从主码扩大为候选码。

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

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

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


相关推荐

  • 根据经纬度计算两点之间的距离的公式是_知道两点经纬度求距离

    根据经纬度计算两点之间的距离的公式是_知道两点经纬度求距离//距离单位米publicstaticdoublealgorithm(doublelongitude1,doublelatitude1,doublelongitude2,doublelatitude2){doubleLat1=rad(latitude1);//纬度doubleLat2=rad(latitude2);doublea=Lat1-Lat2;//…

    2022年9月16日
    0
  • 搭建邮件服务器 dns,搭建DNS服务器+邮件服务器[通俗易懂]

    一·搭建DNS服务器试验要求:完成DNS的正反向解析试验前准备:服务器192.168.203.201server1.example.com客户机192.168.203.202server2.example.com192.168.203.203database.example.com修改DNSnmclicmodifyeno16777736ipv4.dns8.8.8.8system…

    2022年4月9日
    43
  • ORA12154和TNS03505监听错误的解决方法「建议收藏」

    ORA12154和TNS03505监听错误的解决方法「建议收藏」原ORA-12154和TNS-03505监听错误的解决方法https://blog.csdn.net/tianlesoftware/article/details/5716028版权声明:https://blog.csdn.net/tianlesoftware/article/details/5716028之前在一台测试机上装了GridControl,今天在这台机器上添加了一个监听,…

    2022年7月24日
    4
  • Session.Abandon与Session.Clear之间的区别

    Session.Abandon与Session.Clear之间的区别Session.Clear()就是把Session对象中的所有项目都删除了,Session对象里面什么都没有。但是Session对象还保留。Session.Abandon()就是把当前Session

    2022年7月1日
    22
  • 手机开发平台介绍[通俗易懂]

    手机开发平台介绍[通俗易懂]
    刚刚进入手机研发领域,为今后职业生涯规划,从网上搜了资料方便学习。
    手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多。
    手机可分为智能手机开发和featherphone手机。开发平台可分为开放式平台和封闭式平台,开放式平台包括symbian、windowsmobile、linux、iPhone、Android、BlackBerry、j2me、brew等,支持手机应用程序通过OTA下载和安装;封闭式平台包括MTK、展讯、TI、飞利浦等。下面分别介绍。

    2022年8月12日
    6
  • 转录调控必知数据库ENCODE,介绍及使用方法[通俗易懂]

    转录调控必知数据库ENCODE,介绍及使用方法[通俗易懂]按照上图的展示,目前的ENCODE通过多种测序数据来反应基因组变化的过程,分别是通过 Hi-C来观察三维基因组 ATAC-seq/chip-seq研究基因的转录调控 甲基化芯片来研究甲基化的调控作用 RNA-seq来研究基因表达的变化 RIP-seq研究在转录后调控的信息 我们可以通过ENCODE数据库来检索自己想要的数据。类似很多转录调控数据库也是在ENCODE数据库获得目标原始数据后,进行分析后构建的自己数据库。文…

    2025年7月3日
    0

发表回复

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

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