民國115年 高考三級 統計 資料處理

第3題

某政府機關設計「大學生住房補貼申請系統」,提供在外租屋的大學生申 請住房補貼。請設計SQL 建立資料庫HousingSubsidy 資料表,包含下 列欄位:申請…

題目

某政府機關設計「大學生住房補貼申請系統」,提供在外租屋的大學生申 請住房補貼。請設計SQL 建立資料庫HousingSubsidy 資料表,包含下 列欄位:申請編號(ApplyID,整數)、學生姓名(StudentName,變動字 元)、租屋縣市(RentCity,變動字元)、月租金(MonthlyRent,整數)、 手機號碼(Phone,變動字元)、申請年度(ApplyYear,整數)、審核狀 態(ReviewStatus,變動字元),並設定ApplyID 為主鍵。若此住房補貼 系統同時有大量學生進行申請、修改與查詢資料,請說明資料庫管理系 統(DBMS)中的「交易(Transaction)」與「備份(Backup)」功能之重 要性。另外,請填寫(I)~(VI)空格,使下列SQL 能正確完成:⑴查詢「高 雄市」且「已核准」之住房補貼申請資料,統計各申請年度的總月租金, 並依總月租金由大到小排序;⑵將學生姓名為「王小明」,申請年度為 2026 年,其手機號碼變更為0988123456;⑶刪除「申請年度為2026 年, 且審核狀態為未送出」的申請紀錄。(25 分) SELECT ApplyYear, (I) AS TotalRent FROM HousingSubsidy WHERE RentCity = '高雄市' AND ReviewStatus = '已核准' (II) ApplyYear (III) TotalRent > 10000 (IV) TotalRent DESC; (V) HousingSubsidy SET Phone = '0988123456' WHERE StudentName = '王小明' AND ApplyYear = 2026; (VI) FROM HousingSubsidy WHERE ApplyYear = 2026 AND ReviewStatus = '未送出';

參考解答(AI 生成,非官方)

  • 一、建表:CREATE TABLE HousingSubsidy(ApplyID INT PRIMARY KEY, StudentName VARCHAR(50), RentCity VARCHAR(20), MonthlyRent INT, Phone VARCHAR(15), ApplyYear INT, ReviewStatus VARCHAR(20)); 整數欄位採INT、變動字元採VARCHAR,並以ApplyID為主鍵;長度與NOT NULL、CHECK等限制可依實際需求增補。
  • 二、第⑴題:(I) SUM(MonthlyRent)、(II) GROUP BY、(III) HAVING、(IV) ORDER BY。WHERE先篩選高雄市且已核准的資料列,GROUP BY依ApplyYear分組,HAVING篩選各年度總月租金大於10000的群組,ORDER BY TotalRent DESC由大到小排序。部分DBMS允許HAVING使用別名,標準SQL宜寫HAVING SUM(MonthlyRent)>10000以確保可攜性。
  • 三、第⑵、⑶題:(V) UPDATE、(VI) DELETE。更新時SET Phone='0988123456',條件為StudentName='王小明'且ApplyYear=2026;刪除時DELETE FROM HousingSubsidy,條件為ApplyYear=2026且ReviewStatus='未送出'。執行前宜先SELECT確認影響筆數,並包在交易中,避免同名或同年度多筆資料遭誤改、誤刪。
  • 四、交易(Transaction):交易是不可分割的邏輯工作單位,須具備原子性、一致性、隔離性與持久性(ACID)。大量學生同時申請、修改與查詢時,交易可確保更新全部成功或全部回滾,並透過鎖定、多版本併發控制(MVCC)與隔離等級避免髒讀、不可重複讀、幻讀及更新遺失,維持審核狀態與租金資料一致。
  • 五、備份(Backup):備份提供資料毀損、誤刪、勒索軟體或硬體故障後的復原基礎。實務上採完整、差異與增量備份並搭配交易紀錄(transaction log),以達成復原點目標(RPO)與復原時間目標(RTO);並依3-2-1原則異地保存、加密與定期還原演練。備份與交易日誌相輔相成,才能將資料回復至一致時間點。

AI 依官方試題文字產生的參考解答,非考選部公告答案,內容僅供備考參考。

官方資料