MySQL中數(shù)據(jù)中設(shè)計中的范式與反范式

目前關(guān)系數(shù)據(jù)庫有六種范式:第一范式(1NF)六剥、第二范式(2NF)、第三范式(3NF)峰伙、巴斯-科德范式(BCNF)疗疟、第四范式(4NF)和第五范式(5NF,又稱完美范式)词爬。滿足最低要求的范式是第一范式(1NF)秃嗜。在第一范式的基礎(chǔ)上進一步滿足更多規(guī)范要求的稱為第二范式(2NF),其余范式以次類推顿膨。一般說來锅锨,數(shù)據(jù)庫只需滿足第三范式(3NF)就行了。

三范式

第一范式(1NF)

即表的列的具有原子性,不可再分解恋沃,即列的信息必搞,不能分解, 只要數(shù)據(jù)庫是關(guān)系型數(shù)據(jù)庫(mysql/oracle/db2/informix/sysbase/sql server),就自動的滿足1NF囊咏。

關(guān)系型數(shù)據(jù)庫: mysql/oracle/db2/informix/sysbase/sql server

非關(guān)系型數(shù)據(jù)庫: (特點: 面向?qū)ο蠡蛘呒?

NoSql數(shù)據(jù)庫: MongoDB/redis(特點是面向文檔)

第二范式(2NF)

第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的恕洲,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被惟一地區(qū)分梅割。為實現(xiàn)區(qū)分通常需要我們設(shè)計一個主鍵來實現(xiàn)(這里的主鍵不包含業(yè)務(wù)邏輯)

第三范式(3NF)

滿足第三范式(3NF)必須先滿足第二范式(2NF)霜第。簡而言之,第三范式(3NF)要求一個數(shù)據(jù)庫表中不包含已在其它表中已包含的非主鍵字段户辞。就是說泌类,表的信息,如果能夠被推導(dǎo)出來底燎,就不應(yīng)該單獨的設(shè)計一個字段來存放(能盡量外鍵join就用外鍵join)刃榨。很多時候,我們?yōu)榱藵M足第三范式往往會把一張表分成多張表

反三范式

沒有冗余的數(shù)據(jù)庫未必是最好的數(shù)據(jù)庫双仍,有時為了提高運行效率枢希,就必須降低范式標準,適當保留冗余數(shù)據(jù)朱沃。具體做法是: 在概念數(shù)據(jù)模型設(shè)計時遵守第三范式苞轿,降低范式標準的工作放到物理數(shù)據(jù)模型設(shè)計時考慮。降低范式就是增加字段逗物,減少了查詢時的關(guān)聯(lián)搬卒,提高查詢效率,因為在數(shù)據(jù)庫的操作中查詢的比例要遠遠大于DML的比例敬察。但是反范式化一定要適度,并且在原本已滿足三范式的基礎(chǔ)上再做調(diào)整的尔当。


知乎上對范式和反范式的理解

數(shù)據(jù)庫設(shè)計應(yīng)該也是分為三個境界的:

第一個境界莲祸,剛?cè)腴T數(shù)據(jù)庫設(shè)計蹂安,范式的重要性還未深刻理解。這時候出現(xiàn)的反范式設(shè)計锐帜,一般會出問題田盈。

第二個境界,隨著遇到問題解決問題缴阎,漸漸了解到范式的真正好處允瞧,從而能快速設(shè)計出低冗余、高效率的數(shù)據(jù)庫蛮拔。

第三個境界述暂,再經(jīng)過N年的鍛煉,是一定會發(fā)覺范式的局限性的建炫。此時再去打破范式畦韭,設(shè)計更合理的反范式部分。

范式就像武俠里面的招數(shù)肛跌,初學(xué)者妄想不按招數(shù)來艺配,只能死的很難堪。畢竟招數(shù)都是高手總結(jié)歸納的精華衍慎。而隨著武功提高转唉,招數(shù)熟練之后,必然是發(fā)現(xiàn)招數(shù)的局限性稳捆,要么忘掉招數(shù)赠法,要么自創(chuàng)招數(shù)。只要努力眷柔,加上多熬幾年期虾,總能達到第二個境界,總會覺得范式是經(jīng)典驯嘱。此時能不過分依賴范式镶苞,快速突破范式局限性的人,自然是高手鞠评。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茂蚓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子剃幌,更是在濱河造成了極大的恐慌聋涨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件负乡,死亡現(xiàn)場離奇詭異牍白,居然都是意外死亡,警方通過查閱死者的電腦和手機抖棘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門茂腥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狸涌,“玉大人,你說我怎么就攤上這事最岗∨恋ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵般渡,是天一觀的道長懒豹。 經(jīng)常有香客問我,道長驯用,這世上最難降的妖魔是什么脸秽? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮晨汹,結(jié)果婚禮上豹储,老公的妹妹穿的比我還像新娘。我一直安慰自己淘这,他們只是感情好剥扣,可當我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著铝穷,像睡著了一般钠怯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上曙聂,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天晦炊,我揣著相機與錄音,去河邊找鬼宁脊。 笑死断国,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的榆苞。 我是一名探鬼主播稳衬,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坐漏!你這毒婦竟也來了薄疚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤赊琳,失蹤者是張志新(化名)和其女友劉穎街夭,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躏筏,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡板丽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了趁尼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埃碱。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡碴卧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乃正,到底是詐尸還是另有隱情,我是刑警寧澤婶博,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布瓮具,位于F島的核電站,受9級特大地震影響凡人,放射性物質(zhì)發(fā)生泄漏名党。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一挠轴、第九天 我趴在偏房一處隱蔽的房頂上張望传睹。 院中可真熱鬧,春花似錦岸晦、人聲如沸欧啤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邢隧。三九已至,卻和暖如春冈在,著一層夾襖步出監(jiān)牢的瞬間倒慧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工包券, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纫谅,地道東北人。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓溅固,卻偏偏與公主長得像付秕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子发魄,可洞房花燭夜當晚...
    茶點故事閱讀 43,499評論 2 348

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