第一范式
特點:符合1NF的關系中的每個屬性都不可再分
存在問題:
數(shù)據(jù)冗余過大
插入異常
刪除異常
修改異常
1.每一名學生的學號、姓名、系名瓶蚂、系主任這些數(shù)據(jù)重復多次窃这。每個系與對應的系主任的數(shù)據(jù)也重復多次——數(shù)據(jù)冗余過大
- 假如學校新建了一個系,但是暫時還沒有招收任何學生(比如3月份就新建了杭攻,但要等到8月份才招生)兆解,那么是無法將系名與系主任的數(shù)據(jù)單獨地添加到數(shù)據(jù)表中去的 (注1)——插入異常
注1:根據(jù)三種關系完整性約束中實體完整性的要求,關系中的碼(注2)所包含的任意一個屬性都不能為空埠巨,所有屬性的組合也不能重復现拒。為了滿足此要求,圖中的表勋桶,只能將學號與課名的組合作為碼侥猬,否則就無法唯一地區(qū)分每一條記錄。
注2:碼:關系中的某個屬性或者某幾個屬性的組合眠饮,用于區(qū)分每個元組(可以把“元組”理解為一張表中的每條記錄铜邮,也就是每一行)寨蹋。
3.假如將某個系中所有學生相關的記錄都刪除已旧,那么所有系與系主任的數(shù)據(jù)也就隨之消失了(一個系所有學生都沒有了召娜,并不表示這個系就沒有了)〗斩铮——刪除異常
4.假如李小明轉(zhuǎn)系到法律系雅倒,那么為了保證數(shù)據(jù)庫中數(shù)據(jù)的一致性,需要修改三條記錄中系與系主任的數(shù)據(jù)劣欢〔昧迹——修改異常。
第二范式
2NF在1NF的基礎上牧抵,消除了非主屬性對于碼的部分函數(shù)依賴灭忠。
函數(shù)依賴:我們可以這么理解(但并不是特別嚴格的定義):若在一張表中座硕,在屬性(或?qū)傩越M)X的值確定的情況下,必定能確定屬性Y的值映琳,那么就可以說Y函數(shù)依賴于X蜘拉,寫作 X → Y。也就是說谎脯,在數(shù)據(jù)表中持寄,不存在任意兩條記錄娱俺,它們在X屬性(或?qū)傩越M)上的值相同废麻,而在Y屬性上的值不同荠卷。這也就是“函數(shù)依賴”名字的由來,類似于函數(shù)關系 y = f(x)烛愧,在x的值確定的情況下油宜,y的值一定是確定的。
完全函數(shù)依賴:在一張表中怜姿,若 X → Y慎冤,且對于 X 的任何一個真子集(假如屬性組 X 包含超過一個屬性的話),X ' → Y 不成立沧卢,那么我們稱 Y 對于 X 完全函數(shù)依賴蚁堤,記作 X F→ Y。
例子:學生基本信息表R(學號搏恤,班級违寿,姓名)假設不同的班級學號有相同的熟空,班級內(nèi)學號不能相同,在R關系中搞莺,(學號息罗,班級)->(姓名),但是(學號)->(姓名)不成立才沧,(班級)->(姓名)不成立迈喉,所以姓名完全函數(shù)依賴與(學號,班級)温圆;
部分函數(shù)依賴:假如 Y 函數(shù)依賴于 X挨摸,但同時 Y 并不完全函數(shù)依賴于 X,那么我們就稱 Y 部分函數(shù)依賴于 X岁歉,記作 X P→ Y
例子:學生基本信息表R中(學號得运,身份證號,姓名)當然學號屬性取值是唯一的锅移,在R關系中熔掺,(學號,身份證號)->(姓名)非剃,(學號)->(姓名)置逻,(身份證號)->(姓名);所以姓名部分函數(shù)依賴與(學號备绽,身份證號)券坞;
傳遞函數(shù)依賴:假如 Z 函數(shù)依賴于 Y鬓催,且 Y 函數(shù)依賴于 X 那么我們就稱 Z 傳遞函數(shù)依賴于 X ,記作 X T→ Z
碼:
設 K 為某表中的一個屬性或?qū)傩越M报慕,若除 K 之外的所有屬性都完全函數(shù)依賴于 K(這個“完全”不要漏了)深浮,那么我們稱 K 為候選碼,簡稱為碼眠冈。在實際中我們通撤晌可以理解為:假如當 K 確定的情況下,該表除 K 之外的所有屬性的值也就隨之確定蜗顽,那么 K 就是碼布卡。一張表中可以有超過一個碼。(實際應用中為了方便雇盖,通常選擇其中的一個碼作為主碼)
學號和課名就是碼
非主屬性
包含在任何一個碼中的屬性成為主屬性忿等。那么除去主屬性之外的屬性都是非主屬性
第三范式
定義:
第三范式是在第二范式的基礎上定義的,
消除了非主屬性對于碼的傳遞函數(shù)依賴
商品名稱|價格|商品名稱|重量|有效期|分類|分類描述
------------|------|------------|------|---------|------|------------
可樂|3.00| | 250ml|2014.6|酒水飲料|碳酸飲料
蘋果|8.00| |500g| | 生鮮食品|水果
存在以下轉(zhuǎn)遞函數(shù)依賴關系:
(商品名稱)->(分類)->(分類描述)
也就是說存在非關鍵字段“分類描述”
對關鍵字段“商品名稱”的傳遞函數(shù)依賴
存在的問題:
(分類崔挖,分類描述)對于每一個商品都會進行記錄贸街,所以存在著數(shù)據(jù)冗余。同時也還存在數(shù)據(jù)的插入狸相。更新及刪除異常