110 國安局特考三等 資訊組(選試英文) 資料庫應用 考古題詳解
第 一 題30 分
某一家公司的關聯式資料庫(Relational Database)包含部門、員工與眷屬三個表格(Table)。
部門表格記錄部門的編號、名稱、年度預算;員工表格記錄員工的編號、姓名、所屬部門的編號;眷屬表格記錄員工編號、眷屬姓名、性別。
這三個表格的關聯綱要(Relational Schema)如下:
部門(部門編號、部門名稱、年度預算)
員工(員工編號、員工姓名、部門編號)
眷屬(員工編號、眷屬姓名、性別)
有底線的屬性(Attribute)為該表格之主鍵(Primary Key)。例如,眷屬表格之主鍵為員工編號與眷屬姓名兩個屬性的組合。
員工表格有一個外來鍵:部門編號,參照部門表格的主鍵。眷屬表格有一個外來鍵:員工編號,參照員工表格的主鍵。
針對下列三個查詢問題,請各寫出一個 SQL 指令來進行查詢。
(一)列出年度預算小於 500,000 的每一個部門之部門名稱。(10 分)
(二)列出部門名稱為「資訊部」的每一位員工之員工編號與員工姓名。(10 分)
(三)列出眷屬人數大於 1 的每一個員工之員工編號。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查基本 SQL 查詢,包括條件篩選、跨表連結,以及分組後以彙總條件篩選。
WHERE:篩選個別資料列。JOIN:依照外鍵與主鍵的對應關係,連結不同資料表。GROUP BY:將資料依指定屬性分組。HAVING:篩選分組後的結果;搭配COUNT可計算每組的資料筆數。
解題方法
(一)列出年度預算小於 500,000 的部門名稱
部門名稱與年度預算都在「部門」表格中,因此直接查詢該表,並以 WHERE 篩選預算低於 500,000 的資料列。
SELECT 部門名稱
FROM 部門
WHERE 年度預算 < 500000;
(二)列出「資訊部」每位員工的員工編號與姓名
「資訊部」名稱在「部門」表格,員工編號與姓名在「員工」表格,因此依兩表共同的部門編號連結,再篩選部門名稱為「資訊部」的員工。
SELECT 員工.員工編號, 員工.員工姓名
FROM 員工
JOIN 部門
ON 員工.部門編號 = 部門.部門編號
WHERE 部門.部門名稱 = '資訊部';
第 二 題30 分
是一個關聯式資料庫表格的綱要, 為表格的名稱,、、、 為表格的屬性, 為表格的主鍵(Primary Key)。另外,該表格有下列功能相依(Functional Dependency):
(一)請問表格 符合第幾正規型式(Normal Form)?請說明理由。(10 分)
(二)表格 應該要正規化到第幾正規型式才適當呢?請將表格 正規化到適當的正規型式,寫出正規化之後每一個表格的綱要,包括表格名稱、屬性、主鍵,以及外來鍵(如果有外來鍵的話)。(20 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查正規化的判斷,以及如何依功能相依分解關聯綱要。
- 候選鍵與主鍵:能決定關係中所有屬性的最小屬性集合為候選鍵;題目已指定 為主鍵。
- 第二正規型式(2NF):關係符合 1NF,且每個非主屬性都完全相依於每一候選鍵,不得只相依於複合候選鍵的一部分。
- 第三正規型式(3NF):對每個非平凡功能相依 ,至少符合下列其中一項: 是超鍵,或 中每個屬性都是主屬性(屬於某個候選鍵)。
- BCNF:對每個非平凡功能相依 , 都必須是超鍵。
解題方法
(一)判斷原表格的正規型式
由 可知 能決定所有屬性,因此 是候選鍵;題目並已指定 為主鍵。因為主鍵只有一個屬性,不存在非主屬性只依賴複合主鍵一部分的情形,所以在符合 1NF 的前提下, 符合 2NF。
再檢查 3NF。題目另給 。 不是超鍵,因為它不能決定 ; 也不是主屬性,因為唯一候選鍵為 , 不屬於候選鍵。因此此功能相依違反 3NF。
亦可由下列相依關係看出傳遞相依:
非鍵屬性 經由非鍵屬性 相依於主鍵 ,所以不符合 3NF。由於 3NF 已不成立,BCNF 也不成立。因此原表格最高符合 2NF。
(二)分解至適當的正規型式
使用違反 3NF 的功能相依 ,將 分解為:
第 三 題20 分
實體關係模式(Entity-Relationship Model)中的關係(Relationship)要描述其基數限制(Cardinality Constraints),包含最小基數(Minimum Cardinality)與最大基數(Maximum Cardinality)。
請定義最小基數與最大基數,並舉例說明。(20 分)
登入後即可作答並保存紀錄。
核心觀念
這題考 ER 模式中,實體參與某個關係的基數限制,也就是描述一個實體個體能參與該關係的最少與最多次數。
以「員工」和「部門」之間的「任職」關係為例,基數限制會回答:一名員工至少要隸屬於幾個部門、最多能隸屬於幾個部門。
解題方法
分別以「至少」和「至多」來定義最小基數與最大基數,並以實際情境說明兩者如何共同描述參與限制。
-
最小基數(Minimum Cardinality):某實體個體參與一項關係的最少次數,表示該實體是否必須參與此關係。
-
最小基數為 :可不參與,屬於部分參與。
-
最小基數為 :至少必須參與一次,屬於全參與。
-
最大基數(Maximum Cardinality):某實體個體參與一項關係的最多次數,用來限制關係的多重性,常以 或 表示。
-
最大基數為 :最多參與一次。
-
最大基數為 :可參與多次, 表示多個,沒有固定為某個數字。
第 四 題20 分
在建置資料倉儲系統(Data Warehousing System)時,資料倉儲中的資料通常是從營運系統(Operational Systems)中透過 ETL 的程序產生出來的;換句話說,資料倉儲系統與營運系統擁有各自的資料,是兩個分離的系統。
請說明將資料倉儲系統與營運系統分離的原因。(20 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查資料倉儲與營運系統的用途差異,以及為何通常以 ETL 將營運資料整理後,載入另一個獨立的資料倉儲。
營運系統(Operational Systems)支援日常交易處理,例如訂單、付款、庫存異動;資料倉儲(Data Warehouse)則整合不同來源的資料,供歷史分析、報表與決策使用。兩者在資料用途、操作型態與效能需求上不同,因此通常分開建置。
解題方法
從「工作負載、資料特性、資料品質、系統影響」四個角度說明分離原因:
- 工作負載不同:營運系統以大量、短時間、頻繁的新增、修改、刪除與查詢為主,屬於 OLTP;資料倉儲以跨期間、跨主題的大量讀取與彙總分析為主,屬於 OLAP。
- 資料型態不同:營運系統著重目前狀態與交易細節;資料倉儲保留歷史資料,並整合不同系統、不同格式的資料。
- 資料處理不同:資料倉儲需經 ETL 進行擷取、清理、轉換與整合,通常會調整資料結構,以利分析。
- 可用性與資源不同:分析查詢可能大量耗用 CPU、記憶體與磁碟 I/O;若直接在營運系統執行,可能拖慢交易處理,影響日常服務。
分離的原因
一、避免分析作業影響交易效能
資料倉儲常執行跨資料表、跨年度的大型查詢、統計彙總及報表產製,耗用資源較多。若與營運交易共用系統,分析工作可能造成資源競爭,使交易回應時間變長,甚至影響訂單、付款等日常作業。分離後,可維持營運系統處理交易所需的效能與穩定性。
二、配合 OLTP 與 OLAP 不同的工作負載
營運系統主要處理 OLTP(線上交易處理),重視交易即時性、並行處理及資料一致性,常有大量小型讀寫操作。資料倉儲主要支援 OLAP(線上分析處理),重視大量資料的讀取、彙總與多維分析。