Foreign-Key
外鍵必須始終滿足哪些屬性?
我知道主鍵。
PK 必須滿足:(1) 唯一,(2) 非 NULL,(3) 完全功能依賴,(4) 索引……這 04 個屬性。
外鍵必須始終滿足哪些屬性?
外鍵約束的目的是保護數據的參照完整性。
- 外鍵列的插入和更新必須存在於引用列中。
- 通過在執行 DDL(例如 DROP 和 TRUNCATE)之前強制刪除外鍵來保護外表和主表之間的關係(連結)。
希望這可以幫助!
外鍵 (FK)
- 關係 FK 引用關係 PK。SQL FK 引用 SQL UNIQUE NOT NULL(可能是 PK)。
- FK 的引用列類型與相應的引用列類型一致。
- FK 的引用列值必須顯示為相應的引用列值。
- 關係表沒有 NULL。具有 NULL 的 SQL FK 子行不受約束。
- 關係 FK 可以是空集;SQL 不允許這樣聲明。
主鍵 (PK)
- 關係 PK 必須是 UNIQUE NOT NULL,但不能包含較小的 UNIQUE NOT NULL。SQL PK 是 UNIQUE NOT NULL。(它實際上是一個主超級鍵。)
- 關係 PK 有時可能是空集;SQL 不允許這樣聲明。
- 一個關係表至少有一個 PK 候選。SQL 基表可以有重複的行,因此沒有 PK。
- PK 在功能上決定了每一列。
附言
- PK 可以是部分功能決定因素。具有主鍵的表不必採用任何特定的正常形式才能進行查詢。
- PK 獨立於索引。索引是一種 DBMS 實現特性。即使在 SQL 中,表主鍵也不必具有關聯的索引。