109 高普考高考三級 資訊處理 資料庫應用 考古題詳解
第 一 題30 分
某一家圖書公司的關聯式資料庫(Relational Database)包含作者、圖書及寫書三個表格(Table)。
作者表格記錄作者的編號與姓名;圖書表格記錄圖書編號、書名、西元出版年份(例如,2018)、銷售數量(例如,5000);寫書表格記錄作者與圖書的關係,為多對多的關係。
這三個表格的關聯綱要(Relational Schema)如下:
作者(作者編號、作者姓名)
圖書(圖書編號、書名、出版年份、銷售數量)
寫書(作者編號、圖書編號)
有底線的屬性(Attribute)為該表格之主鍵(Primary Key);例如,寫書表格之主鍵為作者編號與圖書編號兩個屬性的組合。寫書表格有作者編號與圖書編號兩個外來鍵,分別參照作者表格與圖書表格的主鍵。
針對下列三個查詢問題,請各寫出一個 SQL 指令來進行查詢。
(一) 列出 2015 至 2019 這五年內出版的每一本圖書之圖書編號與書名。(10 分)
(二) 列出寫過一本以上的書的每一位作者之作者編號。(10 分)
(三) 列出寫過的書之總銷售數量超過十萬本的每一位作者之作者姓名。(10 分)
登入後即可作答並保存紀錄。
本題屬於典型的關聯式資料庫正規化設計架構,實體作者與實體圖書之間存在「多對多()」的關係,透過中介表格「寫書」拆解為兩個「一對多()」關係:
- 作者(<ins>作者編號</ins>, 作者姓名)
- 圖書(<ins>圖書編號</ins>, 書名, 出版年份, 銷售數量)
- 寫書(<ins>作者編號</ins>, <ins>圖書編號</ins>)
其中,「寫書」的(作者編號、圖書編號)為複合主鍵(Composite Primary Key),亦分別為參照「作者」與「圖書」之外來鍵(Foreign Key)。
(一) 列出 2015 至 2019 這五年內出版的每一本圖書之圖書編號與書名。(10 分)
核心觀念
本小題測驗單一表格的資料投影(Projection)與條件選擇(Selection),核心在於數值範圍比對運算子 BETWEEN ... AND ... 或比較運算子(>= 與 <=)的邏輯組合。
解題方法
- 資料來源:所需欄位「圖書編號」、「書名」與條件欄位「出版年份」皆在「圖書」表格中,不需進行多表連接(Join)。
- 欄位選取:使用
SELECT 圖書編號, 書名提取目標屬性。 - 區間篩選:題目要求「2015 至 2019 這五年內」,出版年份為西元整數數值,且包含兩端端點(即閉區間 )。可使用
BETWEEN 2015 AND 2019或出版年份 >= 2015 AND 出版年份 <= 2019進行條件過濾。
選項分析
本題為非選擇題(SQL 程式指令撰寫題),無選項分析。
解題技巧與防失分提醒
BETWEEN A AND B在標準 SQL 中為封閉區間(包含 與 本身)。- 題目限定輸出「圖書編號與書名」,切忌隨手寫
SELECT *,在國家考試中會因投影未依題意要求而被扣分。
(二) 列出寫過一本以上的書的每一位作者之作者編號。(10 分)
核心觀念
本小題測驗分組彙總(GROUP BY)、聚合統計函數(COUNT)與群組條件篩選(HAVING)。
解題方法
- 資料來源最佳化:「寫書」表格記錄每一位作者與其著作的配對。因複合主鍵為(作者編號、圖書編號),同一作者所寫的每本書在該表中皆為唯一一筆記錄。因此,直接統計「寫書」表格即可得知各作者出書量,無須額外連接「作者」表格。
- 分組統計:以作者為單位彙總,語法為
GROUP BY 作者編號,並利用COUNT(*)或COUNT(圖書編號)計算著作總數。 - 題意判讀(「一本以上」的標準界定):
- 國考命題慣例中,命題委員出此題型旨在評量考生是否具備「分組聚合並過濾統計結果」的能力。若解釋為嚴格大於一本(即至少兩本),條件應寫為
HAVING COUNT(*) > 1(或COUNT(*) >= 2)。 - 若依字面法律文義(依公文及一般法律定義,「以上」俱連本數計算),「一本以上」即為 本;但若僅為 本,因「寫書」表記錄的即為有出書之作者,單純下達
SELECT DISTINCT 作者編號 FROM 寫書即包含所有出書記錄,喪失檢定聚合語法之出題目的。 - 因此,最符合命題評分標準的解法為使用
GROUP BY ... HAVING COUNT(*) > 1;考試作答時,以COUNT(*) > 1為主流標準答案。
選項分析
本題為非選擇題(SQL 程式指令撰寫題),無選項分析。
第 二 題20 分
實體關係模式(Entity-Relationship Model)包含了實體(Entity)、關係(Relationship)及屬性(Attribute)三個主要的觀念,其中屬性又分為許多種。
(一) 請定義與區別「必須的屬性」(Required Attribute)與「非必須的屬性」(Optional Attribute)。(10 分)
(二) 請定義與區別「單值屬性」(Single-valued Attribute)與「多值屬性」(Multivalued Attribute)。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題旨在評量實體關係模式(Entity-Relationship Model, ER Model)中「屬性分類(Classification of Attributes)」的核心概念與資料庫設計基礎,主要涵蓋兩大面向:
- 空值完整性約束(Nullability / Optionality):
依屬性是否允許為空值(Null),可區分為「必須的屬性」(Required Attribute)與「非必須的屬性」(Optional Attribute)。此分類決定了資料庫實作時欄位的
NOT NULL約束。 - 基數與值的數量(Value Cardinality): 依單一實體實例(Entity Instance)對應屬性值的個數,可區分為「單值屬性」(Single-valued Attribute)與「多值屬性」(Multivalued Attribute)。此分類直接牽涉實體關係圖轉為關聯式綱要(Relational Schema)時,是否符合第一正規化(1NF)之原子性(Atomicity)要求。
解題方法
本題為標準的觀念申論題,答題架構應具備「嚴謹定義 特徵與差異對比 實例說明 ER 圖表示法 關聯式資料庫對應實作」五個層次:
- 定義(Definition):精確界定屬性的語意範疇與約束條件。
- 實例(Example):各舉出 1 至 2 個具代表性的資訊系統實務欄位(如身分證字號、電話、證照)。
- ER 圖表示法(ER Notation):說明陳氏模型(Chen's Notation)或常見標記法(如 Crow's Foot Notation)中的圖形符號。
- 關聯式模型轉換(Relational Mapping):說明將概念模型落實到關聯式資料庫(SQL DDL)時的具體處理規則(如
NOT NULL約束、拆分獨立子表以符合 1NF)。 - 綜合比較表(Comparison Table):將兩組概念條列對比,使閱卷委員一目了然,爭取滿分。
選項分析
本題為專業科目申論題,非選擇題。兩小題之評分與論述切入點分析如下:
- 第 (一) 小題(10 分):
核心在於「資料完整性約束(Integrity Constraints)」與「空值(Null)容許性」。論述時必須清楚說明兩者在業務邏輯(Business Rules)上的強制性差異,以及轉入 SQL DDL 時的
NOT NULL語意。 - 第 (二) 小題(10 分): 核心在於「屬性值的數量」與「關聯式資料庫正規化(Normalization)」。單值屬性可直接對應資料表單一欄位;多值屬性若直接置於單一欄位會破壞第一正規化(1NF),答題時務必寫出「拆出新表,以原主鍵加上多值屬性共同組成複合主鍵」的轉換標準作法。
解題技巧
- 辨析混淆概念:
- 勿將「多值屬性(Multivalued)」與「複合屬性(Composite)」混淆。多值屬性是指「同一語意有複數個值」(如:一位員工擁有多張證照);複合屬性是指「一個屬性由多個子屬性組成」(如:地址由縣市、行政區、街道組成)。
- 答題加分關鍵(正規化與轉換):
- 申論題若只寫定義只能拿到及格分數(約 6-7 成)。若能進一步補充「轉為關聯式資料庫(Relational Database)時的實作規則」,即展現系統分析與資料庫實務能力,為獲取滿分(10 分)之關鍵。
- 記憶口訣:
- 必須/非必須看「Null」(有無值);單值/多值看「個數」(一個值還是一組值)。
【答案】
(一) 「必須的屬性」(Required Attribute)與「非必須的屬性」(Optional Attribute)之定義與區別
- 定義:
- 必須的屬性(Required Attribute): 指在實體中為不可或缺的屬性。在系統的業務規則下,每個實體實例(Entity Instance)在該屬性上必須具備明確且具體的值,絕對不允許為空值(Null)。
- 非必須的屬性(Optional Attribute):
第 三 題30 分
正規化理論(Normalization Theory)中包含了「第一正規型式」(First Normal Form, 1NF)、「第二正規型式」(Second Normal Form, 2NF)及「第三正規型式」(Third Normal Form, 3NF)等正規型式(Normal Form)。
請說明一個關聯(Relation)要屬於各個正規型式,分別需要符合哪些條件。
登入後即可作答並保存紀錄。
核心觀念
本題測驗關聯式資料庫(Relational Database)正規化理論(Normalization Theory)的基礎層級定義。正規化的主要目標在於藉由分析函數相依(Functional Dependency, FD),將不良的關聯綱目(Relation Schema)分解,以消除資料重複性(Data Redundancy),並防止新增異常(Insertion Anomaly)、刪除異常(Deletion Anomaly)與修改異常(Modification Anomaly)。
解答本題需掌握以下核心定義:
- 原子值(Atomic Value):不可再分割的單一資料單元。
- 候選鍵(Candidate Key, CK):具備唯一性(Uniqueness)與最小性(Minimality)的屬性集合。
- 主鍵屬性(Prime Attribute):包含於任何一個候選鍵中的屬性;反之為非主鍵屬性(Non-prime Attribute)。
- 完全函數相依(Full Functional Dependency):若 ,且對於 的任何真子集 ,皆滿足 。
- 部分函數相依(Partial Functional Dependency):若 ,且存在 的某一真子集 ,使得 。
- 遞移函數相依(Transitive Functional Dependency):若 且 (其中 且 ),則存在 的遞移關係。
解題方法
本題採「階層漸進法」闡述各正規型式的門檻條件。正規化具備階層包含關係(),高階正規型式必須先滿足低階正規型式之要求,再消除特定型態的異常依賴。
一、第一正規型式(First Normal Form, 1NF)
一個關聯 屬於 1NF,必須符合下列條件:
- 值域具原子性(Atomicity):關聯中每一個屬性(Attribute)的值域(Domain)皆僅能包含單一不可分割的純量值(Atomic Value)。
- 消除重複群(Repeating Groups)與多值屬性(Multivalued Attributes):不允許出現組合屬性(Composite Attribute)、巢狀關聯(Nested Relation)或集合型態屬性。
- 元組具有唯一識別性:定義出能唯一識別每筆資料的主鍵(Primary Key)。
二、第二正規型式(Second Normal Form, 2NF)
一個關聯 屬於 2NF,必須符合下列條件:
- 符合 1NF:關聯必須已滿足第一正規型式的所有要求。
- 消除部分函數相依(No Partial Functional Dependency):關聯中的每一個非主鍵屬性(Non-prime Attribute),都必須完全函數相依(Fully Functionally Dependent)於該關聯的任何一個候選鍵(Candidate Key)。
- 換言之,不允許任何非主鍵屬性僅相依於候選鍵的「真子集合(Proper Subset)」。若候選鍵為單一屬性構成,且已滿足 1NF,則該關聯自然滿足 2NF。
三、第三正規型式(Third Normal Form, 3NF)
一個關聯 屬於 3NF,必須符合下列條件:
- 符合 2NF:關聯必須已滿足第二正規型式的所有要求。
第 四 題20 分
線上分析處理(On-Line Analytical Processing, OLAP)為資料倉儲系統中主要的資料分析方式,其中包括向下鑽取(Drill Down)與向上鑽取(Drill Up)兩種運算。
請分別針對這兩種 OLAP 運算,首先說明其運算方式,然後舉例說明其可能的應用方式。
登入後即可作答並保存紀錄。
核心觀念
本題評量資料倉儲(Data Warehouse)多維度資料模型(Multidimensional Data Model)中的線上分析處理(OLAP)核心運算。主要涉及以下重要觀念:
- 多維度資料模型與資料立方體(Data Cube):將企業營運資料依「維度(Dimension)」(如時間、地區、產品)與「量度(Measure)」(如銷售額、成本、數量)進行組織。
- 概念階層(Concept Hierarchy / Dimension Hierarchy):維度內部具有層級關係,定義了屬性值從低抽象層次(細節)到高抽象層次(概括)的映射路徑。例如:時間維度的「年 季 月 日」;地理維度的「國家 區域 城市 門市」。
- 資料顆粒度(Granularity / Level of Detail):指資料庫中資料單位所代表的細緻程度。階層越低,顆粒度越細(Fine-grained);階層越高,顆粒度越粗(Coarse-grained)。
- OLAP 基本運算:包括向下鑽取(Drill Down)、向上鑽取(Drill Up / Roll Up)、切片(Slice)、切塊(Dice)與旋轉(Pivot)。
解題方法
本題為標準的技術名詞定義與情境應用申論題。解題時應採取結構對稱的切入方式:
- 運算方式的界定:
- 必須從「概念階層的移動方向」、「資料顆粒度與彙總層級的變化」,以及「維度的增減」三個技術維度進行精準定義。
- 應用實例的鋪陳:
- 避免空泛口號,必須設計一套連貫的商業情境(如連鎖零售業銷售分析)。
- 清楚寫出「操作前的資料狀態 執行的操作 操作後的資料狀態 帶來的決策效益」。
選項分析
本題為問答申論題,無選擇題選項。閱卷評分要點與配分權重切入分析如下:
- 向下鑽取運算方式(佔 25%):是否明確說明「沿概念階層向下」或「引入新維度」,並提及資料顆粒度變細、展現更多細節。
- 向下鑽取應用實例(佔 25%):能否結合維度(如由季降至月、由總類降至品項)呈現「發現異常、追查根因」的決策應用。
- 向上鑽取運算方式(佔 25%):是否明確說明「沿概念階層向上」或「移除維度」,並提及使用聚合函數(SUM, AVG 等)提高資料概括程度。
- 向上鑽取應用實例(佔 25%):能否展現「忽略無關細節、掌握宏觀趨勢」以提供高階管理者制定策略的應用。
解題技巧
- 記憶對比公式:
- Drill Down(向下鑽取):階層向下(或加維度) 顆粒度變細 細節增加 適用於「問題除錯與根因分析」。
- Drill Up / Roll Up(向上鑽取):階層向上(或減維度) 顆粒度變粗 資料彙總 適用於「高階管理決策與宏觀趨勢評估」。
- 常見答題陷阱:
- 陷阱一(定義不全):多數考生只答「沿階層上下移動」,漏掉「增加維度(Add dimension)」也是向下鑽取、「移除維度(Drop dimension)」也是向上鑽取的一種方式。寫出這點能展現專業深度。
- 陷阱二(範例缺乏層級對照):舉例時未指明具體維度名稱與層級轉換(例如僅寫「看銷售額變成看更細的銷售額」),應明確寫出「從『2023 全年』細化至『第一季至第四季』」。