最小函數依賴集


SQLServer中最小函數依賴集

來源: 程序員之家 編輯:sevenleaf 2010-04-16 09:55 評論:0

 
 

      今天小編要和大家分享的是SQLServer中的最小函數依賴集,假設S 1和S 2是兩個函數依賴集,如果所有為S 1所蘊涵的函數依賴都為S 2所蘊涵,—即S 1+是S 2+的子集,則S 2是S 1的覆蓋,D B M S只要實現了S 2中的函數依賴,就自動實現S 1中的函數依賴。
      如果S 2是S 1的覆蓋,同時S 1是S 2的覆蓋—則S 1和S 2等價,即S 1+=S 2+。很顯然,如果S 1和S 2等價,則D B M S只要實現S 1中的函數依賴,就自動實現S 2中的函數依賴,反之亦然。
      當且僅當函數依賴集滿足以下條件時,該函數依賴集為最小函數依賴集:
      1) 每個函數依賴的右邊(應變量)只含有一個屬性(即它是單元素集合)。
      2) 每個函數依賴的左邊(自變量)是不可約的—刪除自變量的任何一個屬性都將改變閉包S+(即會使S轉變為一個不等價於原來的S的集合)。這種函數依賴被稱為左部不可約的函數依賴。
      3) 刪除S中任何一個函數依賴都將改變它的閉包S+,即使S轉變為一個不等價於原來的S的集合。
      關於第2點和第3點,在這里要指出的是,為了知道如果刪除某些元素是否會改變閉包,不必要清楚地知道閉包的內容。例如:觀察大家熟悉的零件關系變量P,有下列函數依賴:
      P #→P N A M E
      P #→C O L O R
      P #→W E I G H T
      P #→C I T Y
      顯而易見,該函數依賴集是最小依賴集:每個函數依賴中右邊只含有一個屬性,同樣,左邊也是不可約的,且任何一個函數依賴都不能被刪除而不改變閉包(即不丟失信息)。相反,下面的函數依賴集不是最小依賴集。
      1 ) P #→{ P N A M E,COLOR} :第一個函數依賴的右邊不是單屬性集
      P #→W E I G H T
      P #→C I T Y
      2 ) { P #,P N A M E }→COLOR :第一個函數依賴左邊的P N A M E可以刪除而不改變閉包(即左邊是可約的)
      P #→PNAME 
      P #→W E I G H T
      P #→C I T Y
      3 ) P #→P# : 第一個函數可以刪除而不改變閉包
      P #→P N A M E
      P #→C O L O R
      P #→W E I G H T
      P #→C I T Y
      任何一個函數依賴集至少存在一個最小函數依賴集。假設函數依賴集為S,根據分解規則,可以假定每個函數依賴的右邊是單屬性的而不會失去它的一般性(如果右邊不是單屬性的,則可以利用分解規則把它分解成單屬性),接着考察每個函數依賴f左邊的每一個屬性A,如果把A從f的左邊刪除而並不改變閉包,則把A從f的左邊刪除,然后考察S中剩余的每一個函數依賴f,如果把f刪除而不改變閉包,則把f從S中刪除,最后所得的集合S是和原來的函數依賴集S等價的最小函數依賴集。
      例:假設給定關系變量R、A、B、C、D是R的屬性集,R滿足函數依賴:
      A→B C
      B→C
      A→B
      A B→C
      A C→D
      現在計算該函數依賴的最小函數依賴集。
      1) 把所有的函數依賴寫成右邊是單屬性的函數依賴:
      A→B
      A→C
      B→C
      A→B
      A B→C
      A C→D
      很顯然,函數依賴A→B出現了兩次,可以刪除其中的一次。
      2) 可以把C從函數依賴A C→D的左邊刪除,因為A→C,根據增廣律可以得出A→A C,給定A C→D,根據傳遞律可以得出A→D。所以C在函數依賴A C→D的左邊是冗余的。
      3) 接着發現可以刪除函數依賴A B→C,因為A→C,根據增廣律可得A B→C B,又根據分解規則可以導出A B→C。
      4) 函數依賴A→C由函數依賴A→B和B→C蘊涵,所以它可以刪除。最后剩下下列函數依賴:
      A→B
      B→C
      A→D
      該集合是不可約。
      一個函數依賴集I是不可約的,且等價於某個函數依賴集S,則說I是S的最小等價依賴集。
      這樣,如果要實現一個函數依賴集S,系統只要實現它的一個最小依賴集就足夠了(重復一次:要計算最小依賴集I不必計算閉包S+)。應該清楚的是給定函數依賴集的最小依賴集並不一定是唯一的。

轉載:http://edu.qudong.com/2010/0416/67217.shtml


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM