國營聯招申論題
106年
[統計資訊] 資料庫及資料探勘、程式設計
第 一 題
📖 題組:
某公司之關聯式人事資料庫如【附圖】所示,請回答下列問題:(15 分)
某公司之關聯式人事資料庫如【附圖】所示,請回答下列問題:(15 分)
📝 此題為申論題,共 3 小題
小題 (一)
是否可從【附圖】部門資料表中,直接刪除「人事室」這筆資料,並請說明原因。(5 分)
思路引導 VIP
透過關聯式資料庫的「參考完整性(Referential Integrity)」與外來鍵(Foreign Key)限制來回答。
小題 (二)
請寫出將所有員工的年資及年齡都增加 1 的 SQL 語法。(3 分)
思路引導 VIP
利用 UPDATE 指令配合 SET 子句將對應數值加 1。
小題 (三)
請寫出可查詢曾任職兩個(含)以上不同部門的員工,其員工編號及姓名的 SQL 語法。(7 分)
思路引導 VIP
使用 JOIN 結合員工表與任職紀錄表,再利用 GROUP BY 員工,透過 HAVING COUNT(DISTINCT 部門編號) >= 2 篩選出符合條件的對象。
參考完整性
💡 透過主鍵與外來鍵約束,確保關聯表之間資料的一致性。
🔗 刪除操作的完整性檢查流程
- 1 欲刪除父表紀錄 — 嘗試刪除部門表中的「人事室」資料。
- 2 系統檢查約束 — 掃描子表(任職紀錄)的外來鍵欄位。
- 3 發現參照紀錄 — 發現員工 31, 32 等人仍參照該部門編號。
- 4 拒絕執行 — 為避免產生孤兒紀錄,系統強制阻擋刪除。
↓
↓
↓
🔄 延伸學習:延伸學習:若欲強制刪除,需先處理子表紀錄或設定 ON DELETE CASCADE。