108 關務特考三等 資訊處理 資料庫應用 考古題詳解
第 一 題15 分
在現今大數據(Big Data)盛行的時代,已經有許多大數據平台提供各種不同的服務,而在這些平台上運行的軟體多半包括 Data Warehouse、Data Mining、OLTP(Online Transaction Processing)、OLAP(Online Analytical Processing)、ETL(Extract, Transform, Load)等:
(一)試說明此五個軟體的主要功用。(15分)
(二)試說明此五個軟體的相互運作關係,以達成提供大數據服務的目的。(10分)
登入後即可作答並保存紀錄。
核心觀念 本題測驗「商業智慧(Business Intelligence, BI)與大數據決策支援架構」之經典核心元件。命題重點在於考生能否清楚區分「營運型系統(Operational System)」與「分析型系統(Analytical System)」的本質差異,並掌握資料由交易產生、流轉整合、倉儲匯集、多維分析到知識發掘的完整管線(Data Pipeline)。涉及之核心定義如下:
- OLTP:以 ACID 特性為基礎、高並行度的日常營運交易系統。
- ETL:異質資料之擷取(Extract)、清洗轉換(Transform)與載入(Load)技術。
- Data Warehouse(DW):具備主題導向、整合性、時間變異性、非揮發性(W. H. Inmon 定義)之決策支援儲存庫。
- OLAP:基於資料立方體(Data Cube)進行多維度分析(切片、切塊、鑽研、彙總)之工具。
- Data Mining:結合統計學、機器學習與人工智慧,從巨量資料中主動發掘未知模式(Patterns)與預測趨勢之技術。
解題方法
- 第(一)子題(功用說明):採取「定義 核心功能 技術特性」的三段式陳述。配分 15 分,平均每個名詞 3 分,因此每個名詞應條列 2~3 個核心關鍵字(如 ACID、正規化、維度模型、星狀綱要等),展現科班專業深度。
- 第(二)子題(運作關係):不可僅用文字平鋪直敘。應先畫出「資料流向架構圖(Data Flow Architecture)」,呈現端到端(End-to-End)的串接關係,再依「資料產生 資料整合與載入 集中儲存 驗證型分析 發掘型分析 價值回饋」的層次進行邏輯剖析,點出如何達成大數據服務之綜效。
選項分析 本題為非選擇題(申論/問答題)。針對試卷評分標準,各項得分要點拆解如下:
- 功用定義完整度:OLTP 與 DW 的設計目標相反(前者重交易與正規化,後者重分析與反正規化),說明時若能做出鮮明對比,得分最高。
- 分析工具之層次劃分:OLAP 屬於「驗證型分析(以人為主導、驗證既定假設)」,Data Mining 屬於「發掘型分析(以演算法為主導、尋找未知關聯)」,此為判斷考生是否真正理解 BI 架構的重要分水嶺。
- 架構整合性:子題(二)必須清楚點出「回饋機制(Feedback Loop)」,即探勘所得之模型或洞察如何反哺回到前端 OLTP 進行即時決策優化(如精準行銷、詐欺偵測),而非僅止於單向資料堆積。
解題技巧
- 記憶口訣:
- 流程串聯口訣:「生(OLTP) 洗(ETL) 藏(DW) 看(OLAP) 挖(Mining)」。
- 資料倉儲四特性口訣:「主、整、時、非」(主題導向、整合性、時間變異性、非揮發性)。
- 架構圖加分機制:在申論題作答中,手繪簡潔明瞭的資料流向架構方塊圖,能有效協助閱卷委員迅速掌握答題重點,是獲得 80% 以上高分(18~22 分以上)的關鍵技巧。
【答案】
(一)五個軟體之主要功用說明
- OLTP(Online Transaction Processing,線上交易處理)
- 主要功用:負責支撐企業日常前端營運作業之即時交易處理(例如:電商結帳、銀行轉帳、庫存扣減)。
- 核心特點:
- 重視事務完整性,嚴格遵循 (Atomicity, Consistency, Isolation, Durability)特性。
- 資料結構採用高度正規化(通常為第 3 正規化 或 ),以減少資料重複並防止更新異常。
- 具備高並行存取(High Concurrency)、回應時間短、高頻率但單筆讀寫量小之特性。
- ETL(Extract, Transform, Load,擷取、轉換、載入)
- 主要功用:扮演資料管線(Data Pipeline)之中樞,負責將異質來源的資料整併並餵入儲存端。
- 核心特點:
- 擷取(Extract):從多個異質營運資料庫(OLTP)、記錄檔(Logs)或外部資料來源讀取原始資料。
- 轉換(Transform):進行資料清洗(Data Cleansing)、去重複、缺失值處理、編碼標準化、型態轉換與彙整計算,確保資料品質。
- 載入(Load):將整理妥善的高品質資料依照預定綱要批次或即時寫入資料倉儲或資料市集。
- Data Warehouse(資料倉儲,DW)
- 主要功用:做為全企業集中式的歷史資料儲存庫,提供單一真實來源(Single Source of Truth),專門支援管理階層進行決策分析。
- 核心特點(符合 Inmon 定義之四大特性):
- 主題導向(Subject-Oriented):依業務主題(如顧客、銷售、產品)分類儲存,而非依應用程式功能劃分。
- 整合性(Integrated):徹底消除各來源系統命名與編碼不一致的問題。
第 二 題15 分
某一資料庫系統內有以下資料表(實底線欄位為主鍵):
資料表:
| 課程 | 教師 | 課本 |
|---|---|---|
| 資料庫應用 | 王大明 | CS |
| 資料庫應用 | 王大明 | BA |
| 資料庫應用 | 李大華 | CS |
| 資料庫應用 | 李大華 | BA |
| 資料庫實務 | 王大明 | CS |
| 資料庫實務 | 王大明 | CE |
主鍵:課程、教師、課本。
試說明此資料表為何符合 BCNF 正規化形式、但不符合第四階正規化形式?(15分)應如何修改使之符合第四階正規化形式?(10分)
登入後即可作答並保存紀錄。
核心觀念
本題考查 **BCNF(Boyce–Codd 正規化形式)與第四階正規化形式(4NF)**的差異:
- BCNF:對每一個非平凡函數相依 , 都必須是超鍵。
- 4NF:對每一個非平凡多值相依 , 都必須是超鍵。
函數相依描述「一個欄位組合唯一決定另一欄位組合」;多值相依描述「在固定 時, 的多個值與其餘欄位的值彼此獨立」。
解題方法
設資料表為 ,題目指定的主鍵為三個欄位的組合。
依題意所呈現的資料語意,同一課程可以有多位教師,也可以使用多種課本,而且教師與課本的選擇彼此獨立。因此有:
例如「資料庫應用」有兩位教師、兩種課本,資料列包含四種教師與課本的組合,正好呈現兩者彼此獨立。
為何符合 BCNF、但不符合 4NF
**符合 BCNF:**依題目指定的主鍵,三欄位組合是超鍵。沒有非平凡函數相依由「課程」、「教師」或「課本」等真子集決定其他欄位;能決定整筆資料的是完整主鍵。因此每個非平凡函數相依的決定項都是超鍵,符合 BCNF。
第 三 題25 分
當資料庫系統發生故障時,回復處理常採用交易記錄回復處理(Log-based Recovery)。試說明此種回復處理方式的原理以及運作過程。(25分)
登入後即可作答並保存紀錄。
核心觀念
本題評量資料庫管理系統(DBMS)在面臨系統崩潰(System Crash)時的「故障回復技術(Recovery Techniques)」,核心依託於交易(Transaction)的 ACID 特性(特別是 Atomicity 不可分割性 與 Durability 耐久性)。
主要涉及之核心定義與機制包含:
- 交易記錄檔(Log Record):記錄所有交易對資料庫所進行之更新操作的循序檔案(Sequential File),儲存於穩定儲存體(Stable Storage)。單一更新記錄通常包含:(代表交易 將資料項目 的舊值 修改為新值 )。
- 先寫記錄檔協定(Write-Ahead Logging, WAL):
- 在記憶體緩衝區(Buffer)中被修改的資料寫入磁碟(Disk)前,對應的更新 Log 必須先強制寫入(Force-write)磁碟。
- 在交易發出 Commit 請求時,其 Log 必須先寫入磁碟,方能向使用者確認交易完成。
- 更新策略(Update Policies):
- 立即更新(Immediate Update):交易尚未 Commit 前,其修改值即可隨時寫入磁碟(需要 UNDO 與 REDO)。
- 延遲更新(Deferred Update):交易在 Commit 之前,所有修改僅保留在 Buffer 與 Log,不寫入磁碟實體資料庫(僅需要 REDO,免 UNDO)。
- 檢查點機制(Checkpoint):定時將 Buffer 髒頁(Dirty Pages)寫入磁碟並記錄系統狀態,限制當機回復時 Log 往回掃描的搜尋範圍。
解題方法
本題為 25 分的申論題,切入架構應分為兩大維度:「原理篇」與「運作過程篇」,並輔以「演算法與檢查點(Checkpoint)」做完整推導。
- 原理層面:
- 說明狀態儲存的落差:揮發性記憶體(RAM/Buffer)與非揮發性磁碟(Disk)間的速度落差,導致非同步寫入引發不一致。
- 闡明 WAL 協定如何保證 Atomicity(利用舊值進行 UNDO 撤銷未完成交易)與 Durability(利用新值進行 REDO 重做已提交交易)。
- 運作過程層面:
- 區分資料庫運行中的「正常日誌寫入流程」與故障發生後的「回復處理流程」。
- 詳細寫出當機後的具體回復演算法:分析階段(Analysis)、重做階段(REDO)、撤銷階段(UNDO),並推導交易分類準則(Redo-list 與 Undo-list)。
選項分析(關鍵機制對比)
本題為申論問答題,無客觀選項;考生在答題時,應針對回復處理中容易混淆的兩種核心策略與操作進行對比剖析,方能展現答題深度:
- 立即更新(Immediate Update) vs. 延遲更新(Deferred Update)
- 立即更新(Undo/Redo 演算法):允許未提交交易將變更提前寫入磁碟(Steal 政策)。故障發生時,已 Commit 交易需 REDO,未 Commit 交易需 UNDO。運作彈性高、記憶體負擔小,為多數商用資料庫採用。
- 延遲更新(No-Undo/Redo 演算法):嚴格禁止未提交交易寫入磁碟(No-Steal 政策)。故障發生時,未 Commit 交易在磁碟上無任何髒資料,因此僅需 REDO 已 Commit 交易,完全不需 UNDO。但其缺點是 Buffer 需暫存所有更新,記憶體壓力巨大。
- 重做(REDO) vs. 撤銷(UNDO)
- REDO 運作:由前向後(Forward)掃描 Log,將資料欄位重設為新值 ,確保寫入具有冪等性(Idempotence: )。
- UNDO 運作:由後向前(Backward)掃描 Log,將資料欄位還原為舊值 ,並寫入補償記錄檔(Compensating Log Record, CLR),防止回復過程中再次當機。
解題技巧
- 二元判斷口訣(決定交易命運):
- Log 中**「有 START 且有 COMMIT / ABORT」** 加入 Redo-list(保證 Durability)。
- Log 中**「有 START 但無 COMMIT / ABORT」** 加入 Undo-list(保證 Atomicity)。
- 答題結構化評分關鍵:
- 切忌通篇純文字散動描述;務必寫出 Log 記錄格式(如 、 等)與 WAL 的先後順序條件,這兩點是閱卷委員評分尺度的給分硬指標。
- 常見陷阱提醒:
- 忘記強調「REDO 與 UNDO 的執行順序」:在標準 ARIES 或經典日誌回復架構中,必須先由舊到新重做(REDO)達到當機當下的狀態,再由新到舊撤銷(UNDO)未完成交易。
- 誤以為 Checkpoint 之後的資料都不用管:Checkpoint 僅代表當時的 Dirty Buffer 已 Flush,但 Checkpoint 之前開始且跨越 Checkpoint 尚未 Commit 的交易,仍必須納入追蹤。
【答案】
一、交易記錄回復處理之原理(Principles)
交易記錄回復處理(Log-based Recovery)係透過循序記錄系統所有狀態變更的「交易記錄檔(Log file)」,在系統故障重啟時,將資料庫重建回具有一致性(Consistency)且符合交易 ACID 特性的狀態。其核心原理架構如下:
第 四 題10 分
某一資料庫系統內有以下三個資料表:
教師資料表(實底線欄位為主鍵)
| 教師編號 | 姓名 | 科系 |
|---|---|---|
| P001 | 王大明 | CS |
| P002 | 李大華 | BA |
課程資料表(實底線欄位為主鍵)
| 課程編號 | 名稱 | 學分數 |
|---|---|---|
| C101 | 資料庫應用 | 3 |
| C102 | 網路概論 | 3 |
| C103 | 多媒體導論 | 4 |
修課資料表(實底線欄位為主鍵)
| 教師編號 | 課程編號 | 學生編號 | 教室 | 時間 | 成績 |
|---|---|---|---|---|---|
| P001 | C101 | S2003 | A513 | 13:30 | 86 |
| P002 | C103 | S6121 | A226 | 14:30 | 72 |
| P002 | C103 | S6186 | A226 | 14:30 | 80 |
(一)試寫出一個 SQL 指令,建立一個視界(View),以顯示每位教師的開課資料以及修習這些課程的學生資料。(10分)
(二)試寫出一個 SQL 指令,建立一個統計性摘要視界(View),以顯示每位教師的開課數以及開課總學分數。(15分)
登入後即可作答並保存紀錄。
核心觀念
本題考查 SQL 視界、資料表連接與彙總統計。
- 「教師資料表」提供教師編號、姓名與科系。
- 「課程資料表」提供課程名稱與學分數。
- 「修課資料表」連結教師、課程與學生,並記錄教室、時間及成績。
- 修課資料表中,同一位教師的同一門課會因不同學生而出現多筆,因此統計開課數與學分時,必須先消除學生修課紀錄造成的重複。
本題不涉及法條。
解題方法
(一)建立教師開課與學生資料視界
以教師編號連接教師資料表和修課資料表,再以課程編號連接修課資料表和課程資料表。選出教師、課程及修課紀錄所提供的欄位,即可呈現各教師開課及修習學生的資料。
CREATE VIEW 教師開課修課視界 AS
SELECT T.教師編號,
T.姓名,
T.科系,
C.課程編號,
C.名稱 AS 課程名稱,
C.學分數,
R.學生編號,
R.教室,
R.時間,
R.成績
FROM 教師資料表 AS T
JOIN 修課資料表 AS R
ON T.教師編號 = R.教師編號
JOIN 課程資料表 AS C
ON R.課程編號 = C.課程編號;
這個視界以每筆修課紀錄為一列。同一門課有多位學生時,教師與課程資料會隨學生修課紀錄重複呈現。題目未提供學生資料表,因此學生資料欄位只有修課資料表中的「學生編號」。
(二)建立教師開課統計摘要視界
先從修課資料表取得不重複的「教師編號-課程編號」組合,再連接課程資料表取得該課學分數。最後以教師為單位計算課程數及學分總數。