SQL三大范式

您所在的位置:网站首页 范式例子 SQL三大范式

SQL三大范式

2024-07-12 21:38| 来源: 网络整理| 查看: 265

前言

sql的语句很简单,但是一些数据处理的逻辑却有点绕,并且sql还有8种范式,对数据库的建表也有很大的要求,今天就简单说一说三大范式,这三大范式已经够用了。其余范式自行了解就可。

三大范式

1.第一范式(1NF) 强调的是列的原子性,即表中每一列的字段属性都是唯一的,不可再分的

学生ID姓名性别手机号101大狗蛋男13825074109

2.第二范式(2NF) 在满足1NF的基础上再满足依赖性的两个约束:一张表必须有一个主键;非主键类必须完全依赖于主键,而不能只依赖主键的一部分。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

学生ID学生姓名学生性别学生手机号老师ID老师姓名老师手机号101大狗蛋男13825074109011张大宝16489466283102大猫猫女13814956231011张大宝16489466283103小笨笨女15614954531012王麻子15589466280

主键:学生ID 从上表可以看出,内容只要分为学生和老师,一个老师对应多个学生,老师的内容与学生ID这个主键不相关,完全违背了第二范式,所以直接拆分为学生表,老师表就可以。

3.第三范式(3NF) 在满足2NF的基础上再满足一个条件:非主键列必须直接依赖于主键,不能存在传递依赖。也就是说,确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

课程ID老师姓名课程名字上课时间老师姓名老师手机号老师职位101大狗蛋马克思理论8:00王麻子16489466283讲师102大猫猫军事理论12:00张大宝16489466283教授

主键:课程ID 从上表可以看出,所有内容都与依赖于主键ID,符合第二范式。但是老师电话,老师职位直接依赖的是任课老师,不直接依赖于主键ID,违背了第三范式。所以直接拆分为课程表和教师表就可。

三大范式的作用

三大范式只是一般设计数据库的基本理念,是为了在设计中更好的解决数据冗余,数据有效性检查,提高存储效率。 注意:所谓的范式,是用来学习参考的,设计的时候根据情况来设计数据库,不用完全按照范式设计



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3