這篇文章給大家分享的是有關(guān)MySQL數(shù)據(jù)庫的四個范式分別是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站設計、成都網(wǎng)站制作、襄城網(wǎng)絡推廣、微信小程序開發(fā)、襄城網(wǎng)絡營銷、襄城企業(yè)策劃、襄城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供襄城建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:m.rwnh.cn
1、1NF(第一范式)
第一范式是指數(shù)據(jù)庫表中的每一列都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。
如果出現(xiàn)重復的屬性,就可能需要定義一個新的實體,新的實體由重復的屬性構(gòu)成,新實體與原實體之間為一對多關(guān)系。第一范式的模式要求屬性值不可再分裂成更小部分,即屬性項不能是屬性組合或是由一組屬性構(gòu)成。
簡而言之,第一范式就是無重復的列。例如,由“職工號”“姓名”“電話號碼”組成的表(一個人可能有一部辦公電話和一部移動電話),這時將其規(guī)范化為1NF可以將電話號碼分為“辦公電話”和“移動電話”兩個屬性,即職工(職工號,姓名,辦公電話,移動電話)。
2、2NF(第二范式)
第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被唯一地區(qū)分。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的唯一標識。
如果關(guān)系模型R為第一范式,并且R中的每一個非主屬性完全函數(shù)依賴于R的某個候選鍵,則稱R為第二范式模式(如果A是關(guān)系模式R的候選鍵的一個屬性,則稱A是R的主屬性,否則稱A是R的非主屬性)。
例如,在選課關(guān)系表(學號,課程號,成績,學分),關(guān)鍵字為組合關(guān)鍵字(學號,課程號),但由于非主屬性學分僅依賴于課程號,對關(guān)鍵字(學號,課程號)只是部分依賴,而不是完全依賴,因此此種方式會導致數(shù)據(jù)冗余以及更新異常等問題,解決辦法是將其分為兩個關(guān)系模式:學生表(學號,課程號,分數(shù))和課程表(課程號,學分),新關(guān)系通過學生表中的外關(guān)鍵字課程號聯(lián)系,在需要時進行連接。
3、3NF(第三范式)
如果關(guān)系模型R是第二范式,且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R是第三范式的模式。
以學生表(學號,姓名,課程號,成績)為例,其中學生姓名無重名,所以該表有兩個候選碼(學號,課程號)和(姓名,課程號),故存在函數(shù)依賴:學號——>姓名,(學號,課程號)——>成績,唯一的非主屬性成績對碼不存在部分依賴,也不存在傳遞依賴,所以屬性屬于第三范式。
4、BCNF(BC范式)
它構(gòu)建在第三范式的基礎(chǔ)上,如果關(guān)系模型R是第一范式,且每個屬性都不傳遞依賴于R的候選鍵,那么稱R為BCNF的模式。
假設倉庫管理關(guān)系表(倉庫號,存儲物品號,管理員號,數(shù)量),滿足一個管理員只在一個倉庫工作;一個倉庫可以存儲多種物品,則存在如下關(guān)系:
(倉庫號,存儲物品號)——>(管理員號,數(shù)量)
(管理員號,存儲物品號)——>(倉庫號,數(shù)量)
所以,(倉庫號,存儲物品號)和(管理員號,存儲物品號)都是倉庫管理關(guān)系表的候選碼,表中唯一非關(guān)鍵字段為數(shù)量,它是符合第三范式的。但是,由于存在如下決定關(guān)系:
(倉庫號)——>(管理員號)
(管理員號)——>(倉庫號)
即存在關(guān)鍵字段決定關(guān)鍵字段的情況,因此其不符合BCNF。把倉庫管理關(guān)系表分解為兩個關(guān)系表倉庫管理表(倉庫號,管理員號)和倉庫表(倉庫號,存儲物品號,數(shù)量),這樣這個數(shù)據(jù)庫表是符合BCNF的,并消除了刪除異常、插入異常和更新異常。
5、4NF(第四范式)
設R是一個關(guān)系模型,D是R上的多值依賴集合。如果D中存在凡多值依賴X->Y時,X必是R的超鍵,那么稱R是第四范式的模式。
例如,職工表(職工編號,職工孩子姓名,職工選修課程),在這個表中,同一個職工可能會有多個職工孩子姓名,同樣,同一個職工也可能會有多個職工選修課程,即這里存在著多值事實,不符合第四范式。如果要符合第四范式,只需要將上表分為兩個表,使它們只有一個多值事實,例如職工表一(職工編號,職工孩子姓名),職工表二(職工編號,職工選修課程),兩個表都只有一個多值事實,所以符合第四范式。
1 、第一范式(1NF)
在任何一個關(guān)系數(shù)據(jù)庫中,第一范式(1NF)是對關(guān)系模式的基本要求,不滿足第一范式(1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。
所謂第一范式(1NF)是指數(shù)據(jù)庫表的每一列(即每個屬性)都是不可分割的基本數(shù)據(jù)項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。簡而言之,第一范式就是無重復的列。
2、 第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實例或行必須可以被唯一地區(qū)分。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的唯一標識。員工信息表中加上了員工編號(emp_id)列,因為每個員工的員工編號是唯一的,因此每個員工可以被唯一區(qū)分。這個唯一屬性列被稱為主關(guān)鍵字或主鍵、主碼。
第二范式(2NF)要求實體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主關(guān)鍵字一部分的屬性,如果存在,那么這個屬性和主關(guān)鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關(guān)系。為實現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實例的唯一標識。簡而言之,第二范式就是非主屬性依賴于主關(guān)鍵字。
3 、第三范式(3NF)
滿足第三范式(3NF)必須先滿足第二范式(2NF)。在滿足第二范式的基礎(chǔ)上,切不存在傳遞函數(shù)依賴,那么就是第三范式。簡而言之,第三范式就是屬性不依賴于其它非主屬性。
感謝各位的閱讀!關(guān)于“mysql數(shù)據(jù)庫的四個范式分別是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
本文名稱:mysql數(shù)據(jù)庫的四個范式分別是什么
網(wǎng)站鏈接:http://m.rwnh.cn/article14/pdidge.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、外貿(mào)建站、網(wǎng)站維護、電子商務、網(wǎng)站收錄、營銷型網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)