欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL學(xué)習(xí)之三大范式詳解小白篇

 更新時(shí)間:2021年09月16日 15:02:38   作者:祈禱ovo  
本篇文章為大家介紹了MYSQL數(shù)據(jù)庫(kù)學(xué)習(xí)中三大范式的規(guī)則詳解,有需要的朋友可以借鑒參考下,希望可以對(duì)大家的數(shù)據(jù)庫(kù)學(xué)習(xí)有所幫助

1.范式基礎(chǔ)

1.1范式的概念

設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候需要遵從的一些規(guī)范,目前關(guān)系數(shù)據(jù)庫(kù)有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又稱完美范式)。

當(dāng)然正常情況下我們滿足前三個(gè)范式就可以設(shè)計(jì)一個(gè)比較規(guī)范的數(shù)據(jù)庫(kù)

要遵循后邊的范式,就必須先遵循前面的范式要求,比如第二范式就必須先遵循第一范式的,第三范式必須先遵循第二范式,以此類推

2.三大范式

2.1三大范式概念

第一范式(1NF):每個(gè)列都不可以再拆分。
第二范式(2NF):在第一范式的基礎(chǔ)上,非主鍵列完全依賴于主鍵,而不能是依賴于主鍵的一部分。
第三范式(3NF):在第二范式的基礎(chǔ)上,非主鍵列只依賴于主鍵,不依賴于其他非主鍵。

2.2三大范式舉例

比如我們有一個(gè)表,以后的例子會(huì)對(duì)這個(gè)表進(jìn)行三大范式的改造,然后把他變成規(guī)范的表:

在這里插入圖片描述

1.進(jìn)行第一范式的改造

第一范式(1NF):每個(gè)列都不可以再拆分

我們可以看到表中有一列可以再分,那就是系,所以把他進(jìn)行第一范式的改造就變成了:

在這里插入圖片描述

2.進(jìn)行第二范式的改造

第二范式(2NF):在第一范式的基礎(chǔ)上,非主鍵列完全依賴于主鍵,而不能是依賴于主鍵的一部分。

這第二范式不好理解,那么我們先了解幾個(gè)概念:

1.函數(shù)依賴:如果通過(guò)A屬性(屬性組),可以確定唯一B屬性的值,那么B依賴于A。比如上圖的姓名,完全依賴于學(xué)號(hào)
2.完全函數(shù)依賴:如果A是一個(gè)屬性組,則B屬性值的確定需要依賴于A屬性組中的所有的屬性值。屬性組是指多個(gè)字段,那么比如我們要想知道一個(gè)分?jǐn)?shù),就必須依賴于學(xué)號(hào)和課程名稱兩個(gè)屬性才能確定一個(gè)分?jǐn)?shù),其他的屬性是不能確定某一個(gè)分?jǐn)?shù)的
3.部分函數(shù)依賴:如果A是一個(gè)屬性組,則B屬性值的確定需要依賴A屬性組的某一些字段即可,例如學(xué)號(hào)和課程名稱為一個(gè)屬性組,那么學(xué)生姓名其實(shí)就只需要學(xué)號(hào)就可以確定
4.傳遞函數(shù)依賴:如果A屬性(屬性組),可以確定唯一個(gè)B屬性的值,再通過(guò)B屬性的值又可以唯一確定C屬性的值,例如一個(gè)學(xué)號(hào)確定一個(gè)系名,一個(gè)系名對(duì)應(yīng)一個(gè)系主任
5.主鍵:在一張表中,一個(gè)屬性或者屬性組,被其他所有屬性完全依賴,則稱這個(gè)屬性為該碼的表,比如上圖的學(xué)號(hào)和課程名稱組成的屬性組

其實(shí)第二范式就是還可以理解為

在第一范式的基礎(chǔ)上消除非主鍵對(duì)主鍵的部分依賴

那么我們上圖的主鍵為學(xué)號(hào)加課程名稱組成的屬性組,對(duì)于上圖,我們可以看到,除了分?jǐn)?shù)其他的都對(duì)主鍵是部分依賴,那么我們可以按照下圖的方式進(jìn)行改正:

在這里插入圖片描述

在這里插入圖片描述

