1. 程式人生 > >資料庫模型設計,第一正規化、第二正規化、第三正規化簡單例子理解

資料庫模型設計,第一正規化、第二正規化、第三正規化簡單例子理解

資料庫設計一般滿足第三正規化就夠了 第一正規化(無重複的列定義:資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。如果實體中的某個屬性有多個值時,必須拆分為不同的屬性 通俗解釋:一個欄位只儲存一項資訊 eg:班級:高三年1班,應改為2個欄位,一個年級、一個班級,才滿足第一正規化 不滿足第一正規化
學號 姓名 班級
0001 小紅 高三年1班
改成
學號 姓名 年級 班級
0001 小紅 高三年 1班
第二正規化(屬性完全依賴於主鍵) 定義:滿足第一正規化前提,當存在多個主鍵的時候,才會發生不符合第二正規化的情況。比如有兩個主鍵,不能存在這樣的屬性,它只依賴於其中一個主鍵,這就是不符合第二正規化
通俗解釋:任意一個欄位都只依賴表中的同一個欄位 eg:比如不符合第二正規化
學生證 名稱 學生證號 學生證辦理時間 借書證名稱 借書證號 借書證辦理時間
改成2張表如下 學生證表
學生證 學生證號 學生證辦理時間

借書證表
借書證 借書證號 借書證把你拉時間
第三正規化(屬性不能傳遞依賴於主屬性) 定義:滿足第二正規化前提,如果某一屬性依賴於其他非主鍵屬性,而其他非主鍵屬性又依賴於主鍵,那麼這個屬性就是間接依賴於主鍵,這被稱作傳遞依賴於主屬性。 通俗理解:一張表最多隻存2層同類型資訊 eg:爸爸資料表,不滿足第三正規化
爸爸 兒子 女兒 女兒的小熊 女兒的海綿寶寶
改成
爸爸資訊表:
爸爸 兒子 女兒
女兒資訊表
女兒 女兒的小熊 女兒的海綿寶寶