什麼是數據庫依賴關係?

數據庫依賴性是一個常常讓學生和數據庫專業人員都感到困惑的話題。 幸運的是,它們並不那麼複雜,最好通過使用一些例子來說明。 在本文中,我們將檢查常見的數據庫依賴類型。

數據庫依賴/功能依賴

當存儲在同一個數據庫表中的信息唯一地確定存儲在同一個表中的其他信息時,數據庫中會出現依賴關係。 您還可以將此描述為一種關係,即知道一個屬性(或一組屬性)的值足以告訴您同一個表中另一個屬性(或一組屬性)的值。

說表中的屬性之間存在依賴關係,這與說這些屬性之間存在函數依賴關係相同。 如果數據庫中存在依賴關係,因此屬性 B依賴於屬性A,則可以將其寫為“A - > B”。

例如,在列出員工特徵(包括社會安全號碼(SSN)和姓名)的表格中,可以說該姓名取決於SSN(或SSN - >姓名),因為員工的姓名可以由他們的SSN唯一確定。 但是,反向聲明(名稱 - > SSN)不是真實的,因為多個員工可以具有相同的名稱,但具有不同的SSN。

平凡的功能依賴

當您在包含原始屬性的屬性集合中描述屬性的函數依賴關係時,會出現一個簡單的函數依賴關係 。 例如,“{A,B} - > B”是一個平凡的函數依賴關係,就像“{name,SSN} - > SSN”一樣。 這種類型的函數依賴被稱為微不足道的,因為它可以從常識中派生出來。 很顯然,如果你已經知道B的價值,那麼B的價值可以由該知識唯一確定。

全功能依賴

當您已經滿足功能依賴關係的要求並且功能依賴關係語句左側的屬性集不能再減少時,就會發生全功能依賴關係 。 例如,“{SSN,age} - > name”是一個函數依賴項,但它不是一個完整的函數依賴項,因為您可以從語句的左側刪除年齡,而不會影響依賴關係。

傳遞性依賴性

當存在導致函數依賴關係的間接關係時,會發生傳遞依賴關係。 例如,“A→C”只有在“A→B”和“B→C”都為真時才是真實的,所以它是一個傳遞依賴關係

多值依賴

當表中存在一個或多個行意味著同一個表中存在一個或多個其他行時,會發生多值依賴性 。 例如,設想一家生產多種車型的汽車公司,但每個車型都會同時生產紅色和藍色。 如果您有一張包含公司製造的每輛汽車的型號名稱,顏色和年份的表格,則該表格中存在多值依賴關係 。 如果某個型號名稱和藍色年份有一行,則還必須有與該同一輛車的紅色版本相對應的類似行。

依賴的重要性

數據庫依賴性非常重要,因為它們提供了數據庫規範化中使用的基本構建塊。 例如: