大剑无锋之数据库的范式【面试推荐】
數(shù)據(jù)庫(kù)設(shè)計(jì)范式:
什么是范式:簡(jiǎn)言之就是,數(shù)據(jù)庫(kù)設(shè)計(jì)對(duì)數(shù)據(jù)的存儲(chǔ)性能,還有開(kāi)發(fā)人員對(duì)數(shù)據(jù)的操作都有莫大的關(guān)系。所以建立科學(xué)的,規(guī)范的的數(shù)據(jù)庫(kù)是需要滿(mǎn)足一些規(guī)范的來(lái)優(yōu)化數(shù)據(jù)數(shù)據(jù)存儲(chǔ)方式。在關(guān)系型數(shù)據(jù)庫(kù)中這些規(guī)范就可以稱(chēng)為范式。
什么是三大范式:
第一范式:當(dāng)關(guān)系模式R的所有屬性都不能在分解為更基本的數(shù)據(jù)單位時(shí),稱(chēng)R是滿(mǎn)足第一范式的,簡(jiǎn)記為1NF。滿(mǎn)足第一范式是關(guān)系模式規(guī)范化的最低要求,否則,將有很多基本操作在這樣的關(guān)系模式中實(shí)現(xiàn)不了。
第二范式:如果關(guān)系模式R滿(mǎn)足第一范式,并且R得所有非主屬性都完全依賴(lài)于R的每一個(gè)候選關(guān)鍵屬性,稱(chēng)R滿(mǎn)足第二范式,簡(jiǎn)記為2NF。
第三范式:設(shè)R是一個(gè)滿(mǎn)足第一范式條件的關(guān)系模式,X是R的任意屬性集,如果X非傳遞依賴(lài)于R的任意一個(gè)候選關(guān)鍵字,稱(chēng)R滿(mǎn)足第三范式,簡(jiǎn)記為3NF.
注:關(guān)系實(shí)質(zhì)上是一張二維表,其中每一行是一個(gè)元組,每一列是一個(gè)屬性
1、第一范式(1NF)
? ?1、每一列屬性都是不可再分的屬性值,確保每一列的原子性
? ?2、兩列的屬性相近或相似或一樣,盡量合并屬性一樣的列,確保不產(chǎn)生冗余數(shù)據(jù)。
2、第二范式(2NF)
每一行的數(shù)據(jù)只能與其中一列相關(guān),即一行數(shù)據(jù)只做一件事。只要數(shù)據(jù)列中出現(xiàn)數(shù)據(jù)重復(fù),就要把表拆分開(kāi)來(lái)。
3、第三范式(3NF)
數(shù)據(jù)不能存在傳遞關(guān)系,即每個(gè)屬性都跟主鍵有直接關(guān)系而不是間接關(guān)系。
最后:
三大范式只是一般設(shè)計(jì)數(shù)據(jù)庫(kù)的基本理念,可以建立冗余較小、結(jié)構(gòu)合理的數(shù)據(jù)庫(kù)。如果有特殊情況,當(dāng)然要特殊對(duì)待,數(shù)據(jù)庫(kù)設(shè)計(jì)最重要的是看需求跟性能,需求>性能>表結(jié)構(gòu)。所以不能一味的去追求范式建立數(shù)據(jù)庫(kù)。
擴(kuò)展資料
設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)時(shí),遵從不同的規(guī)范要求,設(shè)計(jì)出合理的關(guān)系型數(shù)據(jù)庫(kù),這些不同的規(guī)范要求被稱(chēng)為不同的范式,各種范式呈遞次規(guī)范,越高的范式數(shù)據(jù)庫(kù)冗余越小。
目前關(guān)系數(shù)據(jù)庫(kù)有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又稱(chēng)完美范式)。
滿(mǎn)足最低要求的范式是第一范式(1NF)。在第一范式的基礎(chǔ)上進(jìn)一步滿(mǎn)足更多規(guī)范要求的稱(chēng)為第二范式(2NF),其余范式以次類(lèi)推。一般說(shuō)來(lái),數(shù)據(jù)庫(kù)只需滿(mǎn)足第三范式(3NF)就行了。
?摘自:
https://zhidao.baidu.com/question/89667991.html
https://www.cnblogs.com/knowledgesea/p/3667395.html
總結(jié)
以上是生活随笔為你收集整理的大剑无锋之数据库的范式【面试推荐】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 大剑无锋之TCP和HTTP的区别【面试推
- 下一篇: 大剑无锋之你所知道的列式数据库有哪些?列