資料庫管理系統中的依賴型別
DBMS 中的依賴是兩個或多個屬性之間的關係。它在 DBMS 中具有以下型別:
- 函式依賴
- 完全函式依賴
- 傳遞依賴
- 多值依賴
- 部分依賴
讓我們從函式依賴開始:
函式依賴
如果表中儲存的資訊可以唯一地確定同一表中的其他資訊,則稱為函式依賴。可以將其視為同一關係中兩個屬性之間的關聯。
如果 P 函式決定 Q,則
| P -> Q |
讓我們看一個例子:
<員工>
| 員工ID | 員工姓名 | 員工年齡 |
| E01 | Amit | 28 |
| E02 | Rohit | 31 |
在上表中,**員工姓名** 函式依賴於 **員工ID**,因為對於給定的 **員工ID** 值,**員工姓名** 只能取一個值:
| 員工ID -> 員工姓名 |
如下所示:

完全函式依賴
如果一個屬性函式依賴於另一個屬性,並且不依賴於其任何真子集,則稱該屬性完全函式依賴於另一個屬性。
例如,如果屬性 Q 函式依賴於屬性 P,並且不依賴於 P 的任何真子集,則屬性 Q 完全函式依賴於屬性 P。
讓我們看一個例子:
<專案成本>
| 專案ID | 專案成本 |
| 001 | 1000 |
| 002 | 5000 |
<員工專案>
| 員工ID | 專案ID | **天數**(在專案上花費的天數) |
| E099 | 001 | 320 |
| E056 | 002 | 190 |
上述關係說明
| 員工ID,專案ID,專案成本 -> 天數 |
但是,它不是完全函式依賴的。
而子集**{員工ID,專案ID}** 可以很容易地確定員工在專案上花費的**{天數}**。
這總結並給出了我們的完全函式依賴:
| {員工ID,專案ID} -> (天數) |
傳遞依賴
當間接關係導致函式依賴時,稱為傳遞依賴。
如果 P -> Q 和 Q -> R 為真,則 P-> R 是傳遞依賴。
多值依賴
當表中一行或多行的存在意味著同一表中的一行或多行時,就會發生多值依賴。
如果一個表具有屬性 P、Q 和 R,則 Q 和 R 是 P 的多值事實。
它由雙箭頭表示:
| ->-> |
例如
| P->->Q Q->->R |
在上述情況下,只有當 Q 和 R 是獨立屬性時,才存在多值依賴。
部分依賴
部分依賴是指非素屬性函式依賴於候選鍵的一部分的情況。
第二正規化 (2NF) 消除了部分依賴。讓我們看一個例子:
<學生專案>
| 學生ID | 專案編號 | 學生姓名 | 專案名稱 |
| S01 | 199 | Katie | 地理位置 |
| S02 | 120 | Ollie | 叢集探索 |
在上表中,我們有部分依賴;讓我們看看如何:
主鍵屬性是**學生ID** 和 **專案編號**。
如前所述,非素屬性,即 **學生姓名** 和 **專案名稱** 應該函式依賴於候選鍵的一部分,才能成為部分依賴。
**學生姓名** 可以由 **學生ID** 確定,這使得關係成為部分依賴的。
**專案名稱** 可以由 **專案ID** 確定,這使得關係成為部分依賴的。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP