免費開始練習
國營聯招申論題 106年 [統計資訊] 資料庫及資料探勘、程式設計

第 一 題

📖 題組:
某公司之關聯式人事資料庫如【附圖】所示,請回答下列問題:(15 分)
📝 此題為申論題,共 3 小題

小題 (一)

是否可從【附圖】部門資料表中,直接刪除「人事室」這筆資料,並請說明原因。(5 分)
題目圖片

思路引導 VIP

透過關聯式資料庫的「參考完整性(Referential Integrity)」與外來鍵(Foreign Key)限制來回答。

🤖
AI 詳解
AI 專屬家教

不可直接刪除。原因為違反關聯式資料庫中的「參考完整性(Referential Integrity)」限制。在【附圖】的資料庫結構中,「部門」資料表為父表,而「任職紀錄」資料表為子表,其「部門編號」欄位是參考部門表的外來鍵(Foreign Key)。人事室的部門編號為「103」,但在「任職紀錄」表中已有員工(如員工編號31、32、58、74)的任職紀錄參考到部門編號103,若直接刪除部門表中的人事室,將導致任職紀錄表產生孤兒紀錄(Orphan Record),因此資料庫系統會拒絕此刪除操作。

小題 (二)

請寫出將所有員工的年資及年齡都增加 1 的 SQL 語法。(3 分)
題目圖片

思路引導 VIP

利用 UPDATE 指令配合 SET 子句將對應數值加 1。

🤖
AI 詳解
AI 專屬家教

UPDATE 員工 SET 年資 = 年資 + 1, 年齡 = 年齡 + 1;

小題 (三)

請寫出可查詢曾任職兩個(含)以上不同部門的員工,其員工編號及姓名的 SQL 語法。(7 分)
題目圖片

思路引導 VIP

使用 JOIN 結合員工表與任職紀錄表,再利用 GROUP BY 員工,透過 HAVING COUNT(DISTINCT 部門編號) >= 2 篩選出符合條件的對象。

🤖
AI 詳解
AI 專屬家教

SELECT a.員工編號, a.姓名 FROM 員工 a JOIN 任職紀錄 b ON a.員工編號 = b.員工編號

📝 參考完整性
💡 透過主鍵與外來鍵約束,確保關聯表之間資料的一致性。

🔗 刪除操作的完整性檢查流程

  1. 1 欲刪除父表紀錄 — 嘗試刪除部門表中的「人事室」資料。
  2. ↓
  3. 2 系統檢查約束 — 掃描子表(任職紀錄)的外來鍵欄位。
  4. ↓
  5. 3 發現參照紀錄 — 發現員工 31, 32 等人仍參照該部門編號。
  6. ↓
  7. 4 拒絕執行 — 為避免產生孤兒紀錄,系統強制阻擋刪除。
🔄 延伸學習:延伸學習:若欲強制刪除,需先處理子表紀錄或設定 ON DELETE CASCADE。
🧠 記憶技巧:VIP 會員可查看這題的記憶口訣與速記法
⚠️ 常見陷阱:VIP 會員可查看這題最常被誘答的陷阱整理
外來鍵 (Foreign Key) 級聯刪除 (Cascade Delete) 實體完整性 (Entity Integrity)

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

關聯式資料庫查詢語言與 SQL 實務應用
查看更多「[統計資訊] 資料庫及資料探勘、程式設計」的主題分類考古題