關於函式依賴以及碼的相關知識麻煩讀者自己學習,這裡只解釋各個正規化之間的區別及定義!
先來看看第一正規化,第一正規化是資料庫關係模式的基礎,換句話說,起碼必須滿足第一正規化才是正確的,那麼什麼是第一正規化呢?
第一正規化就是在乙個關係模式內,不能存在還可以再分的屬性,即所有屬性都必須是簡單屬性(不能再分了)
例如:乙個關係模式(學校,學生,**),學生還可以分為學號以及姓名,關係模式就部分和第一正規化的條件。
第二正規化的基礎就是要先滿足第一正規化,在第一正規化的基礎上,要求在模式內非主屬性都必須完全函式依賴於任何乙個候選碼。
例如:(學號,系,住處,課程號,學分)這個模式內(學號,課程號)作為主碼,而學分這個非主屬性就部分依賴於這個主碼,所以這個關係模式就不符合第二正規化,如果想要它符合第二正規化,就需要將他拆分為兩個關係表:(學號,課程號,系,住處),(課程號,學分)課程號作為外碼使用。
第三正規化的基礎是先滿足第二正規化,在第二正規化的基礎上要求每個非主屬性都不傳遞依賴於任何乙個候選碼。
向上面拆分了的第乙個表(學號,課程號,系,住處)就不滿足第三正規化,因為學號決定系,而係可以決定住處,所以可以得到傳遞依賴學號決定住處,所以這個表不滿足第三正規化。
bc正規化的基礎是先滿足第三正規化,在第三正規化的基礎上要求每個屬性都不部分依賴於任何乙個候選碼以及每個屬性都不傳遞依賴與任何乙個候選碼。可以說bc正規化已經可以滿足大多數情境的需要了。
例如:對於乙個關係模式(學生,教師,課程)中,(學生,課程)-> 教師,(學生,教師)-> 課程,教師 -> 課程,其中教師不是候選碼,他卻決定了其他的非主屬性,所以該關係模式不屬於bc正規化。
有錯請及時告知
第一正規化,第二正規化,第三正規化
第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...
第一正規化,第二正規化,第三正規化
第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...
第一正規化,第二正規化,第三正規化
第一正規化 存在非主屬性對碼的部分依賴關係 r a,b,c ab是碼 c是非主屬性 b c b決定c c部分依賴於b 第一正規化 定義 如果關係r 中所有屬性的值域都是單純域,那麼關係模式r是第一正規化的 那麼符合第一模式的特點就有 1 有主關鍵字 2 主鍵不能為空,3 主鍵不能重複,4 欄位不可以...