范式是什么呢?
估计能跑来搜素查询的就应该指导是数据库设计的一个东东,但是你会发现课本上或者百度上面的解释就是三个字“”太晦涩!!“”
比如拷贝来一段瞅瞅:
范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。
我知道不用说,你肯定一脸懵逼!!因为我也是!!
下面我就通俗的来解释一下三大范式吧,不喜勿喷,个人理解:
一张数据表的表结构所符合的某种设计标准的级别
第一范式:
其实就是让列保持原子性,原子性就是不能再拆分了,最细最细的力度,就是第一范式啦!!
比如说:
这个表就不满足第一范式,为什么呢?因为在位置这个信息不是原子性的!!还可以再拆分,可以拆成国家和地区!!
第二范式:
其实就是说每个表字段只能描述一件事情,并且是围绕这个主键来描述的!!如果依赖于主键,则需要依赖于所有主键,不能存在依赖部分主键的情况。
就是跟主键不相关的东西都给我放到小表里面去。
主键依赖,实质就是,这个信息如果是对象的属性,就放进来,否则就不放。
第三范式:
如果你不是主键,那你就不能让其他任何的字段依赖你!!一个数据库表中不包含已在其它表中已包含的非主关键字信息。
就是不能重复存储相同的信息。这个情况,其实是在一个对象里引用了另外一个对象,这个时候,存一个引用就够了,而不是重复的存储这个对象的多个副本。
说人话:不得存在传递式依赖,比如对于一张数据库,里面的元素有son, person, father, grand-father,依赖关系是son -> person, person -> father, father -> grand-father,明显有一个链表式的传递,3NF中禁止此类依赖的出现。
如果觉得《通俗的解释一下范式》对你有帮助,请点赞、收藏,并留下你的观点哦!