當(dāng)前位置: 首頁 > 自學(xué)考試 > 自學(xué)考試備考資料 > 自考《數(shù)據(jù)庫原理》串講-關(guān)系數(shù)據(jù)庫的模式設(shè)計

自考《數(shù)據(jù)庫原理》串講-關(guān)系數(shù)據(jù)庫的模式設(shè)計

更新時間:2012-12-10 10:20:29 來源:|0 瀏覽0收藏0

自學(xué)考試報名、考試、查分時間 免費短信提醒

地區(qū)

獲取驗證 立即預(yù)約

請?zhí)顚憟D片驗證碼后獲取短信驗證碼

看不清楚,換張圖片

免費獲取短信驗證碼

  第四章 關(guān)系數(shù)據(jù)庫的模式設(shè)計

  本章的理論性較強(qiáng),學(xué)習(xí)時有無從下手的感覺,在學(xué)習(xí)時應(yīng)多加思考,從概念出發(fā)去理解理論,前后的理論有較強(qiáng)的聯(lián)系,因此要逐個理解,但對于理論的證明等內(nèi)容則不必深究,本章重點是函數(shù)依賴,無損聯(lián)接、保持依賴和范式的概念。

  一、關(guān)系模式的設(shè)計問題( 識記 )

  關(guān)系數(shù)據(jù)庫 是以關(guān)系模型為基礎(chǔ)的數(shù)據(jù)庫,它利用關(guān)系來描述現(xiàn)實世界。一個關(guān)系既可以用來描述一個實體及其屬性 ,也可以用來描述實體間的聯(lián)系。關(guān)系實質(zhì)上就是一張二維表 ,表的 行稱為元組 ,列稱為屬性 .

  關(guān)系模式是用來定義關(guān)系的,這里的關(guān)系模式我們可以簡單地理解為一個表的結(jié)構(gòu),一個關(guān)系數(shù)據(jù)庫包含一組關(guān)系,也就是包含一組二維表,這些二維表結(jié)構(gòu)體的集合就構(gòu)成數(shù)據(jù)庫的模式(也可以理解為數(shù)據(jù)庫的結(jié)構(gòu))。

  關(guān)系數(shù)據(jù)庫 設(shè)計理論包括三個方面內(nèi)容: 數(shù)據(jù)依賴 、范式 、模式設(shè)計方法。核心內(nèi)容是數(shù)據(jù)依賴。

  泛關(guān)系模式 :把現(xiàn)實問題的所有屬性組成一個關(guān)系模式R(U),這個關(guān)系模式就稱為泛關(guān)系模式。

  數(shù)據(jù)庫模式 :把泛關(guān)系模式用一組關(guān)系模式的集合ρ來表示時,這個ρ就是數(shù)據(jù)庫模式。

  下面我們總結(jié)一下關(guān)系模式的相關(guān)內(nèi)容從“大”到“小”的排列

  泛關(guān)系模式→數(shù)據(jù)庫模式→關(guān)系數(shù)據(jù)庫→表結(jié)構(gòu)→關(guān)系模式實例(表)→記錄(行、列。)

  關(guān)系模式的存儲異常: 數(shù)據(jù)冗余 、更 新異常 、 插入異常和刪除異常

  二、函數(shù)依賴(FD)

  1、函數(shù)依賴的定義 ( 領(lǐng)會 ):設(shè)有關(guān)系模式R(A1,A2,……An)或簡記為R(U),X,Y是U的子集,r是R的任一具體關(guān)系,如果對r的任意兩個元組t1,t2,由t1[X]=t2[X]導(dǎo)致t1[Y]=t2[Y],則稱X函數(shù)決定Y,或Y函數(shù)依賴于X,記為X→Y.X→Y為模式R的一個函數(shù)依賴。

  這個定義可以這樣理解 :有一張設(shè)計好的二維表,X,Y是表的某些列(可以是一列,也可以是多列),若在表中的第t1行,和第t2行上的X值相等,那么必有t1行和t2行上的Y值也相等,這就是說Y函數(shù)依賴于X.

  2、函數(shù)依賴的邏輯蘊涵 ( 識記 )

  設(shè)F是關(guān)系模式R的一個函數(shù)依賴集,X,Y是R的屬性子集,如果從F中的函數(shù)依賴能夠推出X→Y,則稱F邏輯蘊涵X→Y,記為F|=X→Y.

  而函數(shù)依賴的閉包F + 是指被F邏輯蘊涵的函數(shù)依賴的全體構(gòu)成的集合。

  3、鍵和FD的關(guān)系 ( 領(lǐng)會 )

  鍵是唯一標(biāo)識實體的屬性集。對于鍵和函數(shù)依賴的關(guān)系:有兩個條件:設(shè)關(guān)系模式R(A1,A2……An),F(xiàn)是R上的函數(shù)依賴集,X是R的一個子集,

  (1)X→A1A2……An∈F + (它的意思是X能夠決定唯一的一個元組)

  (2)不存在X的真子集Y,使得Y也能決定唯一的一個元組,則X就是R的一個候選鍵。(它的意思是X能決定唯一的一個元組但又沒有多余的屬性集)

  包含在任何一個候選鍵中的屬性稱為主屬性 ,不包含在任何鍵中的屬性為非主屬性(非鍵屬性),注意主屬性應(yīng)當(dāng)包含在候選鍵中。

  4、函數(shù)依賴(FD)的推理規(guī)則 ( 簡單應(yīng)用 )

  前面我們舉的例子中是以實際經(jīng)驗來確定一個函數(shù)依賴的邏輯蘊涵,但是我們需要一個推理規(guī)則才能完全確定F或F+的所有函數(shù)依賴。

  設(shè)有關(guān)系模式R(U),X,Y,Z,W均是U的子集,F(xiàn)是R上只涉及到U中屬性的函數(shù)依賴集,推理規(guī)則如下:

  自反律 :如果Y X U,則X→Y在R上成立。

  增廣律 :如果X→Y為F所蘊涵,Z U,則XZ→YZ在R上成立。(XZ表示X∪Z,下同)

  傳遞律 :如果X→Y和Y→Z在R上成立,則X→Z在R上成立。

  合并律 :如果X→Y和X→Z成立,那么X→YZ成立。

  偽傳遞律 :如果X→Y和WY→Z成立,那么WX→Z成立。

  分解律 :如果X→Y和Z Y成立,那么X→Z成立。

  5、函數(shù)依賴推理規(guī)則的完備性 ( 識記 )

  函數(shù)依賴推理規(guī)則系統(tǒng)(自反律、增廣律和傳遞律)是完備的。由推理規(guī)則的完備性可得到兩個重要結(jié)論:

  屬性集X + 中的每個屬性A,都有X→A被F邏輯蘊涵,即X + 是所有由F邏輯蘊含X→A的屬性A的集合。

  F + 是所有利用Amstrong推理規(guī)則從F導(dǎo)出的函數(shù)依賴的集合

  6、函數(shù)依賴集的等價和覆蓋 ( 識記)

  在關(guān)系模式R(U)上的兩個函數(shù)依賴集F和G,如果 滿足F + =G + ,則稱F和G是 等價 的,稱F和G等價也稱F 覆蓋 G或G覆蓋F.

  每個函數(shù)依賴集F都可以被一個 右部只有單屬性的函數(shù)依賴集 G所覆蓋。

  如果函數(shù)依賴集合F滿足:

  (1)F中每一個函數(shù)依賴的右部都是單屬性;

  (2)F中的任一函數(shù)依賴X→A,其F-{X→A}是不等價的;

  (3)F中的任一函數(shù)依賴X→A,Z為X的子集。(F-{X→A})∪{Z→A}與F不等價。

  則稱F為最小函數(shù)依賴集合。

  如果函數(shù)依賴集F和G等價,并且G是最小集,那么稱G是F的一個 最小覆蓋 .

  這一段并不要求掌握最小集的求法,但是應(yīng)當(dāng)通過其求法理解最小集的概念 .

  三、關(guān)系模式的分解特性

  1、 模式分解中存在的問題 :( 識記 )

  模式分解 就是將一個泛關(guān)系模式 R分解成 數(shù)據(jù)庫模式ρ ,以ρ代替R的過程。它不僅僅是屬性集合的分解,它是對關(guān)系模式上的函數(shù)依賴集、以及關(guān)系模式的當(dāng)前值分解的具體表現(xiàn)。

  分解一個模式有很多方法,但是有的分解會出現(xiàn)失去函數(shù)依賴、或出現(xiàn)插入、刪除異常等情況,而有的分解則不出現(xiàn)相關(guān)問題。

  衡量一個分解的標(biāo)準(zhǔn)有三種: 分解具有無損聯(lián)接 ; 分解要保持函數(shù)依賴 ;分解 既要保持依賴,又要具有無損聯(lián)接 .

  那么什么是無損聯(lián)接呢?什么又是保持依賴?

  2、 無損聯(lián)接的定義和性質(zhì) ( 識記 )

  設(shè)R是一關(guān)系模式,分解成ρ={R1,R2,……,Rk},F(xiàn)是R上的一個函數(shù)依賴集。無損聯(lián)接就是指R中每一個滿足F的關(guān)系r(也就是一個關(guān)系實例)都有r=π R1 (r)|X|π R2 (r)……|X|π R3 (r),即r為它在Ri上的投影的自然聯(lián)接。

  最簡單的理解, 也就是說,分解后的關(guān)系 自然連接后 完全等于 分解前的 關(guān)系,則這個分解相對于F是無損聯(lián)接分解。

  設(shè)R的分解為ρ={R1,R2},F(xiàn)為R所滿足的函數(shù)依賴集,則分解ρ具有無損聯(lián)接性的 充分必要條件 是:

  R1∩R2→(R1-R2)

  R1∩R2→(R2-R1)

  也就是說,分解后的兩個模式的交能決定這兩個模式的差集,即R1、R2的公共屬性能夠函數(shù)決定R1或R2中的其他屬性 ,這樣的分解就必定是無損聯(lián)接分解 .

  3、 保持函數(shù)依賴的分解 ( 識記 )

  在分解過程中,要求模式分解的無損聯(lián)接是必要的,只有無損聯(lián)接分解才能保證任何一個關(guān)系能由它的那些投影進(jìn)行自然聯(lián)接得到恢復(fù)。

  同時,分解關(guān)系模式時還應(yīng)保證關(guān)系模式的函數(shù)依賴集在分解后仍在數(shù)據(jù)庫模式中保持不變,這就是保持函數(shù)依賴的問題。也就是所有分解出的模式所滿足的函數(shù)依賴的全體應(yīng)當(dāng)?shù)葍r于原模式的函數(shù)依賴集。只有這樣才能確保整個數(shù)據(jù)庫中數(shù)據(jù)的語義完整性不受破壞。

  四、關(guān)系模式的范式( 領(lǐng)會 )

  1、1NF、2NF、3NF、BCNF的定義:

  1NF:第一范式 .

  即關(guān)系模式中的屬性的 值域 中 每一個值 都是 不可再分解 的值。如果某個數(shù)據(jù)庫模式都是第一范式的,則稱該數(shù)據(jù)庫模式是屬于第一范式的數(shù)據(jù)庫模式。

  2NF:第二范式 .

  如果關(guān)系模式R為 第一范式 ,并且R中每一個 非主屬性 完全函數(shù)依賴于 R的某個候選鍵,則稱為 第二范式模式 .

  在這里要先了解“非主屬性”、“完全函數(shù)依賴”、“候選鍵”這三個名詞的含義。

  候選鍵 就是指可以唯一決定關(guān)系模式R中某元組值且不含有多余屬性的屬性集。

  非主屬性 也就是非鍵屬性,指關(guān)系模式R中不包含在任何建中的屬性。

  設(shè)有函數(shù)依賴W→A,若存在X W,有X→A成立,那么稱W→A是局部依賴,否則就稱W→A是 完全函數(shù)依賴 .

  在分析是否為第2范式時,應(yīng) 首先確定 候選鍵 ,然后把關(guān)系模式中的非主屬性與鍵的依賴關(guān)系進(jìn)行考察,是否都為完全函數(shù)依賴,如是,則此關(guān)系模式為2NF.如果數(shù)據(jù)庫模式中每個關(guān)系模式都是2NF的,則此數(shù)據(jù)庫模式屬于2NF的數(shù)據(jù)庫模式。

  3NF:第三范式 .

  如果關(guān)系模式R是 第二范式 ,且 每 個 非主屬性 都 不 傳遞依賴 于R的 候選鍵 ,則稱R為第三范式的模式。

  這里首先要了解 傳遞依賴 的含義: 在關(guān)系模式中,如果Y→X,X→A,且X不決定Y和A不屬于X,那么Y→A是傳遞依賴。

  注意的是,這里要求非主屬性都不傳遞依賴于候選鍵。

  BCNF :這個范式和第三范式有聯(lián)系,它是3NF的改進(jìn)形式。若關(guān)系模式R是 第一范式 ,且 每個屬性 都 不 傳遞依賴于R的候選鍵。這種關(guān)系模式就是BCNF模式。

  縱觀四種范式,可以發(fā)現(xiàn)它們之間存在如下關(guān)系:

  

  5、 分解成BCNF模式集的算法( 識記 )

  對于任一關(guān)系模式,可找到一個分解達(dá)到3NF,且具有無損聯(lián)接和保持函數(shù)依賴性。而對于BCNF分解,則可以保證無損聯(lián)接但不一定能保證保持函數(shù)依賴集。

  無損聯(lián)接分解成BCNF模式集的算法:

  (1)置初值ρ={R};

  (2)如果ρ中所有關(guān)系模式都是BCNF,則轉(zhuǎn)(4);

  (3)如果ρ中有一個關(guān)系模式S不是BCNF,則S中必能找到一個函數(shù)依賴集X→A有X不是S的鍵,且A不屬于X,設(shè)S 1 =XA,S 2 =S-A,用分解S 1 ,S 2 代替S,轉(zhuǎn)(2);

  (4)分解結(jié)束。輸出ρ。

  在這個過程中, 重點在于(3)步 ,判斷哪個關(guān)系不是BCNF,并找到X和A.這里,S的判斷用BCNF的定義,而X不是S的鍵則依靠分析。

  6、 分解成3NF模式集( 識記 )

  算法:

  (1)如果R中的某些屬性在F的所有依賴的左邊和右邊都不出現(xiàn),那么這些屬性可以從R中分出去,單獨構(gòu)成一個關(guān)系模式。

  (2)如果F中有一個依賴X→A有XA→R,則ρ={R},轉(zhuǎn)(4)

  (3)對于F中每一個X→A,構(gòu)成一個關(guān)系模式XA,如果F有有X→A 1 ,X→A 2 ……X→A n ,則可以用模式XA 1 A 2 ……A n 代替n個模式XA 1 ,XA 2 ……XA n ;

  (4)w分解結(jié)束,輸入ρ。

  這個過程的 重點是這一句 “對于F中每一個X→A,構(gòu)成一個關(guān)系模式XA”,這使我們的分解十分容易,然后依據(jù)合并律(合并律:如果X→Y和X→Z成立,那么X→YZ成立)將有關(guān)模式合并即得到所需3NF模式。

  7、 模式設(shè)計方法的原則( 識記 )

  關(guān)系模式R相對于函數(shù)依賴集F分解成數(shù)據(jù)庫模式ρ={R 1 ,R 2 ……R k },一般具有下面 四項特性 :

  ρ中每個關(guān)系模式R i 上應(yīng)具有某種 范式性質(zhì) (3NF或BCNF)

  無損聯(lián)接 性。

  保持函數(shù)依賴 集。

  最小性 ,即ρ中模式個數(shù)應(yīng)最少且模式中屬性總數(shù)應(yīng)最少。

  一個好的模式設(shè)計方法應(yīng)符合下列三條原則:

  表達(dá)性

  分離性

  最小冗余性

  8、多值依賴。簡單了解一下。

?2013年高教自考網(wǎng)絡(luò)輔導(dǎo)課程招生簡章

?2013年1月自考報名

更多信息請訪問:自學(xué)考試頻道    自學(xué)考試論壇

分享到: 編輯:環(huán)球網(wǎng)校

資料下載 精選課程 老師直播 真題練習(xí)

自學(xué)考試資格查詢

自學(xué)考試歷年真題下載 更多

自學(xué)考試每日一練 打卡日歷

0
累計打卡
0
打卡人數(shù)
去打卡

預(yù)計用時3分鐘

環(huán)球網(wǎng)校移動課堂APP 直播、聽課。職達(dá)未來!

安卓版

下載

iPhone版

下載

返回頂部