Database-Design
關係、依賴和範式
我在理解關係和依賴關係方面存在一些問題。我將展示兩個範例以及我想知道的內容:
假設
GTX {G,T,X}
具有以下依賴關係的關係:G,X -> T T -> X
或者這個:
關係
{W,X,Y,Z}
:X,Y -> Z Z -> W
- 那麼對於我的問題,如何正確繪製這種關係的依賴關係圖?(非常感謝教程或/和解釋)
- 如何查看主鍵是什麼?(我知道什麼是pk)
- 關係的範式是什麼?
我一直無法完全理解這一點,並且總是被我找到的教程弄糊塗。我感謝所有的答案!
從一組 FD 中,只能推斷出一組候選鍵。
“主鍵”是您選擇作為“主”的那組候選鍵中的一個特定成員。並且沒有科學規則告訴你應該選擇哪一個 - 你可以選擇任意一個鍵並將其標記為“主要”。
在您的第一個範例中,您應該最終得到一組候選鍵
{ {TG} {GX} }
在第二個範例中,您應該得到一組單例候選鍵
{ {XY} }
至於如何到達key集合,可以看一下https://stackoverflow.com/questions/5735592/determine-keys-from-functional-dependencies/5736174#5736174
您給出的關係表明 X 和 Y 取決於 Z。所以 Z 應該是表中的主鍵,Z、X、Y 作為列。Z 再次依賴於 W。所以在另一個表中,W 應該是主鍵,Z 應該是與第一個表相關的外鍵。