資料庫這一塊,除了那三個正規化不易記憶,還有更加燒腦的模式分解。模式分解在99%的搞計算機的人來看,只是在軟考題目見到應用,除此之外,真的不知道這塊知識到底是做什麼的,對它的充斥滿腦的質疑。這種知識寫成的題目只能把它看成乙個遊戲,真的看不出到底有什麼用,而專業課和軟考中卻大量充斥著這類看起來深奧無比掌握遊戲規則也不知有什麼實際應用的知識,這也是我當初沒有選擇繼續考研的原因,因為課程中一些理論佔了很大篇幅,但我只能看到這些理論在天上飄,看不到它們真正的落地,人生而有涯,我還是持務實的觀念來進行生命歷程的體驗與感悟的。
關係模式r(u,f)的乙個分解,ρ=具有無損連線的充分必要條件是:u1∩u2→u1-u2 €f+ 或u1∩u2→u2 -u1€f+
ρ=是關係模式r的乙個分解,u=,f=,並設f是乙個最小依賴集,記fdi為xi→alj,其步驟如下:
① 建立一張n列k行的表,每一列對應乙個屬性,每一行對應分解中的乙個關係模式。若屬性aj ui,則在j列i行上真上aj,否則填上bij;
② 對於每乙個fdi做如下操作:找到xi所對應的列中具有相同符號的那些行。考察這些行中li列的元素,若其中有aj,則全部改為aj,否則全部改為bmli,m是這些行的行號最小值。
如果在某次更改後,有一行成為:a1,a2,...,an,則演算法終止。且分解ρ具有無損連線性,否則不具有無損連線性。
對f中p個fd逐一進行一次這樣的處理,稱為對f的一次掃瞄。
③ 比較掃瞄前後,表有無變化,如有變化,則返回第② 步,否則演算法終止。如果發生迴圈,那麼前次掃瞄至少應使該錶減少乙個符號,表中符號有限,因此,迴圈必然終止。
已知r,u=,f=,r的乙個分解為r1(ad),r2(ab),r3(be),r4(cde),r5(ae),判斷這個分解是否具有無損連線性。
首先列出下表:
按照f中所給的關係模式在**中進行對應,首先是a->c:
把第一列相同的a1,對應相應行改成與第三列第一行相同的數字:
之後是關係模式b->c:
對照完畢之後,檢查一行是否有全部為a,如果有,則為無損鏈結性。
由此可見此分解滿足無損鏈結性。
模式分解是否為無損連線的判斷方法
方法一 無損連線定理 關係模式r u,f 的乙個分解,具有無損連線的充分必要條件是 u1 u2 u1 u2 f 或u1 u2 u2 u1 f 方法二 演算法 是關係模式r的乙個分解,u f 並設f是乙個最小依賴集,記fdi為xi alj,其步驟如下 建立一張n列k行的表,每一列對應乙個屬性,每一行對...
模式分解是否為無損連線的判斷方法
方法一 無損連線定理 關係模式r u,f 的乙個分解,具有無損連線的充分必要條件是 u1 u2 u1 u2 f 或u1 u2 u2 u1 f 方法二 演算法 是關係模式r的乙個分解,u f 並設f是乙個最小依賴集,記fdi為xi alj,其步驟如下 建立一張n列k行的表,每一列對應乙個屬性,每一行對...
資料庫原理 模式分解中無損鏈結的判別
最近重新複習資料庫的時候再次被正規化這一塊搞暈了,跟之前期末考試的時候一摸一樣,弄了大半天可算是有點小明白,記錄一下。無損鏈結的判定書上給的方法是畫圖,但是沒有例題詳細講解。書上的演算法如下。是關係模式r的乙個分解,u f 並設f是乙個最小依賴集,記fdi為xi alj,其步驟如下 建立一張n列k行...