国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)庫范式使用規(guī)范

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)據(jù)庫范式使用規(guī)范。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

好的設(shè)計(jì)會(huì)盡可能少的引入冗余數(shù)據(jù),或做有損拆分,而是使用規(guī)范的方法找到正確的分解。而范式則是關(guān)系數(shù)據(jù)庫實(shí)現(xiàn)設(shè)計(jì)優(yōu)化的通用手段。范式與關(guān)系數(shù)據(jù)庫的關(guān)系可以參考筆者之前的WIKI。

【強(qiáng)制】數(shù)據(jù)庫設(shè)計(jì)優(yōu)先滿足第三范式(3NF),如果無法滿足,則盡量滿足第二范式(2NF)

在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),如果能夠滿足第三范式,要盡量保證第三范式,如果因?yàn)樾阅芸紤],需要冗余字段,無法滿足第三范式的時(shí)候,也要盡量保證第二范式。

第一范式

當(dāng)關(guān)系模式滿足第一范式時(shí),該關(guān)系模式所有屬性的域都是原子的。第一范式要求表中列的值具有原子性,也就是說表中列的值為不可再次拆分的最小數(shù)據(jù)單位。常見的非原子域的情況有:
(1) 組合屬性具有非原子域。如包含子屬性street、city、state的屬性address。
(2) 使用以集合為值的屬性會(huì)導(dǎo)致冗余存儲(chǔ)數(shù)據(jù)的設(shè)計(jì),進(jìn)而會(huì)進(jìn)一步導(dǎo)致不一致。如數(shù)據(jù)庫設(shè)計(jì)者可能不將教師和課程安排之間的聯(lián)系表示為一個(gè)單獨(dú)的關(guān)系teaches,而是嘗試為每一個(gè)教師存儲(chǔ)一個(gè)課程段標(biāo)志號(hào)的集合,并為每一個(gè)課程段存儲(chǔ)一個(gè)教師標(biāo)志號(hào)的集合。每當(dāng)關(guān)于哪位教師講授哪個(gè)課程段的數(shù)據(jù)發(fā)生變化時(shí),就需同時(shí)更新兩個(gè)地方:課程表的教師集合和教師表課程集合。

第二范式

關(guān)系模式R屬于第二范式,如果R中的每個(gè)屬性A都滿足如下準(zhǔn)則之一:
(1) 它出現(xiàn)在一個(gè)候選碼中。
(2) 它沒有部分依賴于一個(gè)候選碼。
函數(shù)依賴α → \rightarrow β稱為部分依賴(partial dependency)的條件是,存在α的真子集γ使得γ → \rightarrow β。我們稱β部分依賴于α。
第二范式要求表中的每條記錄都有唯一標(biāo)識(shí),且不存在部分依賴。所謂部分依賴,就是指所有非唯一標(biāo)識(shí)字段,都必須完全依賴唯一標(biāo)識(shí),不能只依賴唯一標(biāo)識(shí)的一部分。如果知道唯一標(biāo)識(shí)屬性的值,就可以檢索到任何表記錄的任何屬性的任何值。
假設(shè)有關(guān)系模型R,包含如下屬性(學(xué)號(hào)、課程號(hào)、課程名、姓名、學(xué)分、成績),表示學(xué)生的課程得分,以學(xué)號(hào)和課程號(hào)為唯一標(biāo)識(shí),這里姓名屬性只依賴學(xué)號(hào),學(xué)分屬性只依賴課程號(hào),所以這里存在部分依賴,不符合第二范式的要求。
第二范式的核心思想是關(guān)系模型的內(nèi)聚,也即拆分思想。對(duì)于上面的關(guān)系模型,可以進(jìn)一步細(xì)分為如下幾個(gè)關(guān)系模型:
學(xué)生表:(學(xué)號(hào)、姓名)
課程表:(課程號(hào)、課程名、學(xué)分)
學(xué)生課程成績表:(學(xué)號(hào)、課程號(hào)、成績)

第三范式

