<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    RiKeR

    本博客停止更新,最新內容請訪問--> http://blog.csdn.net/shuailee

    統計

    留言簿(3)

    積分與排名

    閱讀排行榜

    評論排行榜

    無損分解和保持依賴的判斷

    大部分是對一個關系模式分解成兩個模式的考察,分解為三個以上模式時無損分解和保持依賴的判斷比較復雜,考的可能性不大,因此我們只對“一個關系模式分解成兩個模式”這種類型的題的相關判斷做一個總結。

    以下的論述都基于這樣一個前提:
    R是具有函數依賴集F的關系模式,(R1 ,R2)是R的一個分解。

    首先我們給出一個看似無關卻非常重要的概念:屬性集的閉包。
    令α為一屬性集。我們稱在函數依賴集F下由α函數確定的所有屬性的集合為F下α的閉包,記為α+ 。
    下面給出一個計算α+的算法,該算法的輸入是函數依賴集F和屬性集α,輸出存儲在變量result中。
    算法一:
    result:=α;
    while(result發生變化)do
        for each 函數依賴β→γ in F do
        begin
            if β∈result then result:=result∪γ;
        end

    屬性集閉包的計算有以下兩個常用用途:
    ·判斷α是否為超碼,通過計算α+(α在F下的閉包),看α+ 是否包含了R中的所有屬性。若是,則α為R的超碼。
    ·通過檢驗是否β∈α+,來驗證函數依賴是否成立。也就是說,用屬性閉包計算α+,看它是否包含β。

    (請原諒我用∈符號來表示兩個集合之間的包含關系,那個表示包含的符號我找不到,大家知道是什么意思就行了。)

    看一個例子吧,2005年11月系分上午37題:

    ● 給定關系R(A1,A2,A3,A4)上的函數依賴集F={A1→A2,A3→A2,A2→A3,A2→A4},R的候選關鍵字為________。
    (37)A. A1  B. A1A3  C. A1A3A4  D. A1A2A3

    首先我們按照上面的算法計算A1+ 。
    result=A1,
    由于A1→A2,A1∈result,所以result=result∪A2=A1A2
    由于A2→A3,A2∈result,所以result=result∪A3=A1A2A3
    由于A2→A4,A2∈result,所以result=result∪A3=A1A2A3A4
    由于A3→A2,A3∈result,所以result=result∪A2=A1A2A3A4

    通過計算我們看到,A1+ =result={A1A2A3A4},所以A1是R的超碼,理所當然是R的候選關鍵字。此題選A 。


    好了,有了前面的鋪墊,我們進入正題。

    無損分解的判斷。
    如果R1∩R2是R1或R2的超碼,則R上的分解(R1,R2)是無損分解。這是一個充分條件,當所有的約束都是函數依賴時它才是必要條件(例如多值依賴就是一種非函數依賴的約束),不過這已經足夠了。

    保持依賴的判斷。
    如果F上的每一個函數依賴都在其分解后的某一個關系上成立,則這個分解是保持依賴的(這是一個充分條件)。
    如果上述判斷失敗,并不能斷言分解不是保持依賴的,還要使用下面的通用方法來做進一步判斷。
    該方法的表述如下:
    算法二:
    對F上的每一個α→β使用下面的過程:
    result:=α;
    while(result發生變化)do
        for each 分解后的Ri
            t=(result∩Ri)+ ∩Ri
            result=result∪t

    這里的屬性閉包是在函數依賴集F下計算出來的。如果result中包含了β的所有屬性,則函數依賴α→β。分解是保持依賴的當且僅當上述過程中F的所有依賴都被保持。


    下面給出一個例題,2006年5月系分上午43題:

    ●設關系模式R<U, F>,其中U={A, B, C, D, E},F={A→BC,C→D,BC→E,E→A},則分解ρ={R1(ABCE),R2(CD)}滿足 (43) 。
    (43) A.具有無損連接性、保持函數依賴
                  B.不具有無損連接性、保持函數依賴
                  C.具有無損連接性、不保持函數依賴
                  D.不具有無損連接性、不保持函數依賴

    先做無損鏈接的判斷。R1∩R2={C},計算C+。
    Result=C
    由于C→D,C∈result,所以result=result∪D=CD
    可見C是R2的超碼,該分解是一個無損分解。

    再做保持依賴的判斷。
    A→BC,BC→E, E→A都在R1上成立(也就是說每一個函數依賴左右兩邊的屬性都在R1中),C→D在R2上成立,因此給分解是保持依賴的。

    選A。


    再看一個復雜點的例題。2007年5月數工40-41題。

    ●給定關系模式R<U, F>,U={A, B, C, D, E},F={B→A,D→A,A→E,AC→B},其候選關鍵字為
    (40)  ,則分解ρ={R1(ABCE),R2(CD)}滿足 (41) 。
    (40) A.ABD
                  B.ABE
                  C.ACD
                  D.CD
    (41) A.具有無損連接性、保持函數依賴
                  B.不具有無損連接性、保持函數依賴
                  C.具有無損連接性、不保持函數依賴
                  D.不具有無損連接性、不保持函數依賴

    看見了吧,和前面一題多么的相像!
    對于第一問,分別計算ABCD四個選項的閉包,
    (ABD)+ = { ABDE }
    (ABE)+ = { ABE }
    (ACD)+ = { ABCDE }
    (CD)+ = { ABCDE }
    選D。

    再看第二問。
    先做無損鏈接的判斷。R1∩R2={C},計算C+。
    result=C
    因此C既不是R1也不是R2的超碼,該分解不具有無損分解性。

    再做保持依賴的判斷。
    B→A,A→E,AC→B在R1上成立,D→A在R1和R2上都不成立,因此需做進一步判斷。
    由于B→A,A→E,AC→B都是被保持的(因為它們的元素都在R1中),因此我們要判斷的是D→A是不是也被保持。

    對于D→A應用算法二:
    result=D
    對R1,result∩R1=ф(空集,找不到空集的符號,就用這個表示吧),t=ф,result=D
    再對R2,result∩R2=D,D+ =ADE ,t=D+ ∩R2=D,result=D
    一個循環后result未發生變化,因此最后result=D,并未包含A,所以D→A未被保持,該分解不是保持依賴的。

    選D。

    posted on 2007-10-18 00:53 RiKeR 閱讀(17890) 評論(17)  編輯  收藏

    評論

    # re: 無損分解和保持依賴的判斷 2007-11-24 13:04 star

    看書太抽象了,這個帖子不錯,理解了,感謝  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2007-12-29 01:22

    不錯啊
      回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2008-01-21 12:06 Danielsym

    下午就考數據庫了,這篇帖子真是雪中送炭哪!  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2008-01-24 23:42 good

    good
      回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2008-05-03 16:04 dbs

    不錯!這貼講得很透徹  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2009-04-26 16:00 HHK

    不錯.謝謝作者.  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2009-05-10 18:17 浪子

    受益匪淺!  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2009-05-21 15:58 SimonKing

    最后的D-A判斷不是很明白,后天就考試了,這帖子不錯。  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2009-06-22 15:22 和加快

    謝謝  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2011-01-08 23:01 OK

    非常感謝!現在的課本真的太抽象了。。。  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2011-01-09 17:23 guy

    @OK
    你是華農吧  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2011-05-15 20:04 ice

    nice  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2012-05-09 17:01 Roy

    (ACD)+ = { ABCDE }
    (CD)+ = { ABCDE }
    選D。

    2者都是超碼,為什么選D呢  回復  更多評論   

    # re: 無損分解和保持依賴的判斷[未登錄] 2014-06-12 23:57 JOJO

    因為ACD雖然是超碼,但是去掉屬性A它仍然是超碼,所以它不是候選碼,看候選碼的定義就知道了@Roy
      回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2014-12-04 11:53 。。。

    講的太好了,看完立刻懂  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2015-06-30 00:12 111111111

    謝謝了  回復  更多評論   

    # re: 無損分解和保持依賴的判斷 2015-08-29 17:48 ghost

    相當感謝!!!!Orz....  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲免费福利在线视频| 亚洲国产香蕉碰碰人人| 亚洲人成无码网站在线观看| 亚洲精品视频免费看| 亚洲日本一区二区三区| 久艹视频在线免费观看| 久热综合在线亚洲精品| 免费国产成人α片| 一区二区三区亚洲| 波多野结衣免费在线| 亚洲高清一区二区三区| 国产色婷婷精品免费视频| 美女免费视频一区二区三区| 久久久久一级精品亚洲国产成人综合AV区 | 白白色免费在线视频| 亚洲成a人在线看天堂无码| 一级特黄录像免费播放中文版| 综合亚洲伊人午夜网 | 亚洲国产精品精华液| 亚洲成AⅤ人影院在线观看| 乱淫片免费影院观看| 久久精品国产亚洲| 免费在线观看h片| 亚洲爆乳精品无码一区二区| 亚洲第一成人影院| 成全在线观看免费观看大全| 亚洲欧洲日产国产最新| 免费视频淫片aa毛片| 一级视频免费观看| 亚洲毛片在线观看| 夜夜爽免费888视频| 黄页免费视频播放在线播放| 久久精品国产精品亚洲艾| 人禽杂交18禁网站免费| 一级午夜免费视频| 亚洲天堂中文字幕在线观看| 无码欧精品亚洲日韩一区夜夜嗨| 免费精品99久久国产综合精品| 亚洲kkk4444在线观看| 亚洲综合日韩久久成人AV| 2021久久精品免费观看|