什麼是DBMS中的多值依賴?


多值依賴 (MVD) 指的是表中存在一行或多行。這意味著在同一表中存在一行或多行其他行。多值依賴會阻止第四正規化。多值依賴涉及表中的至少三個屬性。

在DBMS中,它用符號“->->”表示。

X->Y 將X的一個值關聯到Y的一個值。

X->->Y(讀作X多決定Y)將X的一個值關聯到Y的多個值。

當X->->Y且X->->z時,其中Y和Z不依賴於彼此獨立時,就會發生非平凡MVD。非平凡MVD會產生冗餘。

我們以兩種不同的方式使用多值條件:

  • 測試關係以確定它們在給定的實際和多值依賴關係安排下是否合法。

  • 確定合法關係安排的限制。我們將只關注滿足給定實際和多值依賴關係安排的關係。

MVD 傳遞規則

如果A ->B成立,並且B ->C成立,則A ->B ->C成立。

示例

給定的FD集如下:

ISBN--> TITLE,PUBLISHER

ISBN,NO -->AUTHOR

PUBLISHER -->PU_URL

我們需要證明這條規則。考慮A=ISBN,B=PUBLISHER,C=PU_URL。要找到隱含的傳遞規則,請找到A+的覆蓋並計算。

  • 現在從x={ISBN}開始

  • FD ISBN--> TITLE, PUBLISHER的LHS完全包含在當前屬性集x中。

  • 透過FD RHS屬性集擴充套件x,得到x={ISBN,TITLE,PUBLISHER}

  • 現在FD:PUBLISHER -->PU_URL適用

  • 將FD的RHS屬性集新增到當前屬性集x中,得到x={ISBN,TITLE,PUBLISHER,PU_URL}

在這裡我們可以得出結論,ISBN-->PU_URL

第四正規化會導致多值依賴。如果關係處於Boyce-Codd正規化,則必須刪除多值依賴。

解釋 - 多值依賴是指如果表中存在依賴關係或關係,則一個值會發生多個依賴關係。

讓我們考慮以下示例。考慮下表:

id部門班次
1編碼白天
2人力資源白天
3網路晚上

在上表中,id 2有兩個部門人力資源和網路。以及班次時間白天和晚上。

當我們選擇id 2的詳細資訊時,它將生成如下表:

id部門班次
2人力資源白天
2網路晚上
2人力資源晚上
2網路白天

這意味著存在多值依賴。在此,部門和班次之間的關係毫無意義。

這可以透過刪除多值依賴來糾正,即將此資料分成兩個表,如下所示:

表1

id部門
1編碼
2人力資源
2網路

表2

id班次
1白天
2白天
2晚上

第四正規化用於刪除資料表中的多值依賴。

因此,第四正規化定義了多值依賴。

更新於: 2021年7月6日

10K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告