關係模式正規化級別判斷 關聯式資料庫設計理論

2021-10-11 23:09:16 字數 1324 閱讀 1835

函式依賴

記 a->b 表示 a 函式決定 b,也可以說 b 函式依賴於 a。

如果 是關係的乙個或多個屬性的集合,該集合函式決定了關係的其它所有屬性並且是最小的,那麼該集合就稱為鍵碼。

對於 a->b,如果能找到 a 的真子集 a',使得 a'-> b,那麼 a->b 就是部分函式依賴,否則就是完全函式依賴。

對於 a->b,b->c,則 a->c 是乙個傳遞函式依賴。

異常以下的學生課程關係的函式依賴為 -> ,鍵碼為 。也就是說,確定學生和課程之後,就能確定其它資訊。

snosnamesdeptmnamecnamegrade1學生-1學院-1院長-1課程-1902學生-2學院-2院長-2課程-2802學生-2學院-2院長-2課程-11003學生-3學院-2院長-2課程-295

不符合正規化的關係,會產生很多異常,主要有以下四種異常:

正規化正規化理論是為了解決以上提到四種異常。

高階別正規化的依賴於低階別的正規化,1nf 是最低級別的正規化。

1. 第一正規化 (1nf)

屬性不可分。

2. 第二正規化 (2nf)

每個非主屬性完全函式依賴於鍵碼。

可以通過分解來滿足。

分解前

snosnamesdeptmnamecnamegrade1學生-1學院-1院長-1課程-1902學生-2學院-2院長-2課程-2802學生-2學院-2院長-2課程-11003學生-3學院-2院長-2課程-295

以上學生課程關係中, 為鍵碼,有如下函式依賴:

grade 完全函式依賴於鍵碼,它沒有任何冗餘資料,每個學生的每門課都有特定的成績。

sname, sdept 和 mname 都部分依賴於鍵碼,當乙個學生選修了多門課時,這些資料就會出現多次,造成大量冗餘資料。

分解後

關係-1

snosnamesdeptmname1學生-1學院-1院長-12學生-2學院-2院長-23學生-3學院-2院長-2

有以下函式依賴:

關係-2

snocnamegrade1課程-1902課程-2802課程-11003課程-295

有以下函式依賴:

3. 第三正規化 (3nf)

非主屬性不傳遞函式依賴於鍵碼。

上面的 關係-1 中存在以下傳遞函式依賴:

可以進行以下分解:

關係-11

snosnamesdept1學生-1學院-12學生-2學院-23學生-3學院-2

關係-12

sdeptmname學院-1院長-1學院-2院長-2

關聯式資料庫正規化

在建立乙個資料庫的過程中,必須依照一定的準則,這些準則被稱為正規化,從第一到第六共六個正規化,一般資料庫設計只要遵循第一正規化,第二正規化,和第三正規化就足夠了。滿足這些規範的資料庫是簡潔的 結構明晰的,同時,不會發生插入 insert 刪除 delete 和更新 update 操作異常。反之則是亂...

關聯式資料庫正規化

判斷是第幾正規化 概念 設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。種類 目前關聯式資料庫有六種正規化 第一正規化 1nf 第二正規化 2nf 第三正規化 3nf 巴斯 科德正規化 bcnf...

關係 關係模式 關聯式資料庫

表student 在關係模型的術語中,關係用來指代表,而元組用來指代行。類似地,屬性指代的是表中的列。在表student中有五個屬性 sno sname s sage和sdept。我們用關係例項這個術語來表示乙個關係的特定例項,也就是所包含的一組特定的行。表student的例項中有5個元組,對應5個...