> php教程 > php手册 > 数据库三范式,轻松理解

数据库三范式,轻松理解

WBOY
풀어 주다: 2016-06-13 10:36:59
원래의
1092명이 탐색했습니다.

网上搜罗了一大堆关于数据库范式理解的文章,都是千律一篇的复制粘贴,连例子都是一模一样,拜托有点创意好不,实在看不下去,自己写一篇个人理解三范式的文章。如果有理解上的不正确之处,请联系我:279537592#qq.com (#=>@)

官方定义:第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。
我的理解:第一范式这个不用說了,只要是关系数据库都满足第一范式

官方定义:第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖
我的理解:在第二范式中组合主键(AB)【注明:也叫做复合主键】里面的A或者B 与其他字段不能存在组合重复,为解决这个问题,通常的做法是咱们不用组合主键,添加一个ID,做为单一主键即可满足第二范式。如果不想添加ID,请满足组合主键(AB)里面的A或者B 与其他字段不能存在组合重复。
如:不满足第二范式,复合主键中的A与字段C组合重复
+------------+-----------+-------------------+
    pk                pk             row
+------------+-----------+-------------------+
    A                  B                  C
+------------+-----------+-------------------+
    A                  D                  C
+------------+-----------+-------------------+
    A                  E                  C
+------------+-----------+-------------------+

改为这样满足第二范式(但是不满足第三范式,字段A与字段C是组合重复):
+---------+------------+-----------+-------------------+
    pk            row             row             row
+---------+------------+-----------+-------------------+
      1              A               B                  C
+---------+------------+-----------+-------------------+
      2              A               D                  C
+---------+------------+-----------+-------------------+
      3              A               E                  C
+---------+------------+-----------+-------------------+

官方定义:第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三 范式。
我的理解:在第三范式中字段与字段之间不能存在组合重复
如:不满足第三范式,字段A与字段C组合重复
+---------+------------+-----------+-------------------+---------------+
    pk            row             row             row                        row
+---------+------------+-----------+-------------------+---------------+
      1              A               B                  C                           F
+---------+------------+-----------+-------------------+---------------+
      2              A               D                  C                          G
+---------+------------+-----------+-------------------+---------------+
      3              A               E                  C                           K
+---------+------------+-----------+-------------------+---------------+

改为这样满足第三范式:
表1
+---------+------------+-----------+
    pk            row            row        
+---------+------------+-----------+
      1              A               B              
+---------+------------+-----------+
      2              A               D                
+---------+------------+-----------+
      3              A               E                
+---------+------------+-----------+
和表2
+---------+-------------------+------------+
    pk             row                       row
+---------+-------------------+------------+
      1              C                           F
+---------+--

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