經(jīng)過(guò)第二范式的改造把一個(gè)表分成兩個(gè)表,那么我們發(fā)現(xiàn)其實(shí)第二范式為我們消除了很多冗余的部分,比如改造前張無(wú)忌的姓名系名系主任在表中出現(xiàn)了三次,而改造后在兩表才出現(xiàn)一次

3.進(jìn)行第三范式的改造

第三范式(3NF):在第二范式的基礎(chǔ)上,非主鍵列只依賴于主鍵,不依賴于其他非主鍵。

根據(jù)第二點(diǎn)我們說(shuō)的概念,修改后變成:

在這里插入圖片描述

以上就是MySQL學(xué)習(xí)之三大范式詳解小白篇的詳細(xì)內(nèi)容,更多關(guān)于MySQL三大范式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MySQL 數(shù)據(jù)丟失排查案例

    MySQL 數(shù)據(jù)丟失排查案例

    這篇文章主要分享了MySQL 數(shù)據(jù)丟失排查的一個(gè)案例,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-05-05
  • MySQL主鍵約束和外鍵約束詳解

    MySQL主鍵約束和外鍵約束詳解

    主鍵約束,說(shuō)白了就是 not null + unique,主鍵也是在插入數(shù)據(jù)的時(shí)候先進(jìn)行查詢,而 MySQL 則會(huì)對(duì) unique,primary key 這樣的列自動(dòng)的添加索引(后續(xù)介紹),來(lái)提高查詢的效率,這篇文章主要介紹了MySQL主鍵約束和外鍵約束,需要的朋友可以參考下
    2023-03-03
  • Windows8下mysql 5.6.15 安裝配置方法圖文教程

    Windows8下mysql 5.6.15 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Windows8下mysql 5.6.15 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • IDEA 鏈接Mysql數(shù)據(jù)庫(kù)并執(zhí)行查詢操作的完整代碼

    IDEA 鏈接Mysql數(shù)據(jù)庫(kù)并執(zhí)行查詢操作的完整代碼

    這篇文章主要介紹了IDEA 鏈接Mysql數(shù)據(jù)庫(kù)并執(zhí)行查詢操作的完整代碼,代碼不難,詳細(xì)大家看完本文肯定有意向不到的收獲,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • MySQL排序優(yōu)化詳細(xì)解析

    MySQL排序優(yōu)化詳細(xì)解析

    這篇文章主要介紹了MySQL排序優(yōu)化詳細(xì)解析,MySQL有兩種方式生成有序的結(jié)果:1.通過(guò)排序操作;2.按索引順序掃描,如果EXPLAIN出來(lái)的type列的值為"index",則說(shuō)明使用了索引掃描來(lái)做排序,需要的朋友可以參考下
    2024-01-01
  • MySQL中列轉(zhuǎn)行和行轉(zhuǎn)列總結(jié)解決思路

    MySQL中列轉(zhuǎn)行和行轉(zhuǎn)列總結(jié)解決思路

    最近工作中用到了好幾次列轉(zhuǎn)行,索性做個(gè)小總結(jié),下面這篇文章主要給大家介紹了關(guān)于MYSQL如何列轉(zhuǎn)行的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • MySQL驗(yàn)證用戶權(quán)限的方法

    MySQL驗(yàn)證用戶權(quán)限的方法

    這篇文章主要介紹了MySQL驗(yàn)證用戶權(quán)限的方法,需要的朋友可以參考下
    2015-11-11
  • 解壓版MYSQL中文亂碼問(wèn)題解決方案

    解壓版MYSQL中文亂碼問(wèn)題解決方案

    這篇文章主要介紹了解壓版MYSQL中文亂碼問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • MySQL之七種SQL JOINS實(shí)現(xiàn)的圖文詳解

    MySQL之七種SQL JOINS實(shí)現(xiàn)的圖文詳解

    這篇文章主要介紹了MySQL中七種SQL JOINS的實(shí)現(xiàn)方法及圖文詳解,文中也有相關(guān)的代碼示例供大家參考,感興趣的同學(xué)可以參考閱讀下
    2023-06-06
  • MySQL binlog中的事件類型詳解

    MySQL binlog中的事件類型詳解

    這篇文章主要介紹了MySQL binlog中的事件類型詳解,介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08

最新評(píng)論