屬性不可重複
表中任何一列都不是重複的,一行資料表示乙個實體,
如果有重複的,那就把重複的屬性拿出來,單獨做乙個實體
顯然,資料庫都是滿足第一正規化的
所有非主屬性完全函式依賴候選鍵(一組候選鍵可以唯一標識一行)
對於只有乙個主鍵的表是符合第二正規化的
像這樣的表是不符合第二正規化的:
(學號,課程名稱)----> (學生姓名,年齡,課程學分)
由於(課程名稱)---->(課程學分),且(學號)----> (學生姓名,年齡)所以並不符合第二正規化
解決:分為兩個表
(學號)----> (學生姓名,年齡)
(課程名稱)---->(課程學分
不存在傳遞關係
比如表(學號)---->(姓名,年齡,所在學院,學院位址,學院**)就不符合第三正規化
因為表中存在傳遞關係:
(學號)---> (所在學院)---> (學院位址,學院**)存在非關鍵字段學院位址。**對關鍵字段的傳遞
解決:(學號)--->(姓名,年齡,所在學院)
(所在學院)--->(學院位址,學院**)
是對第三正規化的改進
比如: 現在有乙個例子:乙個管理員只管理乙個倉庫,乙個倉庫儲存多種物品
(倉庫id)--->(管理員id,儲存物品id)
(管理員id)--->(管理員數量)
也就是說存在關鍵字段決定關鍵字段的情況,就不符合第四正規化
簡單介紹一下關聯式資料庫三正規化
正規化就是規範,就是關係型資料庫在設計表時需要遵循的規範。滿足三必須先滿足二,滿足二必須先滿足一,層層環扣。第一正規化 1nf 資料庫表的列是不可分割的基本資料項,一行中的同個列不能存多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。列資料的不可分割 第二正規化 2nf 要求資料庫表中的沒...
複習了一下序列,資料庫儲存過程的寫法
序列 create sequence my suquence 序列名稱 minvalue 0 序列最小值 start with 0 序列起始值 maxvalue 20 序列最大值 increment by 5 序列的增長值 nocache 不預先在記憶體中快取 cycle 達到最大值後再重新迴圈 刪...
資料庫的第一第二第三正規化
注 原文講的非常棒,知乎是個好地方。按照教材中的定義,正規化是 符合某一種級別的關係模式的集合,表示乙個關係內部各屬性之間的聯絡的合理化程度 很晦澀吧?實際上你可以把它粗略地理解為一張資料表的表結構所符合的某種設計標準的級別。就像家裡裝修買建材,最環保的是e0級,其次是e1級,還有e2級等等。資料庫...