【正文】
B 95003 MA C 95004 PH ───── 95005 ────── ────── An Introduction to Database System 模式的分解(續(xù)) 分解后的數(shù)據(jù)庫(kù) 丟失了許多信息 例如無(wú)法查詢 95001學(xué)生所在系或所在宿舍 。 如果分解后的關(guān)系可以通過(guò)自然連接恢復(fù)為原來(lái)的關(guān)系 , 那么這種分解就沒(méi)有 丟失信息 An Introduction to Database System 模式的分解(續(xù)) 2. SL分解為下面二個(gè)關(guān)系模式: NL(Sno, Sloc) DL(Sdept, Sloc) 分解后的關(guān)系為: NL ──────────── DL ──────────── Sno Sloc Sdept Sloc ──────────── ──────────── 95001 A CS A 95002 B IS B 95003 C MA C 95004 B PH B 95005 B ──────────── ────────── An Introduction to Database System 模式的分解(續(xù)) NL DL ───────────── Sno Sloc Sdept ───────────── 95001 A CS 95002 B IS 95002 B PH 95003 C MA 95004 B IS 95004 B PH 95005 B IS 95005 B PH An Introduction to Database System 模式的分解(續(xù)) NL DL比原來(lái)的 SL關(guān)系多了 3個(gè)元組 無(wú)法知道 9500 9500 95005 究竟是哪個(gè)系的學(xué)生 元組增加了,信息丟失了 An Introduction to Database System 第三種分解方法 3. 將 SL分解為下面二個(gè)關(guān)系模式: ND(Sno, Sdept) NL(Sno, Sloc) 分解后的關(guān)系為: An Introduction to Database System 模式的分解(續(xù)) ND ──────────── NL ────────── Sno Sdept Sno Sloc ──────────── ────────── 95001 CS 95001 A 95002 IS 95002 B 95003 MA 95003 C 95004 IS 95004 B 95005 PH 95005 B ──────────── ─────────── An Introduction to Database System 模式的分解(續(xù)) ND NL ────────────── Sno Sdept Sloc ────────────── 95001 CS A 95002 IS B 95003 MA C 95004 CS A 95005 PH B ────────────── 與 SL關(guān)系一樣,因此沒(méi)有丟失信息 An Introduction to Database System 具有無(wú)損連接性的模式分解 ? 關(guān)系模式 RU,F的一個(gè)分解 ρ={ R1U1,F1,R2U2,F2, … , RnUn,Fn} 若 R與 R R … 、 Rn自然連接的結(jié)果相等,則稱關(guān)系 模式 R的這個(gè)分解 ρ具有無(wú)損連接性( Lossless join) ? 具有無(wú)損連接性的分解保證不丟失信息 ? 無(wú)損連接性不一定能解決插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問(wèn)題 An Introduction to Database System 模式的分解(續(xù)) 第三種分解方法具有無(wú)損連接性 問(wèn)題 : 這種分解方法沒(méi)有保持原關(guān)系中的函數(shù)依賴 SL中的函數(shù)依賴 Sdept→ Sloc 沒(méi)有投影到關(guān)系模式 ND、 NL上 An Introduction to Database System 保持函數(shù)依賴的模式分解 設(shè)關(guān)系模式 RU,F被分解為若干個(gè)關(guān)系模式 R1U1,F1, R2U2,F2, … , RnUn,Fn (其中 U=U1∪ U2∪ … ∪ Un,且不存在 Ui ? Uj, Fi為 F在 Ui上的投影),若 F所邏輯蘊(yùn)含的函數(shù)依賴一定也由分解得到的某個(gè)關(guān)系模式中的函數(shù)依賴 Fi所邏輯蘊(yùn)含,則稱關(guān)系模式 R的這個(gè)分解是保持函數(shù)依賴的( Preserve dependency)。 An Introduction to Database System 第四種分解方法 將 SL分解為下面二個(gè)關(guān)系模式: ND(Sno, Sdept) DL(Sdept, Sloc) 這種分解方法就保持了函數(shù)依賴。 An Introduction to Database System 關(guān)系模式分解的標(biāo)準(zhǔn) 三種模式分解的等價(jià)定義 ⒈ 分解具有無(wú)損連接性 ⒉ 分解要保持函數(shù)依賴 ⒊ 分解既要保持函數(shù)依賴,又要具有無(wú)損連接性 An Introduction to Database System 模式的分解(續(xù)) ? 如果一個(gè)分解具有無(wú)損連接性,則它能夠保證不丟失信息。 ? 如果一個(gè)分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況。 ? 分解具有無(wú)損連接性和分解保持函數(shù)依賴是兩個(gè)互相獨(dú)立的標(biāo)準(zhǔn)。具有無(wú)損連接性的分解不一定能夠保持函數(shù)依賴。同樣,保持函數(shù)依賴的分解也不一定具有無(wú)損連接性。 An Introduction to Database System 模式的分解(續(xù)) 第一種分解方法既不具有無(wú)損連接性,也未保持函 數(shù)依賴,它不是原關(guān)系模式的一個(gè)等價(jià)分解 第二種分解方法保持了函數(shù)依賴,但不具有無(wú)損連 接性 第三種分解方法具有無(wú)損連接性,但未持函數(shù)依賴 第四種分解方法既具有無(wú)損連接性,又保持了函數(shù) 依賴 An Introduction to Database System 小結(jié) (續(xù) ) ? 規(guī)范化理論為數(shù)據(jù)庫(kù)設(shè)計(jì)提供了理論的指南和工具 ? 也僅僅是指南和工具 ? 并不是規(guī)范化程度越高 , 模式就越好 ? 必須結(jié)合應(yīng)用環(huán)境和現(xiàn)實(shí)世界的具體情況合理地選擇數(shù)據(jù)庫(kù)模式