数据库理论第八章部分作业——基于《数据库系统概念》第七版
8.18
令主屬性為至少在一個候選碼中出現的屬性。令 α , β \alpha,\beta α,β為屬性集,使得 α → β \alpha\rightarrow\beta α→β成立,令A為不屬于 α 或 β \alpha或\beta α或β的屬性,并且 β → A \beta\rightarrow A β→A,我們稱 A A A為傳遞依賴于 α \alpha α( α \alpha α傳遞函數確定 A A A). 我們可以按照如下方式重新定義3NF: 關系模式R是關于函數依賴集F的3NF的條件為:R中沒有非主屬性A傳遞依賴于R的一個碼,請證明這個新定義等價于原始定義
反證法:(假定題目定義的3NF不成立推出課本定義3NF不成立)
根據題目傳遞依賴定義,
當 A 為 A為 A為非主碼且滿足 A 傳遞依賴 α A傳遞依賴\alpha A傳遞依賴α的時(違背了題目的定義)
我們有
? β ? R , 使得 β → A , α → β , A ? α , A ? β \exists \beta \sube R, 使得 \beta\rightarrow A,\alpha\rightarrow \beta,A\notin\alpha,A\notin\beta ?β?R,使得β→A,α→β,A∈/α,A∈/β
接下來推
假定課本定義的3NF不成立推出題目定義3NF不成立
我們根據課本有以下三個條件同時滿足
上面三個內容 ? A 不是主鍵 ∧ α → A 因為: A 是主鍵 A 就一定會包含于候選碼中 因為:由于 ( 1 ) ( 3 ) , A 是 β 的元素且 α → β 上面三個內容\Rightarrow A不是主鍵\land\alpha \rightarrow A\\ 因為:A是主鍵A就一定會包含于候選碼中\\ 因為:由于(1)(3),A是\beta的元素且\alpha \rightarrow\beta 上面三個內容?A不是主鍵∧α→A因為:A是主鍵A就一定會包含于候選碼中因為:由于(1)(3),A是β的元素且α→β
假設 c c c是一個R的候選碼, α \alpha α不是主碼(不是超碼,所以肯定不是主碼),我們有 c → α c\rightarrow\alpha c→α , α → c \alpha\rightarrow c α→c不成立(c是候選碼);因為A非主碼,這種情況下有 A ? α ∧ A ? c A\notin\alpha\land A\notin c A∈/α∧A∈/c(根據(1)(3)得到因為A是 β \beta β的元素但不是 α \alpha α的,且 α → β \alpha\rightarrow\beta α→β非平凡),因此A傳遞依賴c(c是候選碼,有 c → α c\rightarrow \alpha c→α.還有 α → β , A ∈ β \alpha\rightarrow \beta, A\in \beta α→β,A∈β),違反了題目的定義
綜上,題目定義等價于課本定義
8.21
Give a lossless-join decomposition into BCNF of schema R of Exercise 8.1
A → B C C D → E B → D E → A A → BC\\ CD → E\\ B → D\\ E → A A→BCCD→EB→DE→A
根據函數依賴集,我們依次測試單個多個屬性集的閉包可以得到以下候選碼
A , B C , C D , E A, BC, CD, E A,BC,CD,E
過程如下
( A ) + = ( A B C ) + = ( A B C D ) + = A B C D E (A)^+ = (ABC)^+=(ABCD)^+ = ABCDE (A)+=(ABC)+=(ABCD)+=ABCDE
( C D ) + = ( C D E ) + = ( C D E A ) + = A B C D E (CD)^+ = (CDE)^+=(CDEA)^+=ABCDE (CD)+=(CDE)+=(CDEA)+=ABCDE
( E ) + = A B C D E (E)^+ = ABCDE (E)+=ABCDE
( B C ) + = A B C D E (BC)^+ = ABCDE (BC)+=ABCDE
其他組合不滿足要求
B → D 非平凡 B\rightarrow D非平凡 B→D非平凡
B 非超碼 B非超碼 B非超碼
若以我們可以把它們分解為
( A , B , C , E ) ( B , D ) (A,B,C,E)\\(B,D) (A,B,C,E)(B,D)
8.27
Use Armstrong’s axioms to prove the soundness of the decomposition rule.
Armstrong’s公式
b ? a ? a → b a → b ? c a → c b a → b ∧ b → c ? a → c b\sub a\Rightarrow a\rightarrow b\\ a\rightarrow b\Rightarrow ca\rightarrow cb\\ a\rightarrow b\land b\rightarrow c\Rightarrow a\rightarrow c b?a?a→ba→b?ca→cba→b∧b→c?a→c
要證明
a → b c ? a → c ∧ a → b a\rightarrow bc\Rightarrow a\rightarrow c \land a\rightarrow b a→bc?a→c∧a→b
( 1 ) a → b c ( 2 ) b c → b ( 自反率 ) ( 3 ) b c → c ( 自反率 ) ( 4 ) a → c ( ( 1 ) ( 3 ) 傳遞律 ) ( 5 ) a → b ( ( 1 ) ( 2 ) 傳遞律 ) (1) a\rightarrow bc\\ (2) bc\rightarrow b (自反率)\\ (3) bc\rightarrow c (自反率)\\ (4) a\rightarrow c ((1)(3)傳遞律) \\ (5) a\rightarrow b ((1)(2)傳遞律) (1)a→bc(2)bc→b(自反率)(3)bc→c(自反率)(4)a→c((1)(3)傳遞律)(5)a→b((1)(2)傳遞律)
綜上,證畢
8.34
F = { A B → C D , D → C , D E → B , D E H → A B , A C → D C } F=\{AB\rightarrow CD, D\rightarrow C, DE\rightarrow B, DEH\rightarrow AB, AC \rightarrow DC \} F={AB→CD,D→C,DE→B,DEH→AB,AC→DC}
F = { A B → C , A B → D , D → C , D E → B , D E H → A , D E H → B , A C → D , A C → C } F=\{AB\rightarrow C, AB\rightarrow D, D\rightarrow C, DE\rightarrow B, DEH\rightarrow A, DEH\rightarrow B, AC \rightarrow D , AC \rightarrow C\} F={AB→C,AB→D,D→C,DE→B,DEH→A,DEH→B,AC→D,AC→C}
F = { A B → C , A B → D , D → C , D E → B , D E H → A , D E H → B , A C → D } F=\{AB\rightarrow C, AB\rightarrow D, D\rightarrow C, DE\rightarrow B, DEH\rightarrow A, DEH\rightarrow B, AC \rightarrow D \} F={AB→C,AB→D,D→C,DE→B,DEH→A,DEH→B,AC→D}
- 若(AB->C)冗余,則 ( A B ) + = A B C D (AB)^+ = ABCD (AB)+=ABCD,包含C,冗余可去
- 若(AB->D)冗余,則 ( A B ) + = A B (AB)^+ = AB (AB)+=AB, 不冗余
- D->C顯然不冗余
- 若(DE->B)冗余,則 ( D E ) + = D E C (DE)^+ = DEC (DE)+=DEC, 不包含B, 不冗余
- 若(DEH->A)冗余,則 ( D E H ) + = D E H B (DEH)^+ = DEHB (DEH)+=DEHB, 不冗余
- 若(DEH->B)冗余,則 ( D E H ) + = D E H A B C (DEH)^+ = DEHABC (DEH)+=DEHABC, 包含B, 冗余
- 若(AC->D)冗余,則 ( A C ) + = A C (AC)^+ = AC (AC)+=AC, 不冗余
得到如下數據
F = { A B → D , D → C , D E → B , D E H → A , A C → D } F=\{ AB\rightarrow D, D\rightarrow C, DE\rightarrow B, DEH\rightarrow A, AC \rightarrow D \} F={AB→D,D→C,DE→B,DEH→A,AC→D}
處理完右邊再處理左邊
- A B → D AB\rightarrow D AB→D中A冗余的話, ( B ) + = B (B)^+=B (B)+=B,不冗余
- A B → D AB\rightarrow D AB→D中B冗余的話, ( A ) + = A (A)^+=A (A)+=A,不冗余
- D E → B DE\rightarrow B DE→B中D冗余的話, ( E ) + = E (E)^+=E (E)+=E,不冗余
- D E → B DE\rightarrow B DE→B中E冗余的話, ( D ) + = D C (D)^+=DC (D)+=DC,不冗余
- D E H → A DEH\rightarrow A DEH→A中D冗余的話, ( E H ) + = E H (EH)^+=EH (EH)+=EH,不冗余
剩余部分同理可得不冗余
得到
最小子查詢
F = { A B → D , D → C , D E → B , D E H → A , A C → D } F=\{ AB\rightarrow D, D\rightarrow C, DE\rightarrow B, DEH\rightarrow A, AC \rightarrow D \} F={AB→D,D→C,DE→B,DEH→A,AC→D}
統計各個元素在依賴關系中的出現情況
- A:左右均出現
- B:左右均出現
- C:左右均出現
- D:左右均出現
- E: 只出現左側
- G:未出現
- H:只出現左側
只出現在左側或未出現的元素一定為候選碼,則求他們的閉包
( E H G ) + = E H G =? R (EHG)^+=EHG\not=R (EHG)+=EHG=R
經測試發現 ( D E H G ) + = D E H G A B C = R (DEHG)^+=DEHGABC = R (DEHG)+=DEHGABC=R 我們得到DEHG是R的一個候選碼,剩下的A,B,C均不行
綜上可行的候選碼有
D E H G A B E H G A C E H G DEHG\\ ABEHG\\ACEHG DEHGABEHGACEHG
于是我們在F的最小子查詢的基礎上進行分解,有
( A , B , D ) ( D , C ) ( D , E , B ) ( D , E , H , A ) ( A , C , D ) (A,B,D)\\ (D,C)\\ (D,E,B)\\ (D,E,H,A)\\(A,C,D) (A,B,D)(D,C)(D,E,B)(D,E,H,A)(A,C,D)
然后再加上前文算出的所有候選碼
( D , E , H , G ) ( A , B , E , H , G ) ( A , C , E , H , G ) (D,E,H,G)\\(A,B,E,H,G)\\(A,C,E,H,G) (D,E,H,G)(A,B,E,H,G)(A,C,E,H,G)
最后,觀察新組成的分解模式中,是否存在包含關系,有則去掉被包含的,這里 ( D , C ) ? ( A , D , C ) (D,C)\sube(A,D,C) (D,C)?(A,D,C),去掉,而達到無損分解,我們還缺一個候選碼,我們只需要取其中一個候選碼即可,這里我選了第一個DEHG
( A , B , D ) ( D , E , B ) ( D , E , H , A ) ( A , C , D ) ( D , E , H , G ) (A,B,D)\\ (D,E,B)\\ (D,E,H,A)\\(A,C,D)\\(D,E,H,G) (A,B,D)(D,E,B)(D,E,H,A)(A,C,D)(D,E,H,G)
總結
以上是生活随笔為你收集整理的数据库理论第八章部分作业——基于《数据库系统概念》第七版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android进阶之路 - 解决部分手机
- 下一篇: Conflux CTO 伍鸣博士出席20