❶ 資料庫三大範式通俗理解是什麼
1、第一範式(1NF):
所謂第一範式(1NF)是指在關系模型中,對於添加的一個規范要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子數據項,而不能是集合,數組,記錄等非原子數據項。
即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一範式(1NF)表中的每個域值只能是實體的一個屬性或一個屬性的一部分。簡而言之,第一範式就是無重復的域。
2、第二範式(2NF)
在1NF的基礎上,非碼屬性必須完全依賴於候選碼(在1NF基礎上消除非主屬性對主碼的部分函數依賴)
第二範式(2NF)是在第一範式(1NF)的基礎上建立起來的,即滿足第二範式(2NF)必須先滿足第一範式(1NF)。第二範式(2NF)要求資料庫表中的每個實例或記錄必須可以被唯一地區分。選取一個能區分每個實體的屬性或屬性組,作為實體的唯一標識。
3、第三範式(3NF)
在2NF基礎上,任何非主屬性不依賴於其它非主屬性(在2NF基礎上消除傳遞依賴)第三範式(3NF)是第二範式(2NF)的一個子集,即滿足第三範式(3NF)必須滿足第二範式(2NF)。簡而言之,第三範式(3NF)要求一個關系中不包含已在其它關系已包含的非主關鍵字信息。
關系模型結構
1、單一的數據結構——關系(表文件)。關系資料庫的表採用二維表格來存儲數據,是一種按行與列排列的具有相關信息的邏輯組,它類似於Excel工作表。一個資料庫可以包含任意多個數據表。在用戶看來,一個關系模型的邏輯結構是一張二維表,由行和列組成。這個二維表就叫關系,通俗地說,一個關系對應一張表。
2、元組(記錄)。表中的一行即為一個元組,或稱為一條記錄。
3、屬性(欄位)。數據表中的每一列稱為一個欄位,表是由其包含的各種欄位定義的,每個欄位描述了它所含有的數據的意義,數據表的設計實際上就是對欄位的設計。創建數據表時,為每個欄位分配一個數據類型,定義它們的數據長度和其他屬性。欄位可以包含各種字元、數字、甚至圖形。
以上內容參考網路——資料庫範式、網路——關系資料庫
❷ 關於資料庫三大設計範式淺析
為了建立冗餘較小、結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關系型資料庫中這種規則就稱為範式。範式是符合某一種設計要求的總結。要想設計一個結構合理的關系型資料庫,必須滿足一定的範式。
真正要明白」範式(NF)」是什麼意思,首先看下教材中的定義,範式是「符合某一種級別的關系模式的集合,表示一個關系內部各屬性之間的聯系的合理化程度」。實際上可以把它粗略地理解為一張數據表的表結構所符合的某種設計標準的級別。就像家裡裝修買建材,最環保的是E0級,其次是E1級,還有E2級等等。資料庫範式也分為1NF,2NF,3NF,BCNF,4NF,5NF。一般在我們設計關系型資料庫的時候,最多考慮到BCNF就夠。符合高一級範式的設計,必定符合低一級範式,例如符合2NF的關系模式,必定符合1NF。
在實際開發中最為常見的設計範式有三個:
首先是第一範式(1NF)。
符合1NF的關系(你可以理解為數據表。「關系」和「關系模式」的區別,類似於面向對象程序設計中」類「與」對象「的區別。」關系「是」關系模式「的一個實例,你可以把」關系」理解為一張帶數據的表,而「關系模式」是這張數據表的表結構。1NF的定義為:符合1NF的關系中的每個屬性都不可再分。表1所示的情況,就不符合1NF的要求。
這樣在查詢訂單信息的時候,就可以使用客戶編號來引用客戶信息表中的記錄,也不必在訂單信息表中多次輸入客戶信息的內容,減小了數據冗餘。
由此可見,符合3NF要求的資料庫設計,基本上解決了數據冗餘過大,插入異常,修改異常,刪除異常的問題。當然,在實際中,往往為了性能上或者應對擴展的需要,經常 做到2NF或者1NF,但是作為資料庫設計人員,至少應該知道,3NF的要求是怎樣的。
❸ 資料庫原理 關系模式分解
這個問題很難一言以蔽之,我給你舉一個我常用的例子,希望對你有幫助:
設關系模式R(U,F)中,U={A,B,C,D,E},F={AB→C,C→D,D→E},R的一個分解ρ={ R1(A,B,C),R2(C,D),R3(D,E)}。試判斷ρ具有無損連接性。
解:① 首先構造初始表,如圖(a)所示。
A B C D E
R1(A,B,C) a1 a2 a3 b14 b15
R2(C,D) b21 b22 a3 a4 b25
R3(D,E) b31 b32 b33 a4 a5
(a)
A B C D E
R1(A,B,C) a1 a2 a3 a4 a5
R2(C,D) b21 b22 a3 a4 b25
R3(D,E) b31 b32 b33 a4 a5
(b)
圖:分解的無損連接判斷表
② 按下列次序反復檢查函數依賴和修改M:
AB→C,屬性A、B(第1、2列)中都沒有相同的分量值,故M值不變;
C→D,屬性C中有相同值,故應改變D屬性中的M值,b14改為a4;
D→E,屬性D中有相同值,b15、b25均改為a5。
結果如圖(b)所示。
③ 此時第一行已為a1,a2,a3,a4,a5,所以ρ具有無損連接性。
說明:在上例步驟後,如果沒有出現a1,a2,a3,a4,a5,並不能馬上判斷ρ不具有無損連接性。而應該進行第二次的函數依賴檢查和修改M。直至M值不能改變,才能判斷ρ是否具有無損連接性。