資料庫 函式依賴及正規化(通俗易懂)

2021-10-05 07:06:25 字數 1565 閱讀 4498

函式依賴是指關係中屬性間(或者說是表中字段間)的對應關係。

定義:設 r 為任一給定關係,如果對於 r 中屬性 x 的每乙個值,r 中的屬性 y 只有唯一值與之對應,則稱 x 函式決定 y 或稱 y 函式依賴於 x ,記作 x—>y。其中,x 稱為決定因素。

通俗一點,就是給定乙個 x 都有唯一的 y。可以理解為函式 y = f(x); 對於任意的 x 都有唯一的 y ,且 y 的取值由 x 決定。

例如:學生號—>學生姓名,學生年齡等等有關該學生的所有資訊

反之,像學生姓名不能決定唯一的學生,因為存在同名的可能,這種情況就不能稱作函式依賴。

1、碼=超鍵:能夠唯一標識一條記錄的屬性或屬性集。

標識性:乙個資料表的所有記錄都具有不同的超鍵

非空性:不能為空

有些時候也把碼稱作「鍵」

2、候選鍵=候選碼:能夠唯一標識一條記錄的最小屬性集

標識性:乙個資料表的所有記錄都具有不同的候選鍵

最小性:任一候選鍵的任何真子集都不能唯一標識乙個記錄(比如在成績表中(學號,課程號)是乙個候選鍵,單獨的學號,課程號都不能決定一條記錄)

非空性:不能為空

候選鍵是沒有多餘屬性的超鍵

舉例:學生id是候選碼,那麼含有候選碼的都是碼。

少部分地方也有叫超級碼的,但是見得不多

3、主鍵=主碼:某個能夠唯一標識一條記錄的最小屬性集(是從候選碼裡人為挑選的一條)

唯一性:乙個資料表只能有乙個主鍵

標識性:乙個資料表的所有記錄都具有不同的主鍵取值

非空性:不能為空

人為的選取某個候選碼為主碼

4、主屬性 包含在任一候選碼中的屬性稱主屬性。簡單來說,主屬性是候選碼所有屬性的並集

非主屬性  不包含在候選碼中的屬性稱為非主屬性。 非主屬性是相對於主屬性來定義的。
5、外來鍵(foreign key):子資料表**現的父資料表的主鍵,稱為子資料表的外來鍵。

6、全碼:當所有的屬性共同構成乙個候選碼時,這時該候選碼為全碼。(教師,課程,學生)假如乙個教師可以講授多門課程,某門課程可以有多個教師講授,學生可以聽不同教師講授的不同課程,那麼,要區分關係中的每乙個元組,這個關係模式r的候選碼應為全部屬性構成 (教師、課程、學生),即主碼。

7、**鍵:當不適合用任何乙個候選鍵作為主鍵時(如資料太長等),新增乙個沒有實際意義的鍵作為主鍵,這個鍵就是**鍵。(如常用的序號1、2、3)

8、自然鍵:自然生活中唯一能夠標識一條記錄的鍵(如身份證)

第一正規化(1nf):屬性不可分。

第二正規化(2nf):符合1nf,並且,非主屬性完全依賴於碼。

第三正規化(3nf):符合2nf,並且,消除傳遞依賴

bc正規化(bcnf):符合3nf,並且,主屬性不依賴於主屬性

若關係模式屬於第一正規化,且每個屬性都不傳遞依賴於鍵碼,則r屬於bc正規化。

通常bc正規化的條件有多種等價的表述:每個非平凡依賴的左邊必須包含鍵碼;每個決定因素必須包含鍵碼。bc正規化既檢查非主屬性,又檢查主屬性。當只檢查非主屬性時,就成了第三正規化。滿足bc正規化的關係都必然滿足第三正規化。還可以這麼說:若乙個關係達到了第三正規化,並且它只有乙個候選碼,或者它的每個候選碼都是單屬性,則該關係自然達到bc正規化。

通俗易懂的資料庫「正規化」教程

貫穿全文的乙個例子。第一正規化 1nf 幾個重要的概念。第二正規化 2nf 第三正規化 3nf bc正規化 bcnf 第四正規化 4nf 插入異常 如果目前開設了計算機系,但是尚未招生,那麼計算機系是無法插入到表的系名中的,學號,課名 是主屬性,不能為空。刪除異常 如果經濟系的學生全部畢業了,在刪除...

資料庫三大正規化詳解(通俗易懂)

正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是 1nf,2nf,3nf,b...

資料庫三大正規化詳解(通俗易懂)

正規化 英文名稱是 normal form,它是英國人 e.f.codd 關聯式資料庫的老祖宗 在上個世紀70年代提出關聯式資料庫模型後總結出來的,正規化是關聯式資料庫理論的基礎,也是我們在設計資料庫結構過程中所要遵循的規則和指導方法。目前有跡可尋的共有8種正規化,依次是 1nf,2nf,3nf,b...