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

數(shù)據(jù)庫—設(shè)計(jì)規(guī)范(依賴、范式、分解)

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

函數(shù)依賴

  • 如果在一個二維表中:Students(Sno , name, age),Sno 是這個表中的主鍵,所以對于其他屬性來說,Sno決定name,Sno決定age,反過來則叫做name函數(shù)依賴于Sno…
    • 定義:主碼決定其他屬性,其他屬性函數(shù)依賴于主碼
  • 非平凡函數(shù)依賴
    SC(Sno,Cno,Grade)這么一個表中解釋,首先主碼是Sno和Cno聯(lián)合主鍵,然后Grade必須要聯(lián)合主鍵才能唯一標(biāo)識,否則就是非平凡的。(一般研究的都是非平凡函數(shù)依賴)
  • 平凡函數(shù)依賴
    假如:SC(Sno,Cno,Grade,Cname)中討論Cname的函數(shù)依賴,則Cname只需要Cno就能唯一標(biāo)識,對于聯(lián)合主鍵來說只是用了一部分,那么這個叫做部分函數(shù)依賴,同時這種依賴叫做平凡函數(shù)依賴。(因?yàn)檫@每一個聯(lián)合主鍵表都會有,所以平凡)
    • 總結(jié)的說法就是:在對于聯(lián)合主鍵這里就一定會出現(xiàn)的情況(平凡函數(shù)依賴),只有一個主鍵的不會有,所以只要出現(xiàn)了聯(lián)合主鍵就必然有平凡函數(shù)依賴。但這里只是引出一個定義,后面只會研究非主屬性,而不會對于主屬性還研究是否依賴自己

認(rèn)識了平凡和非平凡依賴后開始進(jìn)入正題


  • 完全函數(shù)依賴
    SC(Sno,Cno,Grade,Cname)中,Grade就是完全函數(shù)依賴于聯(lián)合主鍵,而不是依賴其中一個
  • 部分函數(shù)依賴
    對于非主屬性部分依賴于主鍵的也就是出現(xiàn)了聯(lián)合主鍵,非主屬性僅僅依賴于某個而已的時候就叫做部分函數(shù)依賴。
  • 完全函數(shù)依賴有什么用? 部分依賴有什么問題?
    個人理解:舉一個極端情況,假如說出現(xiàn)一個表有聯(lián)合主鍵,有一個非主屬性僅僅依賴于聯(lián)合主鍵(主屬性)中的一個的時候就出現(xiàn)了一個問題就是你的聯(lián)合主鍵標(biāo)識就顯得冗余了,對于這個非主屬性來說你的聯(lián)合主鍵沒啥用,只要一個就可以標(biāo)識了,到時候查詢的時候你的另一個也感覺是用不太到。
  • 主碼與候選碼
    主碼只能設(shè)置一個(可一個屬性也可聯(lián)合屬性),當(dāng)出現(xiàn)非主屬性函數(shù)依賴的時候就可以考慮是否是聯(lián)合主碼出問題了是否能將其多余的修改成一個主屬性作為主碼,還是說要單拎出來分解出來一個新表。
    • 另外在候選碼中,他自己本身也能夠唯一標(biāo)識一個元組,但假如說沒有選他做主屬性的時候還能繼續(xù)完善,就是最完美的要到達(dá)主屬性除了自身外還要完全依賴于其他候選碼,注意是候選碼而不是其他主屬性,而是其他所有的候選碼,不管是否被選中為主屬性(BC范式的要求)

范式

第一范式

關(guān)系數(shù)據(jù)庫最基本的要求。

  • 滿足每一個屬性都是不可再分(小的斗膽認(rèn)為自己不會寫出這么沙壁的東西)
  • 存在的問題
    • 函數(shù)依賴
      因?yàn)槟銉H僅是滿足了不可再分,很可能很多漏洞還存留著。

第二范式

  • 首先是滿足第一范式
  • 然后第二范式必然是為了解決第一范式存在的問題,那就是解決部分函數(shù)依賴。
  • 滿足非主屬性完全函數(shù)依賴于主碼(主屬性)
  • 存在的問題
    • 存在傳遞依賴函數(shù),即可能出現(xiàn):一個主碼決定a非主屬性,然而a這個非主屬性又決定b這個非主屬性就叫做傳遞函數(shù)依賴。(primarykey->a->b)
    • 即:非主屬性出現(xiàn)了傳遞函數(shù)依賴關(guān)系

到底怎么解決的

主要是通過分解來解決的,將原本第一范式的進(jìn)行分解后到達(dá)了第二范式。

