您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“數(shù)據(jù)庫的六大范式知識(shí)是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“數(shù)據(jù)庫的六大范式知識(shí)是什么”吧!
1、數(shù)據(jù)庫范式的作用
數(shù)據(jù)庫范式主要是為解決關(guān)系數(shù)據(jù)庫中數(shù)據(jù)冗余、更新異常、插入異常、刪除異常問題而引入的設(shè)計(jì)理念。簡單來說,數(shù)據(jù)庫范式可以避免數(shù)據(jù)冗余,減少數(shù)據(jù)庫的存儲(chǔ)空間,并且減輕維護(hù)數(shù)據(jù)完整性的成本。是關(guān)系數(shù)據(jù)庫核心的技術(shù)之一,也是從事數(shù)據(jù)庫開發(fā)人員必備知識(shí)。
2、數(shù)據(jù)庫范式分類介紹
范式是評(píng)價(jià)數(shù)據(jù)庫模式規(guī)范化程度從低到高主要有:1NF、2NF、3Nf、BCNF、4NF、5NF。
2.1 1NF 第一范式
強(qiáng)調(diào)屬性的原子性約束,要求屬性具有原子性,不可再分解。
舉例:
學(xué)生表(學(xué)號(hào)、姓名、年齡、性別、地址)。地址可以細(xì)分為國家、省份、城市、市區(qū)、街道,那么該模式就沒有達(dá)到第一范式。
第一范式存在問題:冗余度大、會(huì)引起修改操作的不一致性、數(shù)據(jù)插入異常、數(shù)據(jù)刪除異常。
2.2 2NF 第二范式
第二范式,強(qiáng)調(diào)記錄的唯一性約束,數(shù)據(jù)表必須有一個(gè)主鍵,并且沒有包含在主鍵中的列必須完全依賴于主鍵,而不能只依賴于主鍵的一部分。
舉例:
版本表(版本編碼,版本名稱,產(chǎn)品編碼,產(chǎn)品名稱),其中主鍵是(版本編碼,產(chǎn)品編碼),這個(gè)場(chǎng)景中,數(shù)據(jù)庫設(shè)計(jì)并不符合第二范式,因?yàn)楫a(chǎn)品名稱只依賴于產(chǎn)品編碼。存在部分依賴。所以,為了使其滿足第二范式,可以改造成兩個(gè)表:版本表(版本編碼,產(chǎn)品編碼)和產(chǎn)品表(產(chǎn)品編碼,產(chǎn)品名稱)
2.3 3NF 第三范式
第三范式,強(qiáng)調(diào)數(shù)據(jù)屬性冗余性的約束,也就是非主鍵列必須直接依賴于主鍵。也就是消除了非主屬性對(duì)碼的傳遞函數(shù)依賴。
舉例:
訂單表(訂單編碼,顧客編碼,顧客名稱),其中主鍵是(訂單編碼),這個(gè)場(chǎng)景中,顧客編碼、顧客名稱都完全依賴于主鍵,因此符合第二范式,但顧客名稱依賴于顧客編碼,從而間接依賴于主鍵,所以不能滿足第三范式。如果要滿足第三范式,需要拆分為兩個(gè)表:訂單表(訂單編碼,顧客編碼)和顧客表(顧客編碼,顧客名稱)。
說明:3NF的模式肯定滿足2NF。產(chǎn)生冗余和異常的兩個(gè)重要原因是部分依賴和傳遞依賴。3NF模式中不存在非主屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴,性能較好。1NF、2NF一般不適合作為數(shù)據(jù)庫模式,通常需要轉(zhuǎn)換為3NF或者更高級(jí)別的范式,這種變換過程稱為關(guān)系模式規(guī)范化處理。
2.4 BCNF(Bovce Codd Normal Form 巴克斯范式)
屬于修正的第三范式,是防止主鍵的某一列會(huì)依賴于主鍵的其他列。當(dāng)3NF消除了主屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴稱為BCNF。
特性:
1、所有主屬性對(duì)每一個(gè)碼都是完全函數(shù)依賴
2、所有主屬性對(duì)每一個(gè)不包含它的碼,也是完全函數(shù)依賴
3、沒有任何屬性完全函數(shù)依賴與非碼的任何一組屬性
舉例:庫存表(倉庫名,管理員名,商品名,數(shù)量),主鍵為(倉庫名,管理員名,商品名),這是滿足前面三個(gè)范式的,但是倉庫名和管理員名之間存在依賴關(guān)系,因此刪除某一個(gè)倉庫,會(huì)導(dǎo)致管理員也被刪除,這樣就不滿足BCNF。
2.5 4NF 第四范式
非主屬性不應(yīng)該有多值。如果有多值就違反了第四范式。4NF是限制關(guān)系模式的屬性間不允許有非平凡且非函數(shù)依賴的多值依賴。
舉例:用戶聯(lián)系方式表(用戶id,固定電話,移動(dòng)電話),其中用戶id是主鍵,這個(gè)滿足了BCNF,但是一個(gè)用戶有可能會(huì)有多個(gè)固定電話或者多個(gè)移動(dòng)電話,那么這種設(shè)計(jì)就不合理,應(yīng)該改為(用戶id,聯(lián)系方式類型,電話號(hào)碼)。
說明:如果只考慮函數(shù)依賴,關(guān)系模式規(guī)范化程度最高的范式是BCNF;如果考慮多值依賴則是4NF。
2.6 5NF 第五范式
第五范式屬于最終范式,消除了4NF中的連接依賴,第五范式需要滿足以下要求:
1、必須滿足第四范式
2、表必須可以分解為較小的表,除非那些表在邏輯上擁有與原始表相同的主鍵。
一般實(shí)際應(yīng)用中不必考慮第五范式。
到此,相信大家對(duì)“數(shù)據(jù)庫的六大范式知識(shí)是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。