Database-Theory

用於推斷函式依賴關係的反身性公理

  • January 23, 2013

如您所知,有三個 Armstrong 公理可用於推斷關係數據庫的所有功能依賴關係。(X、Y 和 Z 是一組屬性)

  1. 自反性如果 X ⊆ Y,則 Y → X
  2. 增強如果 X → Y,那麼對於任何 Z,XZ → YZ
  3. 傳遞性如果 X → Y 和 Y → Z,則 X → Z

例如,如果我們有這樣的模式,我理解增強和傳遞性:

SOME_SCHEMA(a, b, c, d)

具有這樣的功能依賴:

  1. a → b
  2. b → c

通過使用增強,我們可以得到ac → bc或通過使用傳遞性,我們可以得到a → c等等,但是我不確定如何使用自反性公理推斷更多的函式依賴關係?某個屬性是某個其他屬性的子集究竟意味著什麼?

你能給我看一個使用我的模式或創建你自己的模式的例子嗎?

先感謝您!

PS不確定我應該為這個問題使用什麼標籤,請隨意更改並刪除此行。

ab → a 意味著如果關係中的兩個元組對屬性 a 具有相同的值,那麼它們對屬性 a 和 b 具有相同的值。這似乎微不足道,但不能從增廣公理傳遞性公理推導出來。因此,如果您與屬性 a、b、c 有關係,您可以推斷出函式依賴關係,例如

a→a

ab→a

abc→ac

不知道對 abc 的任何附加功能依賴

“某個屬性是某個其他屬性的子集,這到底意味著什麼?”

這不代表任何意思。屬性之間存在功能依賴關係。

每當處理被認為是正式和精確的(例如,在陳述公理的定義時),這就是 X、Y 和 Z 應該被解釋的方式。

不幸的是,人們總是傾向於寫下 FD 的具體範例,而不明確SET屬性。例如,在 AB->C 中,其中 A、B 和 C 是屬性。形式上,這實際上應該是 {AB} -> {C},但那些大括號並沒有增加太多。

而且您對增廣公理的表述在這一點上是不正確的。如果 X、Y 和 Z 是屬性,則增廣公理的唯一正確表述是

X -> Y ===> (X UNION Z) -> (Y UNION Z)

自反性公理為平凡FD的含義提供了正式定義。各種範式是根據非平凡的FD 定義的,因此必須確定其確切含義。自反性公理就是這樣做的。

引用自:https://dba.stackexchange.com/questions/33352