阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 中華郵政股份有限公司_職階人員甄試試題_營運職/資料庫管理:資料庫系統規劃、開發與實務#106511
科目:資料庫系統規劃、開發與實務
年份:110年
排序:0

申論題內容

第三題: 請回答下列問題: 
(一)請說明何謂參照完整性(referential integrity)?如何在關聯模型(relational model) 中表示參照完整性?【10 分】

詳解 (共 1 筆)

詳解 提供者:hchungw

參照完整性 (Referential Integrity) 是資料庫管理中的一個重要概念,旨在確保資料的正確性和一致性。具體來說,參照完整性是指在關聯資料庫中,確保外鍵 (foreign key) 的值必須存在於被參照表(參照關係)的主鍵 (primary key) 或候選鍵 (candidate key) 中。這樣可以防止孤立的或不一致的資料出現,確保資料庫的整體一致性。

參照完整性的意義

參照完整性強制要求資料庫中某些表之間的關聯關係有效。例如,如果一張訂單表 (Order) 參照了一張客戶表 (Customer),那麼每個訂單記錄中的客戶 ID 必須在客戶表中存在。這樣,資料庫系統可以防止插入無效的訂單記錄(即,訂單中提到的客戶在客戶表中不存在),並且防止刪除或更新客戶表中的記錄,從而使訂單表中的外鍵變成無效。

在關聯模型中表示參照完整性

在關聯模型中,參照完整性通常通過以下方式來表示和維護:

  1. 外鍵約束 (Foreign Key Constraint)

    • 外鍵約束是一種規則,用於確保外鍵的值在被參照表中存在。
    • 外鍵約束通常在創建或修改表結構時使用 SQL 語句來定義。
  2. SQL 語句範例

    • 創建一個具有外鍵約束的表時,可以使用如下的 SQL 語句:
sql
複製程式碼

CREATE TABLE Customer ( CustomerID INT PRIMARY KEY, CustomerName VARCHAR(100) );

CREATE TABLE Order ( OrderID INT PRIMARY KEY, OrderDate DATE, CustomerID INT, FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID) );

在這個範例中:

  • Customer 表具有 CustomerID 作為主鍵。
  • Order 表具有 CustomerID 作為外鍵,並且這個外鍵參照 Customer 表中的 CustomerID。

維護參照完整性的操作

資料庫系統在進行下列操作時會自動維護參照完整性:

  1. 插入 (INSERT)

    • 當向包含外鍵的表中插入資料時,資料庫會檢查外鍵值是否在被參照表中存在。
    • 如果外鍵值不存在,插入操作會失敗。
  2. 更新 (UPDATE)

    • 當更新被參照表的主鍵值時,資料庫會檢查是否存在相關的外鍵參照。
    • 如果存在參照,更新操作可能會失敗,或根據設定的參照行為(如 CASCADE)進行相應的更新。
  3. 刪除 (DELETE)

    • 當刪除被參照表中的記錄時,資料庫會檢查是否存在相關的外鍵參照。
    • 如果存在參照,刪除操作可能會失敗,或根據設定的參照行為(如 CASCADE 或 SET NULL)進行相應的刪除或更新。

總結來說,參照完整性確保了關聯資料庫中不同表之間的數據關聯的有效性,通過外鍵約束等機制來維護資料的一致性和正確性。