第三范式

  • 首先第三范式有點(diǎn)特殊,他是要滿足第一范式的,書上沒有說明要滿足第二范式,但是我認(rèn)為只要能細(xì)分到屬于第三范式即可,無須說我滿足了某某范式這一說。(因?yàn)槲铱吹骄W(wǎng)上好多的答案都不同一,有的說二三范式其實(shí)隸屬于一個范式只是二范式是特殊的三范式等等)
  • 三范式解決的必然是二范式中傳遞依賴的
  • 三范式必然要滿足完全函數(shù)依賴
  • 三范式中的屬性不可再分(無可厚非的必須要滿足第一范式)
  • 即三范式:所有的非主屬性定要完全函數(shù)依賴于主屬性,且非主屬性也不存在傳遞依賴關(guān)系

到底如何解決的

主要是通過分解來解決的,將原本第二范式的傳遞依賴進(jìn)行分解后到達(dá)了第三范式。

  • 第三范式還存在著某些數(shù)據(jù)庫的插入與刪除異常(其實(shí)到這里一般的小項(xiàng)目就OK了)
  • 問題存在主要是第三范式只解決了非主屬性的問題,主屬性的問題還沒解決。

BC范式(BCNF)

  • 首先要滿足第一(第三范式基本的也要滿足,但是書上也沒說,和第三范式?jīng)]寫滿足第二范式一樣,網(wǎng)上答案也不統(tǒng)一說法)
  • 解決插入刪除異常
  • 滿足第一范式后,寫出的所有的依賴關(guān)系,都必須是屬于候選碼(只要是候選碼就行,沒有說明是非得主碼)
    • 這里比第三范式說的更明白了,就是一個關(guān)系中列出的所有函數(shù)依賴,左邊的那個決定性的屬性都必須是屬于候選碼(只要是候選碼就行,沒有說明是非得主碼)
    • 這里我剛接觸的時候愣了很久才搞明白,就是用我們學(xué)平凡依賴非平凡依賴的時候,列出所有的函數(shù)依賴,然后這里的BS范式分析的就是這些函數(shù)依賴左邊的決定性屬性(或聯(lián)合屬性)必定是我們在這個關(guān)系中的候選碼(只要是候選碼就行,沒有說明是非得主碼)

范式學(xué)習(xí)總結(jié)

  • 解決方式都是通過分解屬性之間的聯(lián)系
  • 我個人不太喜歡范式說法,為何要定義這么一說要滿足幾幾范式,何必呢,無非是用來衡量數(shù)據(jù)庫好壞的一個方式,其實(shí)我覺得只要設(shè)計(jì)出來的數(shù)據(jù)庫合理,給程序用查詢的速度高效,滿足用戶與程序員即可。

如何分解低范式->高范式

  • 分解后必須保持原有的函數(shù)依賴

    • 原因很簡單,假如說是用戶提的需求固然不能修改他給的函數(shù)依賴(人家說這個程序一定要雞再有蛋或者先有蛋再有雞那就不能把人家的需求改掉)
  • 分解后具有無損連接

    • 意思是你未分解前的數(shù)據(jù)元組,在你分解后(假如說分解了兩個表),那么這些表進(jìn)行自然連接后所得的數(shù)據(jù)必須和你的原有的(原本未分解前給的數(shù)據(jù)一模一樣),這樣才叫做無損連接(必須是一模一樣,少了幾條不行,多了也不行,別看名字叫無損連接,數(shù)據(jù)多了也是錯)
  • 如何分解:這里就是具體問題具體分析了,一般來說正常思維都不會分解得離譜到哪里去,只要按照規(guī)范化去整,盡可能分解拆分到力所能及的最高范式即可

  • (因?yàn)橛袝r候不是不能完美,而是這個東西他本身就不能太完美。)文章來源地址http://www.zghlxwxcb.cn/news/detail-523118.html

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

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

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

