輸入:關係模式r的函式依賴集f和分解p=
輸出:p是否保持函式依賴的判定。
方法:(1)for(每個x→y∈f)do
(2)begin
(3) if(不存在i使得xyr)then
/ * 檢驗x→y是否被分解p所保持 * /
(4) begin
(5) z<-x;
(6) repeat
(7) for i=1 to k do
(8) z<-z u ((z ∩ ri)+ ∩ ri);
(9) until(z不發生變化);
(10) if(y不是z的子集) then / * x→y不被分解所保持* /
(11) return p不是保持函式依賴的分解
(12) end;
(13)end;
例:考慮關係模式r(a,b,c,d)分解p={r1(a,b),r2(bc),r3(c,d)},
函式依賴集f={a→b,b→c,c→d,d→a}
顯然,ab包含於r1,bc包含於r2,cd包含於r3。因此,只需要驗證是否有d→a唄分解p所保持。為此,我們使用演算法。
開始,z={d}進入 repeat迴圈,當i=1時不改變,因為{d}u(({d}∩{a,b})+∩{a,b})仍是{d}。
類似地,當i=2時z不變。然而,i=3時,我們得到
z={d}u(({d}∩
再次執行 repeat的迴圈體,當i=2時產生z={b,c,d}而第三遍,當i=1時置z為{a,b,c,d}。此後,z不再改變。這樣,z={a,b,c,d}它包含a,因此,d→a被分解所保持。從而是保持函式依賴的分解。
函式依賴保持性
你現在的位置 首頁 教學內容 第7章 重難點 概念搜尋 7.3.2 函式依賴保持性 定義5 設關係模式r具有屬性集u和函式依賴集f,r1,rk 是r的乙個分解,ui是ri的屬性集,fi是f在ui的投映。若f i 1kfi 則稱分解 具函式依賴保持性?演算法2 函式依賴保持性的判斷演算法 輸入 函式依...
保持函式依賴的模式分解
一 轉換成3nf的保持函式依賴的分解 演算法 是關係模式r的乙個分解,u f 並設f是乙個最小依賴集,記fdi為xi alj,其步驟如下 對r的函式依賴集f進行極小化處理 處理後的結果仍記為f 找出不在f中出現的屬性,將這樣的屬性構成乙個關係模式。把這些屬性從u中去掉,剩餘的屬性仍記為u 若有x a...
判斷該分解是否保持函式依賴性 函式節流與函式防抖
題圖 mike labrum這裡以判斷頁面是否滾動到底部為例,普通的做法就是監聽window物件的scroll事件,然後再函式體中寫入判斷是否滾動到底部的邏輯 function onscroll window on scroll onscroll 這樣做的乙個缺點就是比較消耗效能,因為當在滾動的時候...