软件设计师 - 超键、无损连接、函数依赖
1.閉包
在函數(shù)依賴集F下由α函數(shù)確定的所有屬性的集合為F下α的閉包,記為α+ 。
閉包算法: result:=α; while(result發(fā)生變化)dofor each 函數(shù)依賴β→γ in F dobeginif β∈result then result:=result∪γ;end2.超鍵
方法一:函數(shù)依賴集F下最小的α函數(shù) ,使得 :α的閉包 = 函數(shù)依賴集F的全部屬性
 方法二:畫圖法;
 
 如上圖,對于關(guān)系模式R(U,F),U={A,B,C,D,E,F},F={A->B,A->C,C->D,AE->F},則R的超鍵為AE。
 將F中每個函數(shù)依賴映射在有向圖中,能遍歷全圖的最小節(jié)點集合即為超鍵;
 單獨一個A無法遍歷到F,因為AE才能到F,所以AE的集合可以遍歷全圖;
3.無損連接
3.1.主關(guān)系分成成兩個子關(guān)系;
方法一:滿足以下一個條件,就是無損連接
R1 ∩ R2 -> R1 - R2 或 R1 ∩ R2 -> R2 - R1方法二:計算 (R1∩R2)+ 是否等于全部屬性,是的話就是無損連接;
3.2.主關(guān)系分成成多個子關(guān)系;
畫圖法,某一排全部為a;
 詳見鏈接A;
4.保持函數(shù)依賴
步驟一:如果F上的每一個函數(shù)依賴都在其分解后的某一個關(guān)系上成立,則這個分解是保持依賴的(這是一個充分條件)。
 步驟二:如果上述判斷失敗,并不能斷言分解不是保持依賴的,還要使用下面的通用方法來對判斷失敗的函數(shù)依賴做進(jìn)一步判斷。
 該方法的表述如下:
當(dāng)遍歷中,發(fā)現(xiàn) {α,β} ∈ result ,則α→β函數(shù)依賴在分解后是保持的;
 當(dāng)遍歷結(jié)束,仍沒有 {α,β} ∈ result ,則α→β函數(shù)依賴在分解后是不保持的;
5.充分條件、必要條件、充要條件
充分條件,A能推出B,A是B的充分條件;
 必要條件, 沒有A就沒有B,A是B的必要條件;
 充要條件,A能推出B,同時B能推出A
參考鏈接:
 A.數(shù)據(jù)庫中的無損連接分解和是否保持函數(shù)依賴的判定
B.無損分解和保持依賴
C.模式分解是否保持函數(shù)依賴的判斷方法以及例子
總結(jié)
以上是生活随笔為你收集整理的软件设计师 - 超键、无损连接、函数依赖的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 第九篇:Spring Boot整合Spr
- 下一篇: npm源管理nrm
