感覺這是個相當(dāng)獨立的部分扒吁,寫一起不太好灌灾,但是又很重要
三個范式1NF,2NF,3NF
定義感覺有點復(fù)雜遇骑,沒記太住恒削,簡單點吧
把大象裝冰箱總共分這么幾步
首先確定數(shù)據(jù)庫涉及的最小單元,及相互依賴關(guān)系
- 最小數(shù)據(jù)單元好確定
- 依賴關(guān)系比較復(fù)雜怀薛,以下圖為例刺彩,主要分為
1.完全依賴,枝恋,系名完全依賴于學(xué)號
2.部分依賴创倔,,分數(shù)依賴于學(xué)號和課名
3.傳遞函數(shù)依賴焚碌,畦攘,系主任依賴于系名依賴于學(xué)號,系主任傳遞依賴于學(xué)號 -
碼十电,某些元素中知押,除K之外的所有元素都完全依賴于K,K就是一個碼了
一個例子
1NF
就是分解鹃骂,這步最簡單台盯,上圖就是分解后的
2NF
這步理論上是將存在部分依賴關(guān)系的屬性剝離,上圖中畏线,明顯得出學(xué)號静盅,課名,分數(shù)三個屬性是部分依賴關(guān)系寝殴,將其單獨列成表
表1
表2
3NF
最后一步是去除傳遞函數(shù)依賴蒿叠,主要是修正圖2中幾個屬性的依賴,明顯得出學(xué)號杯矩,姓名是一組栈虚,二者理論相等袖外,但學(xué)號更適合做主鍵史隆,系名和系主任也是理論相等,不過出于便于理解的角度考慮曼验,可以認為系主任依賴于系名泌射,那就表明系主任->系名->學(xué)號粘姜,構(gòu)成傳遞函數(shù)依賴,消除它熔酷,拆成學(xué)號孤紧,姓名,系名和系名拒秘,系主任兩個表如下圖号显,
不過要是按學(xué)號->姓名和學(xué)號->系名->系主任,也是可以的躺酒,只是感覺有點別扭
表1
表2
表3
實踐
這次實際情況來說押蚤,就比較簡單了客戶->鴿子->軌跡->數(shù)據(jù)點,全部是傳遞函數(shù)依賴羹应,那自然要直接拆3個表
齊活