Relational-Theory

為什麼以這種方式命名多值依賴項?

  • March 30, 2016

我正在上斯坦福開放課件的關係設計課程。我理解為什麼以這種方式命名函式依賴項 - A->B 表示在指定 A 時指定 B,或者換句話說,B 的值在功能上取決於 A 的值。但我無法想到一個多值依賴項以這種方式命名的簡單原因。理解這一點將更容易記住和使用這個概念。

多值依賴 A->->B 意味著 A 的每個值都確定 B 的一值(而不是函式依賴中的 B 的單個值)。

例如,假設programmers有一個屬性programmer-id和一個屬性known-language,並且每個程序員都可以了解幾種語言,那麼您就有了多值依賴:

程序員 ID ->-> 了解語言

因此,假設程序 ID 為 7 的程序員知道 SQL 和 Ruby,這意味著在您同時具有屬性programmer-id和的表中know-language,每次程序 ID 為 7 時,都必須有兩個不同的行,一個語言為 ‘SQL ’ 和一個使用 Ruby 語言,所有其他屬性都相等

programmer-id  know-language other-attribute1 other-attribute2 ...
   7              SQL           XXX               YYY
   7             Ruby           XXX               YYY
   8             Java           AAA               BBB
...

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