107 鐵路特考高員三級 資訊處理 資料庫應用 考古題詳解
第 一 題20 分
檔案系統之後發展資料庫管理系統,請說明資料庫管理系統出現的主要緣由與主要議題。(10 分)
古典資料庫管理系統之後發展出 NoSQL 資料庫系統,請說明 NoSQL 資料庫系統出現的主要緣由與主要議題。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題為典型之「資料庫技術演進史與架構比較」申論題,命題核心在於評量考生對資料儲存架構兩次重大典範轉移(Paradigm Shift)的理解:
- 第一次轉移(檔案系統 資料庫管理系統 DBMS):
- 核心定義:三層綱要架構(ANSI/SPARC Three-Schema Architecture)、資料獨立性(Data Independence)、交易之 特性(Atomicity, Consistency, Isolation, Durability)。
- 關鍵理論:檔案系統所面臨之程式與資料高度相依、資料重複與不一致性、缺乏統一之並行控制與故障復原機制。
- 第二次轉移(古典關聯式 DBMS NoSQL 資料庫系統):
- 核心定義:水平擴展(Scale-out)相對於垂直擴展(Scale-up)、無綱要(Schema-less / Dynamic Schema)。
- 關鍵定理與模型: 定理(Consistency, Availability, Partition Tolerance)、 定理、 模型(Basically Available, Soft state, Eventual consistency)對比 模型。
解題方法
國家考試申論題評分採「分項給分」,本題兩小題各佔 10 分,回答時應採取「結構化條列法」,將各小題清楚拆解為「主要緣由」與「主要議題」兩大構面,切入策略如下:
- 第一小題切入點:以「檔案處理系統(File-Processing System)之結構性缺陷」作為出現緣由;再以「DBMS 為了克服上述缺陷所發展出的系統層核心技術」作為主要議題。
- 第二小題切入點:以「Web 2.0、雲端運算與巨量資料(Big Data 3V:Volume, Velocity, Variety)對古典關聯式資料庫(RDBMS)造成的擴展極限」作為出現緣由;再以「分散式架構下的理論權衡(CAP/BASE)、資料模型多樣性與一致性保證」作為主要議題。
- 論述層次:每一點皆先標示「黑體關鍵詞小標」,緊接著以一至二句精準定義其技術機制,展現專門技術素養。
選項分析
本題為申論題,無客觀選項。為利考生掌握各世代儲存系統之技術代差與演進邏輯,特將三者之核心特徵對照分析如下:
| 評估維度 | 檔案系統(File System) | 古典資料庫系統(RDBMS) | NoSQL 資料庫系統 |
|---|---|---|---|
| 資料架構 | 散置檔案,由各應用程式自行定義格式 | 嚴謹結構(表格、正規化),固定綱要(Rigid Schema) | 多樣化模型(Key-Value, Document, Column, Graph),動態綱要(Schema-less) |
| 資料獨立性 | 極低(程式與資料高度相依) | 高(具備實體與邏輯資料獨立性) | 高(應用層直接處理彈性物件/資料結構) |
| 事務保證 | 無內建交易機制,須於應用層土法煉鋼 | 強制遵循 特性,強調強一致性(Strict Consistency) | 多遵循 模型,追求最終一致性(Eventual Consistency) |
| 擴展機制 | 依賴單機作業系統檔案管理 | 主要採垂直擴展(Scale-up,增加單機 CPU/RAM/SSD) | 原生支援水平擴展(Scale-out,節點叢集自動分片 Sharding) |
| 查詢機制 | 無統一語言,依賴自訂程式碼依序存取 | 宣告式查詢語言(SQL),內建成本式查詢最佳化(CBO) | API、專用查詢語法,多不支援跨節點複雜 JOIN |
解題技巧
- 閱卷關鍵字佈局:
- 第一小題必寫關鍵字:
程式與資料相依(Program-Data Dependence)、資料重複性與不一致(Data Redundancy & Inconsistency)、資料獨立性(Data Independence)、ACID、並行控制(Concurrency Control)。 - 第二小題必寫關鍵字:
水平擴展(Scale-out)、巨量資料(3V)、動態綱要(Schema-less)、CAP 定理、BASE 模型、最終一致性(Eventual Consistency)、資料分片(Sharding)。
- 答題版面配置:
- 本題共 20 分,考場標準作答篇幅約為 1.5 至 2 頁。
- 嚴格控制配分比例:第一題佔 1 頁(緣由 4 點、議題 4 點),第二題佔 1 頁(緣由 4 點、議題 4 點),層次編號採用「一、(一) 1. (1)」格式,切忌寫成無分段的長篇散文。
- 避免常見陷阱:
- 勿將 NoSQL 解釋為「完全不用 SQL 或完全否定關聯式」,其標準意涵為「Not Only SQL」,強調針對特定場景採用合適的資料模型。
- 說明 CAP 定理時,必須強調在分散式網路環境下,網路分割(Partition Tolerance)為客觀現實,因此實務上系統是於一致性()與可用性()之間進行權衡(Trade-off)。
【答案】
一、資料庫管理系統(DBMS)出現之主要緣由與主要議題
(一) 主要緣由(檔案系統之缺陷)
- 資料重複與不一致性(Data Redundancy and Inconsistency):早期檔案系統由不同應用程式各自建立專用資料檔,導致相同資料重複儲存在多處;當進行更新時若未能同步修改所有檔案,將造成資料內容衝突與邏輯不一致。
第 二 題20 分
關聯式資料庫在新增(insert)和刪除(delete)時,為了維持關聯式資料庫狀態的一致性(integrity),各需先做哪些檢查?若不符合,有幾種處理的方法?
登入後即可作答並保存紀錄。
核心觀念
本題評量關聯式資料庫管理系統(RDBMS)中,資料異動操作(DML)如何維護資料庫一致性(Database Consistency)與完整性限制條件(Integrity Constraints)。核心概念源自關聯式資料模型理論(Relational Model):
- 實體完整性(Entity Integrity):主鍵(Primary Key, PK)的屬性值必須唯一(Unique)且不得為空值(NOT NULL)。
- 參考完整性(Referential Integrity):外來鍵(Foreign Key, FK)的值必須參照關聯主檔中已存在的有效主鍵值,或在允許情況下設為空值(NULL)。
- 網域完整性(Domain Integrity):欄位屬性值必須落在定義的型態、格式、取值範圍(Range)及長度內,並遵循
NOT NULL與CHECK限制。 - 鍵值唯一性(Key / Uniqueness Constraint):所有候選鍵(Candidate Key)或標註為
UNIQUE的欄位值不得重複。 - 使用者自訂完整性(User-Defined Integrity):企業自訂之商業邏輯規則(透過 Assertion 或 Trigger 實現)。
解題方法
本題為高員三級標準申論題,答題架構應先明確拆解「新增(Insert)」與「刪除(Delete)」兩大操作對完整性的潛在衝擊與檢查項目,再系統性歸納「違反限制時的處理方法」(包含通用處理與 SQL 標準定義的參考動作)。
一、 新增(Insert)時的檢查項目
新增一筆元組(Tuple)可能同時破壞多項限制,系統依序需做以下檢查:
- 網域完整性檢查(Domain Integrity Check):
- 檢查輸入資料的型態、長度、格式是否符合 Schema 定義。
- 檢查是否有非空欄位(NOT NULL)被給予 NULL 值。
- 檢查是否通過該欄位定義的
CHECK條件。
- 實體完整性檢查(Entity Integrity Check):
- 檢查新增資料的主鍵(PK)是否包含 NULL。
- 檢查主鍵值是否已存在於該資料表中(主鍵唯一性重複檢查)。
- 唯一性限制檢查(Uniqueness Check):
- 若資料表定義了其他候選鍵或
UNIQUE限制,檢查新資料之相應屬性值是否與既有資料重複。
- 參考完整性檢查(Referential Integrity Check):
- 若新增的資料表包含外來鍵(FK),檢查該外來鍵的值是否已存在於被參照資料表(Referenced Table)的主鍵中,或該外來鍵是否為合法允許的 NULL 值。
- 使用者自訂完整性檢查(User-Defined Integrity Check):
- 觸發程序(Triggers)或整體宣告條件(General Assertions)之商業邏輯檢驗。
二、 刪除(Delete)時的檢查項目
刪除操作將資料自資料表中移除,不會破壞網域完整性、實體完整性或唯一性限制;其主要威脅在於關聯關係的斷鏈:
- 參考完整性檢查(Referential Integrity Check):
- 系統必須檢查被刪除記錄的主鍵(或候選鍵)值,是否正被其他子資料表(Referencing Table)的外來鍵(FK)所參照引用。
- 若存在子資料表引用該主鍵,直接刪除將導致子資料表產生「孤兒記錄(Orphan Records)」,破壞參考完整性。
- 使用者自訂完整性檢查(User-Defined Integrity Check):
- 檢查是否有設定禁止刪除特定狀態資料之商業規則(如透過
INSTEAD OF DELETE或BEFORE DELETE觸發程序所定義之限制)。
三、 不符合限制時的處理方法
當檢查發現違反完整性限制時,關聯式資料庫系統提供以下處理方法:
第 三 題40 分
假設有一關聯 ,其主鍵(primary key)係由 與 兩屬性(attributes)所組成,並已知關聯 的 與 兩屬性間具有如下的功能相依:( 屬性可以決定 屬性)。
試問:
(一)若關聯 未進行正規化之處理,則關聯 在資料庫的使用上會有怎樣的問題存在?舉出資料實例加以說明。(20 分)
(二)請用關聯式資料庫正規型式處理這個問題。(10 分)
(三)請檢驗此更新過的綱要能否符合 BCNF(Boyce-Codd Normal Form),並陳述理由。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題的核心在於關聯式資料庫的正規化理論(Normalization Theory)、功能相依(Functional Dependency, FD)與資料異常(Anomalies)。評量的核心知識點包含:
- 功能相依與鍵(Keys)的定義:
- 主鍵(Primary Key, PK)為 ,故有非尋常相依(Non-trivial FD):。
- 題目給定相依:。
- 超鍵(Super Key):能唯一決定關聯中所有屬性的屬性集合。
- 主屬性(Prime Attribute):包含於任一候選鍵中的屬性(此處為 );其餘為非主屬性(Non-prime Attribute,此處為 )。
- 正規型式(Normal Forms)判定標準:
- 第一正規化(1NF):關聯中所有屬性的值皆為單一值(原子性,Atomic)。
- 第二正規化(2NF):符合 1NF,且每個非主屬性皆「完全功能相依」(Fully Functionally Dependent)於候選鍵,即消除部分相依(Partial Dependency)。
- 第三正規化(3NF):符合 2NF,且不存在非主屬性對候選鍵的「遞移相依」(Transitive Dependency)。形式定義為:對於關聯中所有非尋常相依 ,必須滿足「 為超鍵」或「 為主屬性」。
- BCNF(Boyce-Codd Normal Form):比 3NF 更嚴格。對於關聯中所有非尋常相依 , 必須為超鍵(不允許 為主屬性的例外)。
- 未正規化造成的資料異常(Data Anomalies):
- 資料重複(Data Redundancy)
- 修改異常(Update Anomaly)
- 新增異常(Insertion Anomaly)
- 刪除異常(Deletion Anomaly)
- 無失真連接分解(Lossless-Join Decomposition):
- 將關聯 分解為 與 ,必須滿足 或 ,以保證透過自然連接(Natural Join)能完全還原原始資料,不產生虛假元組(Spurious Tuples)。
解題方法
(一)未正規化存在之問題與資料實例說明
1. 現狀正規型式檢驗
- 關聯 的候選鍵/主鍵為 。
- 屬性分類:
- 主屬性:
- 非主屬性:
- 功能相依集合 。
- 2NF 檢驗:由於不存在 或 的部分功能相依,所有非主屬性皆完全依賴於主鍵 ,故關聯 符合 2NF。
- 3NF 檢驗:
- 存在非尋常相依 。
- 不是 的超鍵( 無法決定 )。
- 不是主屬性( 不在候選鍵 中)。
- 由於 且 (其中 ),存在非主屬性對主鍵的遞移相依(Transitive Dependency)。因此,關聯 未達 3NF。
2. 實體資料實例設計
為具體說明,將抽象屬性對應至常見的實務情境:
- :學生編號(
StudentID) - :課程代碼(
CourseID) - :授課教師編號(
TeacherID) - :學期成績(
Score) - :教師研究室位置(
Office)
| (學生) | (課程) | (教師) | (成績) | (研究室) |
|---|---|---|---|---|
| 85 | ||||
| 90 | ||||
| 78 | ||||
| 88 |
3. 使用上存在的四大問題
- 資料重複(Data Redundancy):
- 說明:每當有一位學生選修 (由教師 授課),教師 的研究室 就必須重複儲存一次,浪費儲存空間。
- 修改異常(Update Anomaly):
- 說明:若教師 的研究室從 搬遷至 ,系統必須逐一修改所有包含 的資料列。若只更新了部分資料列(例如只更新第一列而漏改第二、三列),將造成同一位教師在資料庫中出現不同研究室的資料不一致現象。
- 新增異常(Insertion Anomaly):
- 說明:若學校新聘一位教師 (研究室為 ),但在尚未有學生選修該教師的課程之前,主鍵屬性 (學生)與 (課程)皆為空值(
NULL)。根據關聯式資料庫的實體完整性限制(Entity Integrity Constraint),主鍵不得為空值,導致無法單獨新增教師與其研究室的對應資料。
- 刪除異常(Deletion Anomaly):
- 說明:若選修課程 的學生 退選,資料庫將該筆元組(Tuple)刪除。
第 四 題20 分
區塊鏈(blockchain)是新興的資料庫態樣,請說明其主要特性。(10 分)
請分析提出如何將區塊鏈應用於改善鐵路售票系統。(10 分)
登入後即可作答並保存紀錄。
核心觀念
- 區塊鏈的資料庫本質:區塊鏈本質上是一種分散式、僅能追加(Append-Only)、具備密碼學安全保證與拜占庭容錯能力的新興分散式帳本資料庫(Distributed Ledger Database)。與傳統由資料庫管理員(DBA)集中管理的關聯式資料庫(RDBMS)相比,其狀態轉移仰賴去中心化節點間的共識協定驅動。
- 鐵路售票業務痛點:傳統鐵路售票系統常見問題包括黃牛程式掃票囤積、二手票券轉售真偽難辨、跨運具(如鐵路、捷運、客運)聯票清分結算耗時繁複、內部票務異動審計困難,以及節慶尖峰時段高併發(High Concurrency)交易造成的系統瓶頸。
- 技術落地評估:鐵路售票具備高交易輸送量(TPS)需求,因此技術評估應排除交易延遲高、手續費昂貴的「公有鏈」,而採用權限受控的「聯盟鏈(Consortium Blockchain)」搭配「鏈下快速撮合、鏈上存證結算」的混合架構。
解題方法
- 第一子題(特性說明,10 分):
- 從資料結構、資料庫存取控制、一致性協定、密碼學應用及可程式化邏輯五個維度,嚴謹說明區塊鏈的核心技術特徵。
- 需點出關鍵技術名詞(如分散式帳本、SHA-256 雜湊鏈結、Merkle Tree、共識機制、智慧合約、Append-only)。
- 第二子題(鐵路應用分析,10 分):
- 針對鐵路售票具體情境,避免空泛宣傳區塊鏈,須提出務實的系統改善方案。
- 分為四個核心面向切入:票券數位資產化(防偽)、智慧合約控管二手轉讓(防黃牛)、跨運具多方清分(自動對帳)、雙層架構設計(兼顧效能與可擴展性)。
選項分析
本題為申論題,無選擇題選項。作答時須採階層式列點標題,條理分明,展現資料庫架構師與交通領域業務分析的整合能力。
解題技巧
- 切中業務痛點:第二子題若僅回答「去中心化、不易當機」,分數難以突出;必須緊扣「鐵路」專屬情境(如春節搶票、黃牛退轉票、異質運具拆帳)。
- 防範效能陷阱:公務人員考試強調技術可行性,若盲目提出「每筆購票都上公有鏈(如 Bitcoin、以太坊)驗證」,會因 TPS 過低(約 7~30 TPS)被扣分。務必強調採用聯盟鏈(Consortium Blockchain)與鏈上鏈下混合設計(Off-chain matching, On-chain settlement)。
- 關鍵字覆蓋率:閱卷老師評閱標準在於關鍵詞,作答須涵蓋:分散式帳本(DLT)、密碼學雜湊(Hash)、不可竄改性(Immutability)、共識機制、智慧合約(Smart Contracts)、數位身分識別(DID)。
【答案】
一、區塊鏈之核心特性分析(10 分)
區塊鏈係一種整合點對點網路(P2P)、密碼學技術、共識演算法與智慧合約的新型分散式帳本資料庫,其主要特性如下:
- 去中心化與分散式儲存(Decentralization & Distributed Ledger): 資料分散儲存於網路各參與節點,無單一中央伺服器或主控權限,消除單點故障(Single Point of Failure, SPOF)風險;所有節點共同保存帳本完整副本。
- 密碼學鏈結與不可竄改性(Cryptographic Linking & Immutability):