日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
關(guān)系型數(shù)據(jù)庫設(shè)計(jì)三大范式

作者:鄭龍飛

范式定義

百度百科:設(shè)計(jì)關(guān)系數(shù)據(jù)庫時(shí),遵從不同的規(guī)范要求,設(shè)計(jì)出合理的關(guān)系型數(shù)據(jù)庫,這些不同的規(guī)范要求被稱為不同的范式,各種范式呈遞次規(guī)范,越高的范式數(shù)據(jù)庫冗余越小。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),海拉爾企業(yè)網(wǎng)站建設(shè),海拉爾品牌網(wǎng)站建設(shè),網(wǎng)站定制,海拉爾網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,海拉爾網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

人類語言: 范式可以理解為設(shè)計(jì)一張數(shù)據(jù)表的表結(jié)構(gòu),符合的標(biāo)準(zhǔn)級(jí)別、規(guī)范和要求。

而通常我們用的最多的就是第一范式(1NF)、第二范式(2NF)、第三范式(3NF),也就是本文要講的“三大范式”。

范式的優(yōu)點(diǎn)

采用范式可以降低數(shù)據(jù)的冗余性。

為什么要降低數(shù)據(jù)的冗余性?

  1. 十幾年前,磁盤很貴,為了減少磁盤存儲(chǔ)。
  2. 以前沒有分布式系統(tǒng),都是單機(jī),只能增加磁盤,磁盤個(gè)數(shù)也是有限的。
  3. 一次修改,需要修改多個(gè)表,很難保證數(shù)據(jù)一致性。

范式的缺點(diǎn)

范式的缺點(diǎn)是獲取數(shù)據(jù)時(shí),需要通過Join拼接出最后的數(shù)據(jù)。

目前范式的分類

目前業(yè)界范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF)。

什么是函數(shù)依賴?

百度百科:函數(shù)依賴簡單點(diǎn)說就是:某個(gè)屬性集決定另一個(gè)屬性集時(shí),稱另一屬性集依賴于該屬性集。

人類語言:以下面表格為例,通俗易懂的解釋,什么是函數(shù)依賴。

學(xué)號(hào)

姓名

系名

系主任

科名

分?jǐn)?shù)

001

張三

計(jì)算機(jī)系

李雷

高等數(shù)學(xué)

87

001

張三

計(jì)算機(jī)系

李雷

大學(xué)英語

88

001

張三

計(jì)算機(jī)系

李雷

數(shù)據(jù)庫設(shè)計(jì)

89

002

李四

計(jì)算機(jī)系

李雷

高等數(shù)學(xué)

86

002

李四

計(jì)算機(jī)系

李雷

java程序設(shè)計(jì)

90

002

李四

計(jì)算機(jī)系

李雷

大學(xué)英語

98

003

王五

財(cái)務(wù)系

韓梅梅

高等數(shù)學(xué)

96

003

王五

財(cái)務(wù)系

韓梅梅

財(cái)務(wù)基礎(chǔ)

95

完全函數(shù)依賴

官方定義:設(shè)X,Y是關(guān)系R的兩個(gè)屬性集合,X’是X的真子集,存在X→Y,但對每一個(gè)X’都有X’!→Y,則稱Y完全函數(shù)依賴于X。

人類語言:比如通過,(學(xué)號(hào),課程) 推出分?jǐn)?shù) ,但是單獨(dú)用學(xué)號(hào)推斷不出來分?jǐn)?shù),那么就可以說:分?jǐn)?shù) 完全依賴于(學(xué)號(hào),課程) 。

總結(jié):即:通過A B能得出C,但 是A B單獨(dú)得不出C,那么說C完全依賴于AB。

部分函數(shù)依賴

官方定義:假如 Y函數(shù)依賴于 X,但同時(shí) Y 并不完全函數(shù)依賴于 X,那么我們就稱 Y 部分函數(shù)依賴于 X。

人類語言:比如通過,(學(xué) 號(hào),課程) 推出姓名,因?yàn)槠鋵?shí)直接可以通過,學(xué)號(hào)推出姓名,所以:姓名 部分依賴于 (學(xué)號(hào),課程)。

總結(jié):通過AB能得出C,通過A也能得出C,或者通過B也能得出C,那么說C部分依賴于AB。

傳遞函數(shù)依賴

官方定義:傳遞函數(shù)依賴:設(shè)X,Y,Z是關(guān)系R中互不相同的屬性集合,存在X→Y(Y !→X),Y→Z,則稱Z傳遞函數(shù)依賴于X。

人類語言:比如:學(xué)號(hào) 推出 系名 , 系名 推出 系主任, 但是,系主任推不出學(xué)號(hào),系主任主要依賴于系名。這種情況可以說:系主任 傳遞依賴于 學(xué)號(hào) 。

總結(jié):即:通 過A得 到B,通 過B得 到C,但 是C得不到A,那 么說C傳遞依賴于A。

三范式的區(qū)別

第一范式

第一范式1NF核心原則:屬性不可切割。

舉例說明:

學(xué)號(hào)

姓名

系名

系主任

科名

分?jǐn)?shù)

學(xué)籍信息

001

張三

計(jì)算機(jī)系

李雷

高等數(shù)學(xué)

87

本科,大二

002

李四

計(jì)算機(jī)系

李雷

大學(xué)英語

88

研究生,研三

很明顯上面表格設(shè)計(jì)是不符合第一范式的,學(xué)籍信息列中的數(shù)據(jù)不是原子數(shù)據(jù)項(xiàng),是可以進(jìn)行分割的,因此對表格進(jìn)行修改,讓表格符合第一范式的要求,修改結(jié)果如下圖所示:

