資料庫管理系統中的依賴型別


DBMS中的依賴是兩個或多個屬性之間的關係。它在DBMS中具有以下型別:

  • 函式依賴
  • 完全函式依賴
  • 傳遞依賴
  • 多值依賴
  • 部分依賴

讓我們從函式依賴開始:

函式依賴

如果儲存在表中的資訊可以唯一地確定同一表中的其他資訊,則稱為函式依賴。可以將其視為同一關係的兩個屬性之間的關聯。

如果P函式決定Q,則

P -> Q

讓我們看一個例子:

<員工>

員工ID(EmpID)員工姓名(EmpName)員工年齡(EmpAge)
E01Amit28
E02Rohit31

在上表中,**員工姓名(EmpName)** 函式依賴於 **員工ID(EmpID)**,因為對於給定的**員工ID(EmpID)** 值,**員工姓名(EmpName)** 只能取一個值:

EmpID -> EmpName

如下所示:

完全函式依賴

如果一個屬性函式依賴於另一個屬性,並且不依賴於它的任何真子集,則該屬性完全函式依賴於另一個屬性。

例如,如果屬性Q函式依賴於屬性P,並且不依賴於P的任何真子集,則屬性Q完全函式依賴於屬性P。

讓我們看一個例子:

<專案成本>

專案ID(ProjectID)專案成本(ProjectCost)
0011000
0025000

<員工專案>

員工ID(EmpID)專案ID(ProjectID)**天數**(在專案上花費)
E099001320
E056002190

上述關係表明

EmpID, ProjectID, ProjectCost -> Days

然而,它不是完全函式依賴的。

而子集**{EmpID, ProjectID}** 可以很容易地確定員工在專案上花費的**{Days}**。

這總結並給出了我們的完全函式依賴:

{EmpID, ProjectID} -> (Days)


傳遞依賴

當間接關係導致函式依賴時,稱為傳遞依賴

如果 P -> Q 和 Q -> R 為真,則 P-> R 是傳遞依賴。

多值依賴

當表中一行或多行的存在意味著同一表中的一行或多行其他行時,就會發生多值依賴

如果一個表具有屬性P、Q和R,則Q和R是P的多值事實。

它用雙箭頭表示:

->->

例如

P->->Q Q->->R

在上述情況下,只有當Q和R是獨立屬性時,才存在多值依賴。

部分依賴

部分依賴發生在非主屬性函式依賴於候選鍵的一部分時。

第二正規化(2NF) 消除了部分依賴。讓我們看一個例子:

<學生專案>

學生ID(StudentID)專案編號(ProjectNo)學生姓名(StudentName)專案名稱(ProjectName)
S01199Katie地理位置(Geo Location)
S02120Ollie叢集探索(Cluster Exploration)

在上表中,我們有部分依賴;讓我們看看如何:

主鍵屬性是**學生ID(StudentID)** 和 **專案編號(ProjectNo)**。

如前所述,非主屬性,即**學生姓名(StudentName)** 和 **專案名稱(ProjectName)**,應該函式依賴於候選鍵的一部分,才能成為部分依賴。

**學生姓名(StudentName)** 可以由 **學生ID(StudentID)** 確定,這使得關係成為部分依賴的。

**專案名稱(ProjectName)** 可以由 **專案ID(ProjectID)** 確定,這使得關係成為部分依賴的。

更新於:2023年9月6日

5萬+瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告