超碰在线91,国产第1页,国产精品99,最近中文字幕av

<video id="z2k50"><ins id="z2k50"></ins></video><small id="z2k50"><pre id="z2k50"><samp id="z2k50"></samp></pre></small>

    1. <video id="z2k50"><ins id="z2k50"></ins></video>

        規(guī)范化過程主要為克服數(shù)據(jù)庫邏輯結(jié)構(gòu)中的什么?

        發(fā)布時間:2024-10-03
        規(guī)范化過程主要為克服數(shù)據(jù)庫邏輯結(jié)構(gòu)中的插入異常、刪除異常以及冗余度大的缺陷。數(shù)據(jù)庫規(guī)范化能夠讓數(shù)據(jù)庫設(shè)計者更好地了解組織內(nèi)部當(dāng)前的數(shù)據(jù)結(jié)構(gòu),最終得到一系列的數(shù)據(jù)實(shí)體。數(shù)據(jù)庫規(guī)范化通過對數(shù)據(jù)庫表的設(shè)計,可以有效降低數(shù)據(jù)庫冗余程度。
        數(shù)據(jù)庫規(guī)范化過程
        關(guān)系數(shù)據(jù)庫的規(guī)范化說的通俗一些就是對表的規(guī)范化。
        規(guī)范化的必要性:
        根據(jù)項目的需求,我們會創(chuàng)建相應(yīng)的數(shù)據(jù)庫表格來完成項目中的數(shù)據(jù)的存儲。這已經(jīng)成為做項目的固定流程了,但是在真正的開始處理業(yè)務(wù)需求的時候,就會意識到自己的表格設(shè)置的不合理,導(dǎo)致數(shù)據(jù)的重復(fù)存儲,插入異常,刪除異常,更新異常等問題,這時就需要來重新的規(guī)劃表格,既浪費(fèi)時間,又消耗人力財力,十分不劃算,因此規(guī)范化是十分有必要的,所以今天就在這里教給大家規(guī)范表的方法。
        在教規(guī)范化數(shù)據(jù)庫方法之前,先給大家介紹知識:
        關(guān)鍵知識點(diǎn)函數(shù)依賴
        函數(shù)依賴的定義:
        設(shè)r(u)是屬性集上的一個子集,x和y是u的子集,若對于r(u)上的任意一個可能的關(guān)系r,如果r中不可能存在兩個元組,它們在x上的屬性值相等,而在y上的屬性值不相等,則稱x函數(shù)決定于y或y函數(shù)依賴與x,記作x->y。
        定義可能有些難以理解,我在這里簡單的解釋一下:函數(shù)依賴描述的是兩個集合之間的一種映射關(guān)系,這種映射關(guān)系與函數(shù)是一樣的,例如 y = x^2,在這里對于x來說,一個x就對應(yīng)一個y值,但是不存在,一個x對應(yīng)多種y值的情況,所以就可以說y函數(shù)依賴于x,然而對于y來說,存在一個y值對應(yīng)多個x值的情況,所以說x并不函數(shù)依賴于y。這就是函數(shù)依賴。
        接下來我們介紹幾種特殊的函數(shù)依賴:
        完全函數(shù)依賴
        定義:
        如果x->y,并且對于任意一個x的真子集x’都不存在,x’->y,那么我們就說 x->y這種函數(shù)依賴屬于完全函數(shù)依賴。
        簡單的解釋一下: 函數(shù)z = x y,對于z來說:z函數(shù)依賴于x和y,但是z并不單獨(dú)依賴于x或單獨(dú)依賴于y,這就說明z函數(shù)依賴于x和y的這種依賴就是完全函數(shù)依賴。
        部分函數(shù)依賴:
        定義:
        如果x->y,但是y不完全依賴于x,則稱這種依賴為部分完全依賴。 也就是說:函數(shù)z = x 0y 是可以看成 ,也就是說z函數(shù)依賴于x和y,但是z又單獨(dú)依賴于x,那么這就是部分函數(shù)依賴。
        傳遞函數(shù)依賴:
        定義:
        如果x->y, y -> z ,并且不成立,y->x也不成立。則稱z傳遞函數(shù)依賴于x。
        這個比較簡單,函數(shù)組z = x^2, x = 2y可以化簡為z = 4y ^2,很容易看出:z是函數(shù)依賴于x,x依賴于y,并且z->x不成立,這就是傳遞函數(shù)依賴。
        關(guān)鍵知識點(diǎn)之二—–鍵
        候選鍵:一個屬性(字段)或一個屬性組(多個字段)能夠完全決定于關(guān)系模式(表)中的其他屬性(字段)。也就是說其他屬性(字段)完全依賴于該屬性(字段)或?qū)傩越M(多個字段)。
        主鍵:如果候選鍵多于一個,則選擇其中一個作為主鍵。被選做主鍵的屬性或?qū)傩越M在該關(guān)系模式(表)中的每一個元祖(行)中的值是不允許重復(fù)和取值為null的。
        主屬性:報完在任何一個候選鍵中的屬性,稱為主屬性。如果候選鍵是由多個屬性共同組成的,那么這些屬性組中每一個屬性都是主屬性。
        非主屬性:不包含在任何鍵中的屬性稱為非主屬性。
        外鍵:某屬性或?qū)傩越M在當(dāng)前關(guān)系模式(表)中不是主鍵,但是另一個關(guān)系模式(表)中充當(dāng)主鍵的身份,則稱該屬性或?qū)傩越M為外鍵。
        在介紹完了上述的基本知識點(diǎn)之后,我們來開始學(xué)習(xí)數(shù)據(jù)庫表的規(guī)范過程:
        想要規(guī)范表,就首先需要一個標(biāo)準(zhǔn),來衡量表是否已經(jīng)規(guī)范。這個標(biāo)準(zhǔn)就是—-范式。
        范式一共有六種:第一范式(1nf),第二范式(2nf),第三范式(3nf),bc范式(bcnf),第四范式(4nf),第五范式(5nf)。
        在上面六中范式中,在一般的情況下我們需要將表規(guī)范到bcnf就已經(jīng)十分完美了,在真正的項目中其實(shí)只需要達(dá)到3nf就足夠了。
        接下來重點(diǎn)介紹前4中范式:
        第一范式:關(guān)系模式r中的所有屬性都是不可分的數(shù)據(jù)項。
        簡單來說就是只要你能把表建出來,這個表就已經(jīng)滿足了第一范式了。例如student表(student_id, course_id, student_name, age, sex, grade, sdept, sdept_director),在這個表中很明顯grade這一項是受student_id, course_id,共同決定的,所以應(yīng)該讓這兩項聯(lián)合做為主鍵。
        第二范式:在滿足第一范式的基礎(chǔ)上,滿足非主屬性都完全依賴于r的主鍵。
        這就需要用到前面講的內(nèi)容了,要判斷非主屬性是否完全依賴于主鍵。如果不滿足就重
        更改表的結(jié)構(gòu)。例如student表(student_id, course_id, student_name, age, sex, grade, sdept_id, sdept_director)因?yàn)閟tudent_id, course_id兩項聯(lián)合做為主鍵,但是對于其他的字段name, age, sex這些 屬性來說,它們是完全依 賴于student_id這一屬性的,所以它們對于student_id, course_id共同作為主鍵是部分 依賴的。這就不滿足第二范式的定義了,所以應(yīng)該把 grade拿出來,將這一個大表拆成 兩份小表:student(student_id, name, age, sex, sdept_id, sdept_director), student_score(student_id, course_id, grade);
        第三范式:在滿足第二范式的情況下去除傳遞依賴。
        例如:student表(student_id, student_name, age, sex, sdept, sdept_director),很明顯每一個專業(yè)決定一個專業(yè)主任,所以sdept_director傳遞依賴于student_id,所以應(yīng)該再拆分一個表student(student_id, student_name, age, sex)和sdept(sdept_id, sdept_name, sdept_director),這樣就滿足了第三范式。
        bc范式:在滿足第三范式的情況下,再滿足一下三點(diǎn):
        1、所有的主屬性完全依賴于其他不包含自己的候選鍵;
        2、所有的非主屬性完全依賴于每一個候選鍵;
        3、沒有任何屬性完全函數(shù)依賴于任何一組非主屬性。
        之前的三個范式都是對非主屬性進(jìn)行各種約束,bc范式是在他們基礎(chǔ)上,再對主屬性進(jìn)行約束,解決了主屬性之間的部分依賴的問題,以及不存在主屬性完全依賴于非主屬性的問題。
        我們的student表 student(student_id, student_name, age, sex),主鍵是student_id,所以主屬性是student_id,很顯然前兩條都已經(jīng)滿足,因?yàn)閷W(xué)生的姓名可能重復(fù),所以student_id與student_name之間沒有函數(shù)依賴關(guān)系,所以student表滿足bc范式。
        上一個:怎樣進(jìn)行玫瑰的修剪整形
        下一個:ssd做移動硬盤

        ltst-c191krkt-bt,中文資料,數(shù)據(jù)手冊
        顯微鏡熱臺的結(jié)構(gòu)組成
        怎么關(guān)閉幫買消息(如何關(guān)閉幫買提示)
        3t/h一體化污水處理設(shè)備
        熒光鈣鐵分析儀操作使用說明書
        HAWE平衡閥按照功能有哪些?
        LUMBERG連接器 RST5-VAD 3C-4-1-228/2.0
        超聲波傳感器指南
        win11和win10哪個更流暢(windows11和10哪個更流暢)
        無線測溫系統(tǒng) 型號:KZ-300BGRT 庫號:M180804