【DAO】資料庫三範式說明,dao資料庫範式

來源:互聯網
上載者:User

【DAO】資料庫三範式說明,dao資料庫範式
************************************************************************  ****原文:blog.csdn.net/clark_xu 徐長亮的專欄************************************************************************

 

第一範式:  概況為列的值唯一性,不能有重複的列值(必須遵守);

反面例子:

名字           連絡方式(字串類型)

xxx             12345;abc@163.com

xxx             bcd@163.com

xxx             12345;67890;def@163.com

危害性:為垃圾資料,無法刪除,無法修改;

正確的設計方法:

                   名字        電話1      電話2     電話3      電話4     郵箱

第二範式, 屬性完全依賴於主鍵(必須遵守)

n  必須滿足第一範式

n  必須有主鍵

n  其他列必須完全依賴於主鍵

錯誤的建表方法:

編號         姓名      性別         專業     專業課時

100            xxx           m               java           600

200            xxx             f                 java           700

 

違反範式2的是另外一種含義,將兩個實體放在同一個表中,不方便其中一個實體資料的單獨維護。

編號         姓名      性別         專業     專業課時

100            xxx           m               java           600

200            xxx             f                 java           700

 

表2

專業編號         專業         專業課時

001                     java           600

002                     java          700

3)  第三範式:屬性不依賴其他非主屬性

n  必須遵守第二範式

n  去除傳遞依賴

正確的設計方法為:

編號         姓名      性別         專業編號     

100            xxx           m               001           

200            xxx             f                 002 

 

表2

專業編號         專業         專業課時

001                     java           600

002                     java          700

 

概況為:

範式2:一個表中不能含有兩個實體的資訊,必須含有一個實體

範式3:一個實體中不能引用其他實體的屬性,只能引用其他實體的主鍵

注意:

         在某些情況下,出於查詢效率的考慮,可能會違反範式3,此時增加了冗餘,查詢的時候,不需要表串連,增加了表的執行效率,但是可維護性下降,一般為不建議經常維護的表違反第三範式。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.