114 公務人員升官等薦任 資訊處理 資料庫應用 考古題詳解
第 一 題20 分
請闡述下列專門術語的意涵:(每小題 4 分,共 20 分)
(1)ANSI/SPARC 三層架構
(2)並發(Concurrent)
(3)弱實體
(4)
(5)網路式資料模式
登入後即可作答並保存紀錄。
核心觀念
本題考查資料庫系統的架構、交易處理、ER 模型與關聯式正規化,以及資料模型的分類。作答時應以「定義+關鍵特性+用途或例子」說明各術語。
解題方法
(1)ANSI/SPARC 三層架構
ANSI/SPARC 將資料庫系統分成三個層次:
- 外部層(External Level):描述個別使用者或應用程式所看到的資料視圖。同一資料庫可以有多個外部視圖,以呈現使用者需要的部分資料。
- 概念層(Conceptual Level):描述整個資料庫的整體邏輯結構,包括資料項目、資料間的關係及限制條件;通常不涉及實際儲存方式。
- 內部層(Internal Level):描述資料實際如何儲存,例如檔案組織、索引與儲存配置。
三層架構的重要目的,是透過外部/概念對映與概念/內部對映,提供資料獨立性。概念結構改變時,盡量不影響使用者視圖,稱為邏輯資料獨立性;儲存方式改變時,盡量不影響概念結構,稱為實體資料獨立性。
(2)並發(Concurrent)
並發是指多個交易或使用者的操作在時間上重疊進行。系統可能交錯執行不同交易的指令,即使處理器實際上是輪流執行,使用者仍可觀察到多項工作同時進行。
並發可提升系統資源利用率與交易吞吐量,但若控制不當,可能造成遺失更新、讀取未提交資料、不一致讀取等問題。因此資料庫管理系統須以鎖定、時間戳記或多版本並發控制等方法維持隔離性與資料一致性。
(3)弱實體
弱實體是 ER 模型中無法僅憑自身屬性唯一識別的實體,必須依賴另一個強實體(擁有者實體)才能識別及存在。
弱實體通常具有部分鍵(partial key),與擁有者實體透過識別關係連結;其識別方式是「擁有者實體的主鍵+弱實體的部分鍵」。例如,若「眷屬」以「員工編號+眷屬姓名」識別,且眷屬不能脫離員工而存在,則眷屬可建模為弱實體。
(4)第二正規化(2NF)
第 二 題20 分
有一資料表 Sales(OrderID, CustID, Amount, ODate)。請回答下列問題:(每小題 10 分,共 20 分)
(1)寫出查詢 2025 年 1 月的訂單與金額的 SQL 陳述式(statement)。
(2)下列 SQL 陳述式的作用為何?
SELECT CustID, SUM(Amount) AS TotalAmt
FROM Sales
WHERE ODate >= DATE '2025-01-01' AND ODate < DATE '2025-02-01'
GROUP BY CustID
ORDER BY TotalAmt DESC;
登入後即可作答並保存紀錄。
核心觀念
本題考查 SQL 的日期範圍條件、欄位投影,以及彙總查詢中的 WHERE、GROUP BY、SUM 與 ORDER BY:
SELECT指定要輸出的欄位。WHERE篩選符合條件的資料列。GROUP BY依欄位分組,讓彙總函數分別計算各組結果。SUM(Amount)計算每組的訂單金額合計。ORDER BY ... DESC依指定欄位由大至小排列。
解題方法
(1)查詢 2025 年 1 月的訂單與金額
題目要列出 2025 年 1 月的訂單及金額,因此輸出訂單編號與金額,並以日期範圍篩選:
SELECT OrderID, Amount
FROM Sales
WHERE ODate >= DATE '2025-01-01'
AND ODate < DATE '2025-02-01';
條件包含 2025 年 1 月 1 日,並排除 2025 年 2 月 1 日。這種「大於等於月初、小於下月月初」的半開區間寫法,即使 ODate 含有時分秒,也能涵蓋整個 1 月,不必假設月底的最後一刻是某個特定時間。
(2)說明 SQL 陳述式的作用
SELECT CustID, SUM(Amount) AS TotalAmt
FROM Sales
WHERE ODate >= DATE '2025-01-01' AND ODate < DATE '2025-02-01'
GROUP BY CustID
ORDER BY TotalAmt DESC;
依 SQL 的執行概念,可分為以下步驟:
第 三 題20 分
某校務系統包含 Student、Course、Section、Enroll 等四個資料表。其中,Section 描述同一課程(Course)在不同學期、時段、教室、教師的實際開課實例。請以 ER 模型描述主要實體、關聯以及基數,另外也說明為什麼需要 Section。
登入後即可作答並保存紀錄。
核心觀念
本題考查 ER 模型中的實體、關聯、基數,以及如何區分「課程目錄」與「實際開課班次」。
- Student(學生):修課的學生實體。
- Course(課程):課程的固定資料,例如課程代碼、名稱、學分。
- Section(開課班次):某門課在特定學期實際開設的一個班次,包含學期、時段、教室、教師等資料。
- Enroll(選課):記錄學生選修哪個開課班次的關聯;若採關聯實體表示,通常包含選課時間、成績等屬性。
ER 模型的基數描述實體間可參與關聯的數量,例如一對多(1:N)或多對多(M:N)。
解題方法
先依題意區分「課程」與「實際開課實例」:Course 描述課程本身,Section 描述該課程在特定學期與條件下的一次開課。再判斷各實體間的基數:
-
Course 與 Section:一對多(1:N) 一門課程可在不同學期或時段開設多個 Section;每個 Section 必須隸屬於一門 Course。
-
Student 與 Section:多對多(M:N) 一位學生可選修多個 Section;一個 Section 也可由多位學生選修。以 Enroll 關聯實體拆解此 M:N 關聯。
-
Student 與 Enroll:一對多(1:N) 一位學生可有多筆選課紀錄;每筆 Enroll 紀錄對應一位學生。
-
Section 與 Enroll:一對多(1:N) 一個 Section 可有多筆選課紀錄;每筆 Enroll 紀錄對應一個 Section。
可用下列文字 ER 圖表示:
Course 1 ─── N Section
1
│
N
Student 1 ─── N Enroll
第 四 題20 分
闡述備份與復原策略中的「完整備份、差異備份、交易日誌(WAL/Log)備份」三者的差異與搭配方式,並概述災難復原(DR)兩個 R 指標。
登入後即可作答並保存紀錄。
核心觀念
本題考查資料庫備份型態、交易日誌備份與災難復原目標。備份策略要回答兩件事:資料如何還原,以及發生災難後可接受多少資料損失與停機時間。題目不涉及特定資料庫產品,各產品的實作名稱可能不同,以下說明通用觀念。
- 完整備份(Full Backup):備份某一時點的完整資料庫,作為還原基準。還原時通常先還原完整備份。
- 差異備份(Differential Backup):備份自最近一次完整備份以來變更的資料。還原時需先還原完整備份,再套用所需的最新差異備份。
- 交易日誌備份(Transaction Log Backup):備份上次日誌備份後新增的交易日誌記錄。日誌記錄包含交易變更與順序資訊,可用來將資料庫復原到較新的時間點;通常需依序套用完整備份之後的差異備份及相關日誌備份。
- RPO(Recovery Point Objective,復原點目標):可接受的最大資料損失量,常以時間表示。例如 RPO 為 15 分鐘,表示災難發生時,最多接受約 15 分鐘內的資料變更無法復原。
- RTO(Recovery Time Objective,復原時間目標):可接受的最長復原時間,即從服務中斷到恢復可用所容許的時間。
解題方法
依序比較三種備份的「涵蓋範圍、還原所需檔案、優缺點」,再說明如何串接還原;最後以 RPO 對應資料損失、RTO 對應停機時間。
設每週日凌晨執行完整備份,平日每天執行差異備份,交易日誌每 15 分鐘備份一次。若週四下午發生故障,可依下列順序復原:
- 還原週日的完整備份。
- 套用故障前最近一次差異備份,例如週四凌晨的差異備份。
- 依時間順序套用週四凌晨差異備份之後、至故障時間前的交易日誌備份。
- 若資料庫與日誌仍可讀取,並且系統支援,可套用尚未備份的尾端日誌(tail-log),進一步縮小資料損失範圍。
上述策略中,差異備份逐日累積自週日完整備份後的變更;交易日誌備份則銜接差異備份之後的變更。若沒有可用的交易日誌備份,通常只能復原到最新可還原的完整或差異備份時點。
三種備份的差異與搭配
第 五 題20 分
闡述資料庫發展生命週期(DBLC)常見的六個階段。
登入後即可作答並保存紀錄。
核心觀念
資料庫發展生命週期(Database Life Cycle, DBLC)是資料庫從規劃、設計、建置到維護與調整的完整流程。題目考查常見的六個階段及其先後關係。各教材對階段名稱略有差異,作答時應掌握每階段的主要工作。
解題方法
依資料庫專案由「確認需求」到「持續運作與調整」的順序,說明每個階段的目的與工作:
-
資料庫初始研究(Database Initial Study) 確認組織的問題、目標與資料需求,界定資料庫系統範圍;評估現行作業流程、可行性、資源需求與預期效益,作為是否啟動專案及後續規劃的依據。
-
資料庫設計(Database Design) 將需求轉化為資料庫結構。先建立概念設計,例如實體關係模型,再進行邏輯設計,將模型轉為關聯式資料表並處理正規化,最後進行實體設計,決定檔案組織、索引、儲存與存取方式等。
-
實作與載入(Implementation and Loading) 選定並設定資料庫管理系統(DBMS),依設計建立資料庫物件,例如資料表、限制條件、檢視表及索引;將既有資料轉換、清理後載入新資料庫,並設定使用者、權限及相關應用程式。