回答
在關係模式的分解中,「虛假元組」只是丟失信息的假設症狀。這意味着由於將該關係分解爲兩個或更多個組件,某個給定關係中表示的某些依賴關係將會丟失。這是否是需要解決的問題取決於失去的依賴對你有多重要。
在您引用的示例中,EmpRoleProj表告訴我們每個員工正在處理的項目。在表1中,表2設計了信息丟失 - 我們不能再說明瓊斯只能在亞馬遜項目上工作,而不能在尼羅河項目上工作。
作爲一個數據庫設計師,您需要考慮丟失了什麼信息或完整性,然後決定採取什麼操作:更改設計,添加額外的完整性約束或決定新的分解實際上是對它之前的改進。
如果關係R等於R1 JOIN R2 JOIN ...則我們可以使用R1 JOIN R2 JOIN ...而不是R.顯然,但是R1,R2,...將是R的投影。而如果我們對R的投影R1',R2',...其中R是而不是等於R1'JOIN R2'JOIN ...則我們可以't使用R1'JOIN R2'JOIN ...而不是使用R.顯然。但是R1'JOIN R2'JOIN ...將會像R 加上一些其他的元組。與R和R1 JOIN R2 JOIN ...的值相比,它們是「虛假元組」。但他們屬於 R1'JOIN R2'JOIN ...。 那不是R。要「擺脫虛假元組」只是不使用R1'JOIN R2'JOIN ...爲R。但那麼,爲什麼會你?只有當你認爲R的任何舊的預測JOIN回到R.但他們不。但那麼,爲什麼會呢?
所以你的問題是奇怪的措辭。我們想要替換其他人加入其他人的表格。我們不要想替換一個表而不是這些別人的加入。所以我們可以總是「擺脫虛假元組」不是那麼做。
規範化是關於替換其他人加入其他人的表。當R = R1 JOIN R2 JOIN ...我們說在R中存在JD(加入依賴關係)。與已知的智慧相反,它非常容易看到JD,如果我們正在查找並且我們知道我們的表的含義。當R持有元組「... A1a ... A1b ... AND ... A2a ... A2b ... AND ...」時,它是R1,R2,...的連接。在各自的屬性集{A1a,A1b,...},{A2a,A2b,...},...以及相應的含義「... A1a ... A1b ...」,「。 ..A2a ... A2b ...「,...。我們自然使用R1,R2,...大部分時間從開始設計。所獲得的智慧也是不伴隨FD(功能依賴)的JDs很少見。他們是,但只是因爲大多數JD非常明顯,我們的最初設計避免了他們。他們「很難找到」只是因爲他們很容易找到。 (對每個不會導致問題的JD進行分解要複雜一點。)
- 1. 擺脫虛假警告升級到ARC
- 2. 是否有可能擺脫請求的Set-Cookie中的laravel_session?
- 3. 是否有可能擺脫ChildWindow動畫是Silverlight?
- 4. 是否有可能擺脫以下代碼中的循環?
- 5. 擺脫泛型類型參數:是否有可能?
- 6. CORS GET自定義標題:是否有可能擺脫選項
- 7. 是否有可能擺脫整個表格?
- 8. fitBounds(的LatLngBounds)變焦完全擺脫
- 9. 當訪問一個URL時,是否有可能完全擺脫骨幹上的散列?
- 10. 是安全擺脫瀏覽
- 11. 是否有可能知道JFrame是否完全可見?
- 12. 是否有可能conda安裝完全脫機的依賴關係?
- 13. 是否有可能使用jquery完全刪除元素?
- 14. 如何擺脫git中的虛假變化?
- 15. 編程接口是否有助於擺脫全局?
- 16. 虛擬重寫的功能是沒有得到所謂的
- 17. 是否可以擁有財產,可以是或虛假或數組或空
- 18. 檢查元素是否完全可見
- 19. 是否有可能擺脫Websphere管理的DataSource額外的@Resource註解?
- 20. XML在編組後不會完全假脫機文件
- 21. 是否有可能使透明div的內容完全可見?
- 22. 是否有可能逃脫「[」R
- 23. 是否有可能擺脫Google App Engine的成功部署檢查?
- 24. 是否有可能擺脫基於條件執行的bash命令?
- 25. 是否有可能擺脫服務類中的TClient泛型類型
- 26. 序言:擺脫遞歸助手謂詞
- 27. 不能在PHP擺脫空元素的
- 28. 多線程 - 效率降低,可能是`虛假共享'所致[
- 29. 是否有算法輸出兩組元素的所有可能組合?
- 30. 如何擺脫所有的信息線?
我已經在[dba.stackexchange](http://dba.stackexchange.com/questions/121519)上回答了這個確切問題/是-IT-可能對GET-擺脫的最-所謂的雜散元組,完全) –