關係資料庫模型中的約束


在關係資料庫模型中,約束是施加在資料庫表上的指導原則或限制,以維護資料的完整性、正確性和一致性。約束可用於強制跨表的 資料鏈接,驗證資料是否唯一,並阻止插入錯誤資料。資料庫需要約束才能可靠且高質量。

關係資料庫模型的約束是什麼?

在關係資料庫模型中,約束是指對資料或資料處理施加的限制。這意味著只能將特定型別的 資料輸入到資料庫中,或者只能對資料庫中的資料執行特定型別的操作。

因此,約束保證了資料庫管理系統(關係資料庫模型)中的資料準確性。

可以透過約束保證以下內容

資料準確性 - 約束保證資料準確性,確保僅將正確的資料輸入到資料庫中。例如,約束可以阻止使用者將負值輸入到僅接受正數的欄位中。

資料一致性 - 可以透過使用約束來維護資料庫中資料的一致性。這些約束能夠確保一個表中的主鍵值與另一個表中的外部索引鍵值相對應。

資料完整性 - 約束確保資料庫中資料的準確性和完整性。例如,約束可以阻止使用者將空值輸入到需要值的欄位中。

關係資料庫模型中的約束型別

  • 域約束

  • 鍵約束

  • 實體完整性約束

  • 參照完整性約束

  • 元組唯一性約束

域約束

在資料庫表中,域約束是指定特定屬性或欄位的可接受值的準則。這些約束保證資料一致性,並有助於防止將不準確或不一致的資料輸入到資料庫中。以下是關係資料庫模型中域約束的一些示例 -

  • 資料型別約束 - 這些約束定義可以儲存在列中的資料型別。建立為 VARCHAR 的列可以採用字串值,但指定為 INTEGER 的列只能接受整數值。

  • 長度約束 - 這些約束定義可以儲存在列中的最大資料量。例如,定義為 VARCHAR(10) 的列只能採用長度不超過 10 個字元的字串。

  • 範圍約束 - 範圍約束指定列的允許值範圍。例如,指定為 DECIMAL(5,2) 的列只能採用長度不超過 5 位(包括 2 位小數)的小數值。

  • 可空性約束 - 可空性約束是關於列是否可以接受 NULL 值的約束。例如,具有 NOT NULL 定義的列不能採用 NULL 值。

  • 唯一約束 - 唯一約束是要求列或列組中存在唯一值的約束。例如,具有 UNIQUE 定義的列不允許重複值。

  • 檢查約束 - 資料檢查約束:這些約束指定必須對儲存在列中的任何資料都成立的要求。例如,具有定義 CHECK (age > 0) 的列只能接受大於零的年齡。

  • 預設約束 - 預設約束:預設約束在未提供值的情況下自動為列分配值。例如,如果未指定其他值,則具有 DEFAULT 值為 0 的列將具有 0 作為其值。

鍵約束

鍵約束是關係資料庫模型用於確保資料庫中資料準確性和一致性的規則。它們定義了表中一個或多個列的值如何與其他表中的值相關聯,從而確保資料保持正確。

在關係資料庫模型中,有幾種鍵約束型別,包括 -

  • 主鍵約束 - 主鍵約束是資料庫中每個記錄的唯一識別符號。它確保每個資料庫條目都有一個唯一、不同的值 - 或一對值 - 作為其識別方式,並且不能為 null。

  • 外部索引鍵約束 - 外部索引鍵約束是對另一個表中主鍵的引用。它確保一個表中列或列組的值與另一個表中的主鍵列相對應。

  • 唯一約束 - 在資料庫中,唯一約束確保列或列組中沒有兩個值相同。

實體完整性約束

資料庫管理系統使用實體完整性約束 (EIC) 來強制規則,以確保表的 主鍵是唯一的且不為 null。EIC 用於防止建立重複或不完整條目,從而維護資料庫中資料的一致性和完整性。

關係資料庫中表中的每個條目都由一個或多個稱為主鍵的欄位唯一標識。EIC 確保每行的主鍵值是唯一的且不為 null。例如,考慮“員工”表,它具有“員工ID”和“姓名”列。該表的主鍵是“員工ID”列。此表上的 EIC 將確保每行的“員工ID”值是唯一的且不為 null。

如果嘗試插入具有重複或空“員工ID”的條目,資料庫管理系統將拒絕插入並生成錯誤。這確保了表中資料的正確性和一致性。

EIC 是資料庫架構的重要組成部分,有助於保證資料庫中包含的資料的準確性和可靠性。

參照完整性約束

資料庫管理系統將應用參照完整性約束 (RIC) 以維護表之間關係的一致性和完整性。RIC 透過防止建立不存在的條目之間的連結或刪除在其他表中具有相關條目的記錄,從而確保資料庫中的資料始終保持一致。

在關係資料庫中,透過使用外部索引鍵建立表之間的連結。一個表中用作外部索引鍵以引用另一個表的主鍵的列或列組。RIC 確保不存在引用錯誤,並且這些關係是有效的。

例如,考慮“訂單”和“客戶”表。“訂單”資料集中的外部索引鍵列“客戶ID”對應於“客戶”資料庫中的主鍵列。此關係上的 RIC 要求“訂單”資料庫中“客戶ID”列中的每個值都存在於“客戶”表的主鍵列中。

如果嘗試將記錄插入到“訂單”表中,並且“客戶ID”值為不存在的值,則資料庫管理系統將拒絕插入並向用戶發出錯誤。

類似地,如果從“客戶”表中刪除了記錄並且在“訂單”表中存在連結的條目,則資料庫管理系統將要麼阻止刪除,要麼級聯刪除,以確保參照完整性。

總的來說,RIC 是資料庫架構的重要組成部分,有助於保證資料庫中包含的資料在一段時間內保持正確和一致。

元組唯一性約束

資料庫管理系統使用稱為元組唯一性約束 (TUC) 的約束來確保表中每個條目或元組都是唯一的。與僅對特定列或列組強制唯一性的實體完整性約束 (EIC) 不同,TUC 對整行或元組強制唯一性。

因此,TUC 確保表中沒有兩行在所有列中具有相同的值。即使各個列值不唯一,這在必須避免生成重複條目時也很有用。

例如,考慮“銷售”表,它具有“交易ID”、“日期”、“客戶ID”和“金額”列。即使各個列值可以重複,此表上的 TUC 也將確保沒有兩行在所有四個列中具有相同的值。

如果嘗試插入一行,並且其四個列中的每個值都與現有條目相同,則資料庫管理系統將拒絕插入並生成錯誤。這確保了表中資料的唯一性和準確性。

TUCs(唯一性約束)可能是一種有助於確保資料正確性和一致性的有用工具,尤其是在避免生成重複條目至關重要的情況下。

結論

約束是每個資料庫管理系統的重要組成部分,建立和維護高質量的資料庫需要掌握如何有效地應用它們。為了保證資料的正確性、一致性和完整性,關係資料庫模型中的約束對資料應用規則。它們阻止新增、更改或刪除不正確或不完整的資料。EICs、RICs、TUCs和檢查約束是幾種不同的約束型別。構建和維護高質量的資料庫,以支援明智的業務決策,需要約束。

更新於: 2023年4月26日

瀏覽量 15K+

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告