1. 第一正規化(1nf):每一列都是不可分割的原子資料項
2. 第二正規化(2nf):在1nf的基礎上,非碼屬性必須完全依賴於碼(在1nf基礎上消除非主屬性對主碼的部分函式依賴)
* 幾個概念:
1. 函式依賴:a-->b,如果通過a屬性(屬性組)的值,可以確定唯一b屬性的值。則稱b依賴於a
例如:學號-->姓名。 (學號,課程名稱) --> 分數
2. 完全函式依賴:a-->b, 如果a是乙個屬性組,則b屬性值得確定需要依賴於a屬性組中所有的屬性值。
例如:(學號,課程名稱) --> 分數
3. 部分函式依賴:a-->b, 如果a是乙個屬性組,則b屬性值得確定只需要依賴於a屬性組中某一些值即可。
例如:(學號,課程名稱) -- > 姓名
4. 傳遞函式依賴:a-->b, b -- >c . 如果通過a屬性(屬性組)的值,可以確定唯一b屬性的值,在通過b屬性(屬性組)的值可以確定唯一c屬性的值,則稱 c 傳遞函式依賴於a
例如:學號-->系名,系名-->系主任
5. 碼:如果在一張表中,乙個屬性或屬性組,被其他所有屬性所完全依賴,則稱這個屬性(屬性組)為該錶的碼
例如:該表中碼為:(學號,課程名稱)
* 主屬性:碼屬性組中的所有屬性
* 非主屬性:除過碼屬性組的屬性
3. 第三正規化(3nf):在2nf基礎上,任何非主屬性不依賴於其它非主屬性(在2nf基礎上消除傳遞依賴)
初始表存在的問題:1.存在非常嚴重的資料冗餘:姓名,系名,系主任;
2.資料新增存在問題:新增新開設的系和系主任時,資料不合法;
3.資料刪除存在問題:張無忌同學畢業了,刪除資料會將系的資料一起刪除。
在此表中,碼為(學號,課程名稱)。而第二正規化的概念為:在1nf的基礎上,非碼屬性必須完全依賴於碼。而在此表中姓名,系名,系主任都是部分依賴於碼,所以得消除。
學生表依舊存在的問題:只想要新增系名與系主任時,必須新增學生學號與姓名。假設當學校開設新系時,這樣的設計不合理。
資料庫三正規化1NF2NF3NF
設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小 第一正規化 1nf 資料庫表中的所有字段值都是不可分解的原子值。即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項...
資料庫中1NF,2NF,3NF的判別
參照 1nf 每乙個都是最原子化。2nf 找到主鍵後,每乙個非主鍵對主鍵都是完全依賴。想要看是否為2nf,首先要找錶的主鍵,之後看所有的非主鍵要對關鍵碼是完全依賴,也就是不存在部分依賴,如果有部分依賴則不滿足2nf,否則滿足2nf,比如乙個關係的關鍵碼為 x,y 非主屬性為z首先因為 x,y 是關鍵...
資料庫正規化1NF 2NF 3NF詳細闡述
正規化 關聯式資料庫中的關係是要滿足一定要求的,滿足不同程度要求的不同正規化。滿足最低要求的叫第一正規化,簡稱1nf 在第一正規化中滿足進一步要求的為第二正規化,其餘以此類推。通俗來說是滿足資料庫關係表中的一套規則。正規化理論研究 codd提出1nf,2nf,3nf概念 2nf 例如 有關係模式s ...