程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 數據庫三范式,輕松理解

數據庫三范式,輕松理解

編輯:關於PHP編程

網上搜羅了一大堆關於數據庫范式理解的文章,都是千律一篇的復制粘貼,連例子都是一模一樣,拜托有點創意好不,實在看不下去,自己寫一篇個人理解三范式的文章。如果有理解上的不正確之處,請聯系我: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
+---------+--

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved