數(shù)據(jù)庫(第一范式阴挣,第二范式,第三范式)

范式來自于英文Normal form纺腊,簡稱NF畔咧。要想設(shè)計(jì)一個好的關(guān)系,必須使得關(guān)系滿足一定的約束條件揖膜,此約束已經(jīng)形成了規(guī)范誓沸,分成幾個等級,一級比一級要求的嚴(yán)格壹粟。滿足這些規(guī)范的數(shù)據(jù)庫是簡潔的拜隧、結(jié)構(gòu)清晰的。同時不會發(fā)生插入趁仙、刪除洪添、更新操作異常。

第一范式:是指在關(guān)系模型中雀费,對于添加的一個規(guī)范要求干奢,所有的域應(yīng)該都是原子性的。即數(shù)據(jù)庫中的每一列都是不可分割的原子數(shù)據(jù)項(xiàng)坐儿,而不能是集合律胀、數(shù)組,記錄等原子數(shù)據(jù)項(xiàng)貌矿。即實(shí)體中的某個屬性有多個值時炭菌,必須拆分為不同的屬性。在符合第一范式(1NF)表中的每個域值只能是實(shí)體的一個屬性或者屬性的一部分逛漫。簡而言之黑低,第一范式就是無重復(fù)的域。

例如:考慮這樣一個表:【聯(lián)系人】(姓名,性別克握,電話)

如果在實(shí)際場景中蕾管,一個聯(lián)系人有家庭電話和公司電話,那么這種表結(jié)構(gòu)設(shè)計(jì)就沒有達(dá)到 1NF菩暗。要符合 1NF 我們只需把列(電話)拆分掰曾,即:【聯(lián)系人】(姓名,性別停团,家庭電話旷坦,公司電話)。1NF 很好辨別佑稠,但是 2NF 和 3NF 就容易搞混淆秒梅。


第二范式:

2NF要求的是對記錄的唯一性,要求記錄有唯一標(biāo)識舌胶,即實(shí)體的唯一性捆蜀,即不存在部分依賴。沒有包含主鍵的列必須完全依賴于主鍵幔嫂,而不能只依賴于主鍵的一部分辆它。

例如:表:學(xué)號、課程號履恩、姓名娩井、學(xué)分;

這個表明顯說明了兩個事務(wù):學(xué)生信息, 課程信息;由于非主鍵字段必須依賴主鍵,這里學(xué)分依賴課程號似袁,姓名依賴與學(xué)號,所以不符合二范式咐刨。

可能出現(xiàn)的問題:

數(shù)據(jù)冗余:每條記錄都含有相同信息

刪除異常:刪除所有學(xué)生成績昙衅,就把課程信息全刪除了;

插入異常:學(xué)生未選課定鸟,無法記錄進(jìn)數(shù)據(jù)庫而涉;

更新異常:調(diào)整課程學(xué)分,所有行都調(diào)整联予。

正確做法:

學(xué)生:Student(學(xué)號, 姓名)啼县;

課程:Course(課程號, 學(xué)分);

選課關(guān)系:StudentCourse(學(xué)號, 課程號, 成績)沸久。



第三范式:

在2NF基礎(chǔ)上季眷,任何非主屬性不依賴于其它非主屬性(在2NF基礎(chǔ)上消除傳遞依賴)。即不能存在:

非主鍵列A依賴于非主鍵列B卷胯,非主鍵列B依賴于主鍵的情況子刮。

考慮一個訂單表【Order】(OrderID,OrderDate,CustomerID挺峡,CustomerName葵孤,CustomerAddr,CustomerCity)主鍵是(OrderID)橱赠。其中 OrderDate尤仍,CustomerID,CustomerName狭姨,CustomerAddr宰啦,CustomerCity 等非主鍵列都完全依賴于主鍵(OrderID),所以符合 2NF送挑。不過問題是 CustomerName绑莺,CustomerAddr,CustomerCity 直接依賴的是 CustomerID(非主鍵列)惕耕,而不是直接依賴于主鍵纺裁,它是通過傳遞才依賴于主鍵,所以不符合 3NF司澎。

通過拆分【Order】為【Order】(OrderID欺缘,OrderDate,CustomerID)和【Customer】(CustomerID挤安,CustomerName谚殊,CustomerAddr,CustomerCity)從而達(dá)到 3NF蛤铜。

第二范式(2NF)和第三范式(3NF)的概念很容易混淆嫩絮,區(qū)分它們的關(guān)鍵點(diǎn)在于,2NF:非主鍵列是否完全依賴于主鍵围肥,還是依賴于主鍵的一部分剿干;3NF:非主鍵列是直接依賴于主鍵,還是直接依賴于非主鍵列穆刻。






引用:
https://blog.csdn.net/famousdt/article/details/6921622

https://segmentfault.com/a/1190000013695030

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末置尔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子氢伟,更是在濱河造成了極大的恐慌榜轿,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朵锣,死亡現(xiàn)場離奇詭異谬盐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)猪勇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門设褐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事助析∠唬” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵外冀,是天一觀的道長寡键。 經(jīng)常有香客問我,道長雪隧,這世上最難降的妖魔是什么西轩? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮脑沿,結(jié)果婚禮上藕畔,老公的妹妹穿的比我還像新娘。我一直安慰自己庄拇,他們只是感情好注服,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著措近,像睡著了一般溶弟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞭郑,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天辜御,我揣著相機(jī)與錄音,去河邊找鬼屈张。 笑死擒权,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的阁谆。 我是一名探鬼主播菜拓,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼笛厦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起俺夕,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤裳凸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后劝贸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姨谷,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年映九,在試婚紗的時候發(fā)現(xiàn)自己被綠了梦湘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖捌议,靈堂內(nèi)的尸體忽然破棺而出哼拔,到底是詐尸還是另有隱情,我是刑警寧澤瓣颅,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布倦逐,位于F島的核電站,受9級特大地震影響宫补,放射性物質(zhì)發(fā)生泄漏檬姥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一粉怕、第九天 我趴在偏房一處隱蔽的房頂上張望健民。 院中可真熱鬧,春花似錦贫贝、人聲如沸秉犹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凤优。三九已至,卻和暖如春蜈彼,著一層夾襖步出監(jiān)牢的瞬間筑辨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工幸逆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留棍辕,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓还绘,卻偏偏與公主長得像楚昭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拍顷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容