相關(guān)文章

  • 數(shù)據(jù)庫設(shè)計(jì)-范式

    范式就是數(shù)據(jù)庫的構(gòu)建規(guī)則,目前關(guān)系數(shù)據(jù)庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎(chǔ)上進(jìn)一步滿足更多要求的稱為第二范式(2NF),

    2024年02月03日
    瀏覽(17)
  • 數(shù)據(jù)庫期末復(fù)習(xí)(SQL,范式,數(shù)據(jù)庫設(shè)計(jì)例題)

    數(shù)據(jù)庫期末復(fù)習(xí)(SQL,范式,數(shù)據(jù)庫設(shè)計(jì)例題)

    創(chuàng)表 視圖 例題:建立一個視圖V1,顯示老師與學(xué)生的授課關(guān)系,包括年份,學(xué)期,課程名稱,老師ID,老師姓名,學(xué)生ID,學(xué)生姓名 向表中添加或刪除約束 添加信息 例題:給“Aufr”同學(xué)選上2010年秋季學(xué)期的所有課程 刪除信息 例題:刪除“Comp. Sci.”學(xué)院“Ploski”同學(xué),所有

    2024年02月02日
    瀏覽(31)
  • 數(shù)據(jù)庫三大范式的學(xué)習(xí)與數(shù)據(jù)庫表設(shè)計(jì)的了解

    數(shù)據(jù)庫三大范式的學(xué)習(xí)與數(shù)據(jù)庫表設(shè)計(jì)的了解

    內(nèi)容簡單介紹 對于數(shù)據(jù)庫三大范式的理解以及一些設(shè)計(jì)表示要注意的方面 本章內(nèi)容梳理圖 數(shù)據(jù)庫的三大范式(Normal Forms)是關(guān)系數(shù)據(jù)庫設(shè)計(jì)中用于確保數(shù)據(jù)結(jié)構(gòu)化、減少數(shù)據(jù)冗余、并提高數(shù)據(jù)完整性的指導(dǎo)和規(guī)則。 以下是三大范式的簡述: 第一范式(1NF) 定義 :如果關(guān)系

    2024年03月27日
    瀏覽(20)
  • 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)的級別 。要想設(shè)計(jì)一個結(jié)構(gòu)合理的關(guān)系型數(shù)據(jù)庫,必須滿足一定的范式。 目前關(guān)系型數(shù)據(jù)庫有六種常見范式,按照范式級別,從低到

    2024年01月18日
    瀏覽(24)
  • 數(shù)據(jù)庫的三大設(shè)計(jì)范式和BCNF

    第一范式(1NF):確保數(shù)據(jù)表中的每個列都是原子的,即每個列都包含不可再分的數(shù)據(jù)項(xiàng)。這意味著在每個列中不能有重復(fù)的數(shù)據(jù),也不能包含多個值。每個數(shù)據(jù)項(xiàng)應(yīng)該是獨(dú)立的,以便能夠?qū)ζ溥M(jìn)行有效的排序、搜索和過濾。 第二范式(2NF):在滿足第一范式的基礎(chǔ)上,要求

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

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

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

    2024年02月08日
    瀏覽(16)
  • MySQL:事務(wù)、索引、用戶管理、備份、數(shù)據(jù)庫設(shè)計(jì)(三大范式)

    MySQL:事務(wù)、索引、用戶管理、備份、數(shù)據(jù)庫設(shè)計(jì)(三大范式)

    事務(wù) (transaction):要么都成功,要么都失敗。 核心 :將一組 SQL 放在一個批次中去執(zhí)行。 原則 ACID :原子性(atomicity)、一致性(consistency)、隔離性(isolation)、持久性(durability)。 原子性 :一個事務(wù)中的所有步驟 要么都 成功, 要么都 失敗,不能只成功一個步驟。 一致性 :包括

    2023年04月26日
    瀏覽(21)
  • MySQL高級特性篇(6)-數(shù)據(jù)庫設(shè)計(jì)模式與范式

    數(shù)據(jù)庫是現(xiàn)代軟件開發(fā)中非常重要的一環(huán),而MySQL作為一種常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在數(shù)據(jù)庫設(shè)計(jì)方面也有一些常見的模式和范式。本博客將介紹MySQL數(shù)據(jù)庫設(shè)計(jì)模式與范式,讓讀者對MySQL數(shù)據(jù)庫的設(shè)計(jì)有一個全面的了解。 一、數(shù)據(jù)庫設(shè)計(jì)模式 數(shù)據(jù)庫設(shè)計(jì)模式是數(shù)據(jù)庫

    2024年02月22日
    瀏覽(22)
  • 數(shù)據(jù)庫表設(shè)計(jì)(一):字段設(shè)計(jì)規(guī)范和命名規(guī)范

    1.1.是否需要自增ID? 數(shù)據(jù)庫表,一定要有id,而且要用自增id! 有些人喜歡用自定義的,用UUID或者其他七七八八的id,如果在架構(gòu)設(shè)計(jì),代碼比較好的情況下,不會出啥大問題,但是一旦代碼寫的不行,極有可能就造成id重復(fù)之類的問題。 自增id另外還有一個好處,就是在數(shù)

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

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

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

    2024年02月03日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包