檢驗分解的函式依賴保持性

2021-10-03 12:39:24 字數 861 閱讀 7598

輸入:關係模式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 這樣做的乙個缺點就是比較消耗效能,因為當在滾動的時候...