通俗易懂SQL server 中的三大范式

一:第一范式:

官方定义: 数据库表中的所有字段都是单一属性,不可再分的。强调的是列的原子性。

白话:每一列都有自己的属性说明,谁也帮不了谁,谁干谁的活。清晰明了。

二:第二范式

官方定义:一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。 

白话:数据库表中有俩种身份 一种是主人 一种是仆人  仆人服务于主人。

例子:学生表中姓名、成绩、名次     这样一看就知道  姓名是主人  成绩和名次是仆人 服务于说明主人的信息

三:第三范式

官方定义:所有非主属性对任何候选关键字都不存在传递依赖

白话:有的时候字段有俩种身份既是主人又是仆人。   

           就是说我的仆人只服务于我  即使我是别人的仆人  我的仆人也不需要去服务我的主人

例子:学生表中姓名、成绩、名次、联系电话  但是联系电话现在需求有手机和固定电话俩种 这样一来本来联系电话只是个仆人

结果自己现在又是主人了,因为有俩个仆人需要服务联系电话。这个时候联系电话需要建一张主人表,然后让俩个仆人服务。

那么如果说表的字段变成   姓名、成绩、名次、手机电话、固定电话 第一范式是OK的

但是很显然的是 手机电话、固定电话的主人 是联系电话  而联系电话的主人是姓名

这样相当于越级了,所以呢怎么办 在开个主人表 也就是联系电话的 主人表

这个联系电话表 拥有 主键id  手机电话  固定电话

原来学生表还是  姓名、成绩、名次、联系电话

 

总结来说就是  仆人永远要服务于自己的主人  主人需要拥有自己的表  当然自己的主人也可以是别人的仆人 这就跟你无关了

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值