大家在数据设计中经常接触范式设计。 那么,到底什么样的设计符合范例呢? 在解释范例之前,让我先解释一下什么是范例。
范式:字义是规范,是指数据库设计中数据表各字段之间的关联关系。
第一范式:教科书的解释是字段不可分割的最小单位。
这很简单。 基本上是现在主流的RDMS。 很难认为你设计的数据表不符合第一范式。 手动移动狗的头。 举个简单的例子,考试成绩这个信息被设计为在考试成绩的一个字段中不满足第一范式,考试科目的分数被设计为满足第一范式。 不满足第一范式会导致插入异常。 请想想50分国语如何插入一个字段。
第二范式:消除非主属性对主属性的部分依赖
如果你的主要属性是字段,那就什么也不说,一定满足了第二范式。 但是,主要属性是多个字段吗? 那就看看每个非主属性是否完全依赖于主属性组。 如果只依赖于主属性组中的某些属性,则这种情况不适合第二范式。 第二范式:消除非主属性对主属性的部分依赖。
第三范式:消除非主属性对主属性的传递依赖。
为便于理解,非主属性必须直接依赖于主属性,不能通过非主属性传递。
BCNF :消除主属性之间的部分传递依赖。 与主属性以外的属性无关。