第一、二、三范式

第一、二、三范式范式(NormalForm)是范式是符合某一种级别的关系模式的集合。通俗一点就是对数据库中表的属性的约束条件。第一范式1NF第一范式的条件:元组中的每一个分量都必须是不可分割的数据项。反例:应该修改为:第二范式2NF第二范式的条件:在第一范式的基础上,所有的非主属性完全依赖于主键。完全依赖意味着不能依赖于主键的一部分属性。反例:对于该表,学号和课程号组合在一起是主键,但…

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

范式(Normal Form)是范式是符合某一种级别的关系模式的集合。通俗一点就是对数据库中表的属性的约束条件。

第一范式 1NF

第一范式的条件:元组中的每一个分量都必须是不可分割的数据项。

反例:
在这里插入图片描述
应该修改为:
在这里插入图片描述

第二范式 2NF

第二范式的条件:在第一范式的基础上,所有的非主属性完全依赖于主键。完全依赖意味着不能依赖于主键的一部分属性。

反例:
在这里插入图片描述
对于该表,学号和课程号组合在一起是主键,但是姓名只由学号决定,违反了第二范式。类似还有课程名由课程号决定。

所以应该拆分为:
在这里插入图片描述

第三范式 3NF

第三范式的条件:满足第二范式的基础上,非主属性都不传递依赖于主键
在这里插入图片描述
主键是学号,但是学校地址也可以由学校名称决定,存在传递依赖

分解为:
在这里插入图片描述

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

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

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


相关推荐

  • Lucene 3.0.0 的TokenStream与Analyzer

    Lucene 3.0.0 的TokenStream与Analyzer如果你看的Lucene相关的书是很老版本的,比如说2.4或者更早,那么对于这个版本中的Analyzer可能就不那么容易接受了,我也是看的<lucene分析与应用>这本书,比较古老的版本.今天读了一下源代码,大概说说心得,我从SimpleAnalyzer说起.SimpleAnalyzer的作用就是把一段字符串中除了符号和非文字的内容作为分…

    2022年7月22日
    12
  • navicat在线生成激活码【最新永久激活】

    (navicat在线生成激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~83PV…

    2022年3月27日
    329
  • 百度搜索内容无法打开(百度好多网页打不开怎么回事)

    写在开头补充:1.如果出现“您连接的不是私密连接”请点击【高级】或者【详细】;(针对火狐浏览器与谷歌浏览器)2.如果是访问“http://www.baidu.com”不行,请替换“https://www.baidu.com”试试;打不开百度首页问题,只有百度打不开其他能打开怎么办?问题汇总描述1.谷歌Chrome浏览器有时候打不开百度,其它网站表示能够正常访问;2.360浏览器打开…

    2022年4月17日
    1.6K
  • 使用 CountDownLatch 控制多个线程执行顺序

    使用 CountDownLatch 控制多个线程执行顺序

    2022年3月11日
    35
  • 卸载烦人的赛门铁克

    卸载烦人的赛门铁克问题:电脑上SymantecEndpointProtection无法进行卸载,在卸载的时候提示需要密码。解决:网上查过很多的解决方法,比如修改相关注册表,或者使用360粉碎文件,但都没有将SymantecEndpointProtection卸载掉,最后查到需要使用CleanWipe来卸载。网上找了很多CleanWipe版本,但是卸载都是版本过低,导致卸载不了。本人使用的Cl…

    2022年4月29日
    96
  • PHPSTORM去除警告波浪线的方法

    PHPSTORM去除警告波浪线的方法

    2022年2月19日
    59

发表回复

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

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