第三范式是比BC范式弱的范式。任何滿足BC范式的關(guān)系模式也滿足第三范式。具有函數(shù)依賴集F的關(guān)系模式R屬于第三范式(third normal form)的條件是:對(duì) F + F^+ F+中所有形如α → \rightarrow β的函數(shù)依賴(α ? \subseteq ?R且β ? \subseteq ?R),下面至少有一項(xiàng)是成立:
(1) α → \rightarrow β是平凡的函數(shù)依賴(即β ? \subseteq ?α)。
(2) α是模式R的一個(gè)超碼。
(3) β - α中的每一個(gè)屬性A都包含于R的一個(gè)候選碼中。
第三范式要求表中的每一個(gè)非主鍵字段都和主鍵字段直接相關(guān),也就是說,表中的所有非主鍵字段不能依賴于其他非主鍵字段。舉例來說,不能存在非主屬性A依賴于非主屬性B,非主屬性B依賴于主鍵C的情況,即存在"A->B->C"的依賴關(guān)系。也就是說,所有非主鍵屬性之間不能有依賴關(guān)系,必須相互獨(dú)立。
假設(shè)有關(guān)系模型R,包含如下屬性(學(xué)號(hào)、姓名、年齡、學(xué)院、學(xué)院電話),因?yàn)榇嬖趥鬟f依賴:(學(xué)號(hào)) -> (姓名) -> (學(xué)院) -> (學(xué)院電話),所以不符合第三范式的要求。
第三范式的核心思想是消除所有基于函數(shù)依賴能夠發(fā)現(xiàn)的冗余并保持函數(shù)依賴。對(duì)于上面的關(guān)系模型,可以進(jìn)一步細(xì)分為如下幾個(gè)關(guān)系模型:
學(xué)生:(學(xué)號(hào)、姓名、年齡、學(xué)院)
學(xué)院:(學(xué)院、學(xué)院電話)

【建議】在遵循范式規(guī)則的同時(shí),也要考慮反范式設(shè)計(jì)

軟件設(shè)計(jì)沒有銀彈,并不是說在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),一定要遵循范式,在特定的場景下,可以考慮反范式設(shè)計(jì)。

違反第一范式

第一范式強(qiáng)調(diào)屬性的域的原子性,但是特殊情況下違反第一范式也有其價(jià)值。如在含有復(fù)雜結(jié)構(gòu)的實(shí)體域中,強(qiáng)制使用第一范式會(huì)給應(yīng)用程序帶來不必要的負(fù)擔(dān),如必須編寫代碼把數(shù)據(jù)轉(zhuǎn)換成原子形式。從原子形式來回轉(zhuǎn)換數(shù)據(jù)也會(huì)有運(yùn)行時(shí)額外開銷。所以,這種場景支持非原子的值很有用。事實(shí)上,現(xiàn)代數(shù)據(jù)庫的確支持很多類型的非原子值。如支持創(chuàng)建復(fù)合屬性、集合、數(shù)組等復(fù)雜數(shù)據(jù)類型。

違反第三方式

第三范式強(qiáng)調(diào)的是沒有冗余數(shù)據(jù),因?yàn)槿绻嬖谌哂?,就意味著要保證冗余數(shù)據(jù)的一致性。但是沒有冗余的數(shù)據(jù)庫未必是好的數(shù)據(jù)庫。有時(shí)為了提高運(yùn)行效率,就必須降低范式標(biāo)準(zhǔn),適當(dāng)保留冗余數(shù)據(jù),達(dá)到以空間換時(shí)間的目的。

參考

https://zhuanlan.zhihu.com/p/617424106 【MySQL】數(shù)據(jù)庫的設(shè)計(jì)規(guī)范(重點(diǎn):三大范式)
https://blog.csdn.net/kenhins/article/details/51084815 數(shù)據(jù)庫建表規(guī)則(三大范式)
https://cloud.tencent.com/developer/article/2123662 三范式與反范式
https://blog.csdn.net/Systemoutprintl/article/details/108209291 數(shù)據(jù)庫的三大范式
https://www.cnblogs.com/gdwkong/p/9012262.html MySQL設(shè)計(jì)之三范式的理解文章來源地址http://www.zghlxwxcb.cn/news/detail-665976.html

