傳播約束

數據庫系統中,傳播約束(propagation constraint)「詳細說明了當我們更新目標表的一行或多行時相關表應該發生的情況」[1]:108。表使用主鍵外鍵關係實現連結。用戶可能會更新其中的一個表導致這種關係不再保持一致,這稱為破壞了參照完整性。例如,如果員工表包含「家庭用品部門」的部門編號,它是部門表的外鍵,並且用戶從部門表中刪除了該部門,則家庭用品部門員工記錄將引用不再存在的部門編號。

關係數據庫管理系統解決此問題的方法是傳播約束,以確保表之間的關係保持無錯。Beynon-Davies列出了關係數據庫管理系統處理刪除目標和關聯元組的三種方式:

  • Restricted Delete - 在所有(通過外鍵)指向它的行都被刪除之前,用戶不能刪除目標行。這意味着在從部門表中刪除部門之前,需要刪除所有家庭用品部門員工,或者更改他們的部門。
  • Cascades Delete - 可以刪除目標行且所有(通過外鍵)指向它的行也被刪除。
  • Nullifies Delete - 可以刪除目標行並把所有(指向它的)外鍵都置為空。在這種情況下,刪除家庭用品部門後,在該部門工作的員工的部門將具有NULL(未知)值。

參考文獻

  1. ^ Beynon-Davies, P. (2004) Database Systems Third Edition, Palgrave Macmillan.