解釋DBMS中的連線依賴性


連線依賴性是一種約束,類似於函式依賴性或多值依賴性。當且僅當相關的關係是特定數量投影的連線時,才滿足該約束。此類約束稱為連線依賴性。

讓我們考慮一類特殊的連線依賴性,它們有助於捕獲層次資料結構中存在的資料依賴性。

示例1

上述層次結構組織說明了病房和目前住院的病人僅取決於醫院,而不取決於該醫院提供的設施。由於醫院有多個病房,因此函式依賴性不足以描述醫院與病房或設施之間的資料依賴性。

在這種情況下,多值依賴性,

醫院->-> 病房 或

醫院 ->-> 設施成立。

使用一階層次分解將使我們能夠以更自然的方式表示層次資料結構中存在的資料依賴性。

因此,我們可以將醫院資料庫儲存為以下內容的無損連線 -

醫院設施(醫院, 設施),

醫院病房(醫院, 病房, 病人, 投訴, 治療, 醫生)

示例2

如果關係R等於R1、R2、…、Rn的連線,其中Ri是R的屬性集的子集,則關係R滿足連線依賴性。

關係R

科目姓名
計算機科學與工程C語言Ammu
計算機科學與工程C語言Amar
計算機科學與工程JavaAmar
資訊科技C語言Bhanu

這裡,

系 ->-> 科目

系->-> 姓名

上述關係處於4NF。如果主鍵具有三個或更多欄位,則關係中的異常可能會在4NF中發生。主鍵是(系,科目,姓名)。有時將關係分解成兩個較小的關係並不能消除冗餘。在這種情況下,可以使用5NF將關係分解成三個或更多關係。

上述關係表示系提供許多選修科目,各種學生都可以選修這些科目。學生可以選擇科目。因此,所有三個欄位都需要表示資訊。

上述關係沒有顯示非平凡MVD,因為屬性科目和姓名是相關的;它們彼此相關(存在FD科目->姓名)。該關係不能分解成兩個關係(系,科目)和(系,姓名)。

因此,關係可以分解成以下三個關係 -

R1(系,科目)

R2(系,姓名) 和

R3(科目,姓名),並且可以證明分解是無損的。

R1

科目
計算機科學與工程C語言
計算機科學與工程Java
資訊科技C語言

R2

姓名
計算機科學與工程Ammu
計算機科學與工程Amar
資訊科技Bhanu

R3

科目姓名
C語言Ammu
C語言Amar
JavaAmar
C語言Bhanu

更新於: 2021年7月6日

14K+ 瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.