到了這里,關(guān)于數(shù)據(jù)庫范式使用規(guī)范的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SQL筆記 -- 范式(第一范式、第二范式、第三范式、巴斯范式、反范式)及數(shù)據(jù)庫設(shè)計(jì)原則

    1.1 范式簡介 在關(guān)系型數(shù)據(jù)庫中,關(guān)于數(shù)據(jù)表設(shè)計(jì)的基本原則、規(guī)則就稱為范式??梢岳斫鉃?,一張數(shù)據(jù)表的設(shè)計(jì)結(jié)構(gòu)需要滿足的某種設(shè)計(jì)標(biāo)準(zhǔn)的級(jí)別 。要想設(shè)計(jì)一個(gè)結(jié)構(gòu)合理的關(guān)系型數(shù)據(jù)庫,必須滿足一定的范式。 目前關(guān)系型數(shù)據(jù)庫有六種常見范式,按照范式級(jí)別,從低到

    2024年01月18日
    瀏覽(24)
  • MySQL筆記(一):設(shè)計(jì)范式、基礎(chǔ)概念、數(shù)據(jù)庫定義語言DDL

    MySQL筆記(一):設(shè)計(jì)范式、基礎(chǔ)概念、數(shù)據(jù)庫定義語言DDL

    MySQL是一種數(shù)據(jù)庫管理系統(tǒng) (DBMS),是基于客戶機(jī)-服務(wù)器的數(shù)據(jù)庫; 分為兩個(gè)不同的部分, 服務(wù)器軟件(MySQL DBMS)是負(fù)責(zé)所有數(shù)據(jù)訪問和處理的一個(gè)文件,這個(gè)軟件運(yùn)行在稱為數(shù)據(jù)庫服務(wù)器的計(jì)算機(jī)上,與數(shù)據(jù)文件打交道; 客戶機(jī)則是與用戶打交道的軟件,對(duì)于用戶提出的

    2024年02月03日
    瀏覽(22)
  • 7種系統(tǒng)設(shè)計(jì)中的數(shù)據(jù)庫范式

    7種系統(tǒng)設(shè)計(jì)中的數(shù)據(jù)庫范式

    ? 在設(shè)計(jì)系統(tǒng)時(shí),選擇合適的數(shù)據(jù)庫并明確原因是最重要的決策之一。市場上有許多不同的數(shù)據(jù)庫可供選擇,這使得做出正確選擇變得困難且令人困惑。每個(gè)數(shù)據(jù)庫都有其自己的故事和自己獨(dú)特的視角。 因此,讓我們深入了解可以將數(shù)據(jù)庫分類為的7個(gè)廣泛范疇: 這些是最流

    2024年02月08日
    瀏覽(16)
  • 【數(shù)據(jù)庫原理 ? 一】數(shù)據(jù)庫系統(tǒng)概念

    【數(shù)據(jù)庫原理 ? 一】數(shù)據(jù)庫系統(tǒng)概念

    前言 數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最快,應(yīng)用最廣的技術(shù)之一,它是專門研究如何科學(xué)的組織和存儲(chǔ)數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù)的技術(shù)。它已成為各行各業(yè)存儲(chǔ)數(shù)據(jù)、管理信息、共享資源和決策支持的最先進(jìn),最常用的技術(shù)。 當(dāng)前互聯(lián)網(wǎng)+與大數(shù)據(jù),一切都建立

    2023年04月11日
    瀏覽(23)
  • [MySQL]數(shù)據(jù)庫原理1,三大范式,E-R圖,DataBase,數(shù)據(jù)庫管理系統(tǒng)(DBMS),Relationship,實(shí)體、屬性、聯(lián)系 映射基數(shù),關(guān)系型數(shù)據(jù)庫,聯(lián)系的度數(shù)等——喵喵期末不掛科

    [MySQL]數(shù)據(jù)庫原理1,三大范式,E-R圖,DataBase,數(shù)據(jù)庫管理系統(tǒng)(DBMS),Relationship,實(shí)體、屬性、聯(lián)系 映射基數(shù),關(guān)系型數(shù)據(jù)庫,聯(lián)系的度數(shù)等——喵喵期末不掛科

    希望你開心,希望你健康,希望你幸福,希望你點(diǎn)贊! 最后的最后,關(guān)注喵,關(guān)注喵,關(guān)注喵,佬佬會(huì)看到更多有趣的博客哦?。?! 喵喵喵,你對(duì)我真的很重要! 目錄 前言 認(rèn)識(shí)數(shù)據(jù)庫 常見的數(shù)據(jù)庫管理系統(tǒng)應(yīng)用案例。 ? ? ? 1.?dāng)?shù)據(jù)(Data) ? ? ? 2.?dāng)?shù)據(jù)庫(DataBase ,簡

    2024年02月04日
    瀏覽(34)
  • 【數(shù)據(jù)庫系統(tǒng)概論】第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL

    【數(shù)據(jù)庫系統(tǒng)概論】第三章關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL

    1.數(shù)據(jù)查詢: SELECT:用于選擇需要查詢的列和行。 FROM:用于指定要查詢的表。 WHERE:用于指定查詢條件。 GROUP BY:用于按照指定的列對(duì)結(jié)果進(jìn)行分組。 HAVING:用于指定分組條件。 ORDER BY:用于指定查詢結(jié)果的排序方式。 2.數(shù)據(jù)操縱: INSERT INTO:用于將數(shù)據(jù)插入表中。 UPDAT

    2024年02月08日
    瀏覽(41)
  • 數(shù)據(jù)庫三大范式、BC范式、第四范式

    數(shù)據(jù)庫三大范式、BC范式、第四范式

    為了建立冗余較小、結(jié)構(gòu)合理的數(shù)據(jù)庫,設(shè)計(jì)數(shù)據(jù)庫時(shí)必須遵循一定的規(guī)則。在關(guān)系型數(shù)據(jù)庫中這種規(guī)則就稱為范式。范式是符合某一種設(shè)計(jì)要求的總結(jié)。要想設(shè)計(jì)一個(gè)結(jié)構(gòu)合理的關(guān)系型數(shù)據(jù)庫,必須滿足一定的范式。 第一范式是最基本的范式。 如果數(shù)據(jù)庫表中的所有字段

    2024年01月18日
    瀏覽(25)
  • 系統(tǒng)架構(gòu)設(shè)計(jì)師---計(jì)算機(jī)基礎(chǔ)知識(shí)之?dāng)?shù)據(jù)庫系統(tǒng)結(jié)構(gòu)與規(guī)范化

    目錄 一、基本概念 ?二、 數(shù)據(jù)庫的結(jié)構(gòu) ?三、常用的數(shù)據(jù)模型 ? ? ? ??概念數(shù)據(jù)模型 ? ? ? ?基本數(shù)據(jù)模型 ? ? ? ?面向?qū)ο竽P?四、數(shù)據(jù)的規(guī)范化 ? ? ?函數(shù)依賴 ? ? ??范式 ? 1. 數(shù)據(jù)庫 (DataBase, DB) : 是指長期儲(chǔ)存在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。 ??

    2024年02月12日
    瀏覽(28)
  • 數(shù)據(jù)庫|數(shù)據(jù)庫范式(待完成)

    數(shù)據(jù)庫|數(shù)據(jù)庫范式(待完成)

    數(shù)據(jù)庫的一般操作是通過SET是對(duì)數(shù)據(jù)進(jìn)行設(shè)置,同時(shí)用GET去獲得存放在數(shù)據(jù)庫中的信息。 產(chǎn)生的背景(沒有規(guī)范化的壞處/帶來的問題) 規(guī)范化表格設(shè)計(jì)的要求 一是要使得數(shù)據(jù)庫易于理解(易于理解才方便在使用過程中快速上手) 易于增強(qiáng)和擴(kuò)展(在現(xiàn)實(shí)開發(fā)場景中,往往

    2024年01月17日
    瀏覽(21)
  • 【數(shù)據(jù)庫基礎(chǔ)】數(shù)據(jù)庫介紹和三大范式

    【數(shù)據(jù)庫基礎(chǔ)】數(shù)據(jù)庫介紹和三大范式

    ?????? 數(shù)據(jù)庫 (DataBase,DB):指長期保存在計(jì)算機(jī)的存儲(chǔ)設(shè)備上,按照一定規(guī)則組織起來,可以被各種用戶或應(yīng)用共享的數(shù)據(jù)集合。 ?????? 數(shù)據(jù)庫管理系統(tǒng) (DataBase Management System,DBMS):指一種操作和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫,對(duì)數(shù)據(jù)庫

    2024年02月07日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包