學(xué)號(hào)

姓名

系名

系主任

科名

分?jǐn)?shù)

學(xué)歷

所在年級(jí)

001

張三

計(jì)算機(jī)系

李雷

高等數(shù)學(xué)

87

本科

大二

002

李四

計(jì)算機(jī)系

李雷

大學(xué)英語

88

研究生

研三

實(shí)際上 ,1NF是所有關(guān)系型數(shù)據(jù)庫的最基本要求 ,你在關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),例如SQL Server,Oracle,MySQL中創(chuàng)建數(shù)據(jù)表的時(shí)候,如果數(shù)據(jù)表的設(shè)計(jì)不符合這個(gè)最基本的要求,那么操作一定是不能成功的。也就是說,只要在RDBMS中已經(jīng)存在
的數(shù)據(jù)表,一定是符合1NF的。

第二范式

第二范式2NF核心原則:不能存在“部分函數(shù)依賴”。

舉例說明:

學(xué)號(hào)

姓名

系名

系主任

科名

分?jǐn)?shù)

001

張三

計(jì)算機(jī)系

李雷

高等數(shù)學(xué)

87

001

張三

計(jì)算機(jī)系

李雷

大學(xué)英語

88

001

張三

計(jì)算機(jī)系

李雷

數(shù)據(jù)庫設(shè)計(jì)

89

002

李四

計(jì)算機(jī)系

李雷

高等數(shù)學(xué)

86

002

李四

計(jì)算機(jī)系

李雷

java程序設(shè)計(jì)

90

002

李四

計(jì)算機(jī)系

李雷

大學(xué)英語

98

003

王五

財(cái)務(wù)系

韓梅梅

高等數(shù)學(xué)

96

003

王五

財(cái)務(wù)系

韓梅梅

財(cái)務(wù)基礎(chǔ)

95

以上表格明顯存在,部分依賴。比 如,這張表的主鍵是 (學(xué)號(hào),課名),分?jǐn)?shù)確實(shí)完全依賴于(學(xué)號(hào),課名),但是姓名并不完全依賴于(學(xué)號(hào),課名),讓表格符合第二范式的要求,修改結(jié)果如下圖所示:

學(xué)號(hào)

科名

分?jǐn)?shù)

001

高等數(shù)學(xué)

87

001

大學(xué)英語

88

001

數(shù)據(jù)庫設(shè)計(jì)

89

002

高等數(shù)學(xué)

86

002

java程序設(shè)計(jì)

90

002

大學(xué)英語

98

003

高等數(shù)學(xué)

96

003

財(cái)務(wù)基礎(chǔ)

95

學(xué)號(hào)

姓名

系名

系主任

001

張三

計(jì)算機(jī)系

李雷

002

李四

計(jì)算機(jī)系

李雷

003

王五

財(cái)務(wù)系

韓梅梅

以上符合第二范式,去掉部分函數(shù)依賴依賴。

第三范式

第三范式 3NF核心原則:不能存在傳遞函數(shù)依賴。

舉例說明:

學(xué)號(hào)

姓名

系名

系主任

001

張三

計(jì)算機(jī)系

李雷

002

李四

計(jì)算機(jī)系

李雷

003

王五

財(cái)務(wù)系

韓梅梅

在上面這張表中,存 在傳遞函數(shù)依賴:學(xué)號(hào)->系 名->系主任,但是系主任推不出學(xué)號(hào)。

上面表需要再次拆解:

學(xué)號(hào)

姓名

系名

001

張三

計(jì)算機(jī)系

002

李四

計(jì)算機(jī)系

003

王五

財(cái)務(wù)系

系名

系主任

計(jì)算機(jī)系

李雷

計(jì)算機(jī)系

李雷

財(cái)務(wù)系

韓梅梅

反三范式

沒有冗余的數(shù)據(jù)庫未必是最好的數(shù)據(jù)庫,有時(shí)為了提高運(yùn)行效率,就必須降低范式標(biāo)準(zhǔn),適當(dāng)保留冗余數(shù)據(jù)。具體做法是: 在概念數(shù)據(jù)模型設(shè)計(jì)時(shí)遵守第三范式,降低范式標(biāo)準(zhǔn)的工作放到物理數(shù)據(jù)模型設(shè)計(jì)時(shí)考慮。降低范式就是增加字段,減少了查詢時(shí)的關(guān)聯(lián),提高查詢效率,因?yàn)樵跀?shù)據(jù)庫的操作中查詢的比例要遠(yuǎn)遠(yuǎn)大于DML的比例。但是反范式化一定要適度,并且在原本已滿足三范式的基礎(chǔ)上再做調(diào)整的。

總結(jié)

引用知乎大佬對范式的理解:

數(shù)據(jù)庫設(shè)計(jì)應(yīng)該也是分為三個(gè)境界的:

第一個(gè)境界,剛?cè)腴T數(shù)據(jù)庫設(shè)計(jì),范式的重要性還未深刻理解。這時(shí)候出現(xiàn)的反范式設(shè)計(jì),一般會(huì)出問題。

第二個(gè)境界,隨著遇到問題解決問題,漸漸了解到范式的真正好處,從而能快速設(shè)計(jì)出低冗余、高效率的數(shù)據(jù)庫。

第三個(gè)境界,再經(jīng)過N年的鍛煉,是一定會(huì)發(fā)覺范式的局限性的。此時(shí)再去打破范式,設(shè)計(jì)更合理的反范式部分。


網(wǎng)頁名稱:關(guān)系型數(shù)據(jù)庫設(shè)計(jì)三大范式
分享URL:http://www.dlmjj.cn/article/dpgihed.html