mysql 三范式及逆范式

數(shù)據(jù)庫設(shè)計當(dāng)中三范式是經(jīng)常遇到的

1.第一范式

第一范式(1NF)所謂第一范式(1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個值筛谚,即實(shí)體中的某個屬性不能有多個值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性尊沸,就可能需要定義一個新的實(shí)體谤祖,新的實(shí)體由重復(fù)的屬性構(gòu)成兄世,新實(shí)體與原實(shí)體之間為一對多關(guān)系敬拓。在第一范式(1NF)中表的每一行只包含一個實(shí)例的信息邻薯。

在任何一個關(guān)系數(shù)據(jù)庫中,第一范式(1NF)是對關(guān)系模式的基本要求乘凸,不滿足第一范式(1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫厕诡。
確保數(shù)據(jù)表中每列(字段)的原子性。列不可分营勤。

如果數(shù)據(jù)表中每個字段都是不可再分的最小數(shù)據(jù)單元木人,則滿足第一范式信柿。

例如:user用戶表冀偶,包含字段id,username,password

2. 第二范式(依賴性)

第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的醒第,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實(shí)例或行必須可以被惟一的區(qū)分进鸠。為實(shí)現(xiàn)區(qū)分通常需要為表加上一個列稠曼,以存儲各個實(shí)例的惟一標(biāo)識。要求實(shí)體的屬性完全依賴于主關(guān)鍵字客年。不能部分依賴霞幅。即:一張表存在組合主鍵時,其他非主鍵字段不能部分依賴量瓜。
在第一范式的基礎(chǔ)上更進(jìn)一步司恳,目標(biāo)是確保表中的每列都和主鍵相關(guān)。

如果一個關(guān)系滿足第一范式绍傲,并且除了主鍵之外的其他列扔傅,都依賴于該主鍵,則滿足第二范式烫饼。

例如:一個用戶只有一種角色猎塞,而一個角色對應(yīng)多個用戶。則可以按如下方式建立數(shù)據(jù)表關(guān)系杠纵,使其滿足第二范式荠耽。

user用戶表,字段id,username,password,role_id

role角色表比藻,字段id,name

用戶表通過角色id(role_id)來關(guān)聯(lián)角色表

3. 第三范式(唯一性)

滿足第三范式(3NF)必須先滿足第二范式(2NF)铝量。簡而言之,第三范式(3NF)要求一個數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息银亲。例如慢叨,存在一個部門信息表,其中每個部門有部門編號(dept_id)群凶、部門名稱插爹、部門簡介等信息。那么在員工信息表中列出部門編號后就不能再將部門名稱请梢、部門簡介等與部門有關(guān)的信息再加入員工信息表中赠尾。如果不存在部門信息表,則根據(jù)第三范式(3NF)也應(yīng)該構(gòu)建它毅弧,否則就會有大量的數(shù)據(jù)冗余气嫁。簡而言之,第三范式就是屬性不依賴于其它非主屬性够坐。
表中的非主屬性必須依賴于主屬性才能被獲取寸宵、減少依賴崖面,①數(shù)據(jù)冗余問題不能有重復(fù)信息;②如有大量的重復(fù)信息梯影,應(yīng)該另建表巫员。

4. 逆范式

逆范式化指的是通過增加冗余或重復(fù)的數(shù)據(jù)來提高數(shù)據(jù)庫的讀性能。

例如:在上例中的user_role用戶-角色中間表增加字段role_name甲棍。

逆范式化可以減少關(guān)聯(lián)查詢時简识,join表的次數(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末感猛,一起剝皮案震驚了整個濱河市七扰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陪白,老刑警劉巖颈走,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咱士,居然都是意外死亡立由,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進(jìn)店門司致,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拆吆,“玉大人,你說我怎么就攤上這事脂矫≡嬉” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵庭再,是天一觀的道長捞奕。 經(jīng)常有香客問我,道長拄轻,這世上最難降的妖魔是什么颅围? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮恨搓,結(jié)果婚禮上院促,老公的妹妹穿的比我還像新娘。我一直安慰自己斧抱,他們只是感情好常拓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辉浦,像睡著了一般弄抬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宪郊,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天掂恕,我揣著相機(jī)與錄音拖陆,去河邊找鬼。 笑死懊亡,一個胖子當(dāng)著我的面吹牛依啰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播斋配,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼孔飒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了艰争?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤桂对,失蹤者是張志新(化名)和其女友劉穎甩卓,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕉斜,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逾柿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宅此。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片机错。...
    茶點(diǎn)故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖父腕,靈堂內(nèi)的尸體忽然破棺而出弱匪,到底是詐尸還是另有隱情,我是刑警寧澤璧亮,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布萧诫,位于F島的核電站,受9級特大地震影響枝嘶,放射性物質(zhì)發(fā)生泄漏帘饶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一群扶、第九天 我趴在偏房一處隱蔽的房頂上張望及刻。 院中可真熱鬧,春花似錦竞阐、人聲如沸缴饭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茴扁。三九已至,卻和暖如春汪疮,著一層夾襖步出監(jiān)牢的瞬間峭火,已是汗流浹背毁习。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卖丸,地道東北人纺且。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像稍浆,于是被迫代替她去往敵國和親载碌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評論 2 348

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法衅枫,類相關(guān)的語法嫁艇,內(nèi)部類的語法,繼承相關(guān)的語法弦撩,異常的語法步咪,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 數(shù)據(jù)庫開發(fā)規(guī)范1. 數(shù)據(jù)庫命名規(guī)范前綴對象前綴命名: 前綴命名一般用小寫表的前綴: 業(yè)務(wù)模塊組名前綴存儲過程前綴:...
    PowerYangSoft閱讀 2,445評論 0 8
  • 回顧 字段類型(列類型):數(shù)值型,時間日期型和字符串類型 數(shù)值型:整型和小數(shù)型(浮點(diǎn)型和定點(diǎn)型) 時間日期型:da...
    翊溪閱讀 931評論 0 0
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,805評論 0 11
  • 輕輕地 哦!不 是冷冷地 我回到家鄉(xiāng) 剛下火車 一個從南方歸來到北方家的學(xué)生黨 都說 風(fēng)雪夜歸人 咦感凤?咦~ 悯周! 哦...