數據完整性
數據完整性(DB Integrity)是指DBMS應保證的DB的一種特性——在任何情況下的正確性、有效性和一致性
廣義完整性:語義完整性、並發控制、安全控制、DB故障恢復等
狹義完整性:專指語義完整性,DBMS通常有專門的完整性管理機制與程序來處理語義完整性問題
關系模型中的完整性要求:
- 實體完整性:一個關系當中,主鍵的任何一個部分不能為空
- 參照完整性:外鍵可以取空值,如果不取空值,那么一定取作為主鍵的那個表當中的某一個值
- 用戶自定義完整性:語義完整性
為什么會引發數據庫完整性問題
不正當的數據庫操作,如輸入錯誤、操作失誤、程序處理失誤等
數據庫完整性管理的作用
- 防止和避免數據庫中不合理數據的出現
- DBMS應盡可能地自動防止DB中語義不合理現象
DBMS怎樣自動保證完整性
- DBMS允許用戶定義一些完整性約束規則(SQL-DLL)
- 當有DB更新操作時,DBMS自動按照完整性約束條件進行檢查,以確保更新操作符合語義完整性
完整性約束條件的一般形式
Integrity Constraint ::== (O,P,A,R)
- O:數據集合:約束的對象(列、多列(元組)、元組集合)
- P:謂詞條件:什么樣的約束?
- A:觸發條件:什么時候檢查?
- R:響應動作:不滿足時怎么辦?