通俗的解释一下范式

来源:互联网 发布:淘宝订购服务怎么退款 编辑:程序博客网 时间:2024/06/06 15:54

范式是什么呢?

估计能跑来搜素查询的就应该指导是数据库设计的一个东东,但是你会发现课本上或者百度上面的解释就是三个字“”太晦涩!!“”

比如拷贝来一段瞅瞅:

范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。

我知道不用说,你肯定一脸懵逼!!因为我也是!!

下面我就通俗的来解释一下三大范式吧,不喜勿喷,个人理解:

一张数据表的表结构所符合的某种设计标准的级别

第一范式:

其实就是让列保持原子性,原子性就是不能再拆分了,最细最细的力度,就是第一范式啦!!

比如说:公司名字位置IBM美国纽约州华为中国广东省

这个表就不满足第一范式,为什么呢?因为在位置这个信息不是原子性的!!还可以再拆分,可以拆成国家和地区!!

公司名字国家地区IBM美国纽约华为中国广东省

第二范式:

其实就是说每个表字段只能描述一件事情,并且是围绕这个主键来描述的!!如果依赖于主键,则需要依赖于所有主键,不能存在依赖部分主键的情况

就是跟主键不相关的东西都给我放到小表里面去。

主键依赖,实质就是,这个信息如果是对象的属性,就放进来,否则就不放。


第三范式:

如果你不是主键,那你就不能让其他任何的字段依赖你!!一个数据库表中不包含已在其它表中已包含的非主关键字信息。

就是不能重复存储相同的信息。这个情况,其实是在一个对象里引用了另外一个对象,这个时候,存一个引用就够了,而不是重复的存储这个对象的多个副本。

说人话:不得存在传递式依赖,比如对于一张数据库,里面的元素有son, person, father, grand-father,依赖关系是son -> person, person -> father, father -> grand-father,明显有一个链表式的传递,3NF中禁止此类依赖的出现。














原创粉丝点击