115 關務特考三等 資訊處理(選試英文) 資料庫應用 考古題詳解
第 一 題30 分
假設某家銀行定義了一個借貸表格(BORROWER)管理顧客借款的資料,包含借款顧客(ID)、借款編號(LoanNO)和金額(Amount)等三個屬性。
請利用 SQL 語法,首先在資料庫系統中定義一個叫做 CustSummary 的視觀表(View),表達每一個顧客的借款總數量和借款總金額。其次,利用此視觀表和 SQL 查詢句,輸出身分證字號為「A123456789」的借款總金額。
最後,請說明為何此視觀表只適用於查詢資料,而不適用於建立新的資料。
登入後即可作答並保存紀錄。
核心觀念
本題考查 SQL 的視觀表(View)、彙總函數與 GROUP BY:
COUNT(*)計算每位顧客的借款筆數。SUM(Amount)加總每位顧客的借款金額。GROUP BY ID將資料依顧客分組,產生每位顧客一筆彙總結果。- 視觀表是以查詢定義的虛擬資料表;本題的視觀表含有分組與彙總結果,因此適合查詢,但不適合直接新增借款資料。
解題方法
先依顧客身分證字號 ID 分組,再計算各組的借款筆數與金額總和。建立視觀表後,以 WHERE 條件篩選指定顧客,查詢其總借款金額。
1. 建立視觀表
CREATE VIEW CustSummary AS
SELECT ID,
COUNT(*) AS LoanCount,
SUM(Amount) AS TotalAmount
FROM BORROWER
GROUP BY ID;
LoanCount 表示該顧客的借款筆數,TotalAmount 表示該顧客的借款金額總和。GROUP BY ID 使每位顧客在 CustSummary 中只產生一筆彙總資料。
2. 查詢指定顧客的借款總金額
SELECT TotalAmount
FROM CustSummary
WHERE ID = 'A123456789';
第 二 題30 分
BCNF(Boyce-Codd Normal Form)是設計關聯式資料庫綱要時常遵守的形式,請說明如何判斷一個表格是否符合 BCNF 的規定?若不符合會帶來何種問題?
下列定義表格 的綱要、函數相依性和三筆範例資料:
| A | B | C | D |
|---|---|---|---|
| a1 | b1 | c1 | d1 |
| a1 | b2 | c1 | d2 |
| a2 | b1 | c1 | d3 |
請根據上述資訊詳細解釋為何該表格不符合 BCNF?並以範例資料明確指出此表格可能產生的問題。
登入後即可作答並保存紀錄。
核心觀念
BCNF(Boyce-Codd Normal Form)的判斷規則是:
對關係綱要 中每一個非平凡函數相依 ,決定項 必須是 的超鍵。
- 非平凡函數相依:。
- 超鍵:能唯一決定關係中所有屬性的屬性集合。
- 候選鍵:極小超鍵。
若存在某個非平凡函數相依 ,但 不是超鍵,則 不符合 BCNF。
解題方法:先求候選鍵
題目給定:
1. 判斷 是否為候選鍵
由 ,可得:
因此 是超鍵。
因為單獨使用 或 均無法決定全部屬性,所以 是候選鍵。
2. 判斷 是否為候選鍵
由 ,可得:
再由 ,可得:
因此:
所以 也是候選鍵。
3. 判斷 是否為超鍵
由 ,只能得到:
無法得到 與 ,因此 不是超鍵。
為何不符合 BCNF
函數相依 的決定項 是候選鍵,因此符合 BCNF 要求。
但函數相依:
是非平凡函數相依,而 不是超鍵,因此違反 BCNF。
所以:
違反的關鍵原因是:
非超鍵 可以決定屬性 。
以範例資料說明問題
題目資料如下:
| A | B | C | D |
|---|---|---|---|
| a1 | b1 | c1 | d1 |
| a1 | b2 | c1 | d2 |
| a2 | b1 | c1 | d3 |
1. 直接違反函數相依
資料中有:
- 第 1 筆: 時,
- 第 2 筆: 時,
同一個 對應兩個不同的 值,因此:
第 三 題20 分
資料倉儲(Data Warehouse)架構常被用來整合多種資料來源以進行資料分析,而建立資料倉儲的其中一個重要步驟是進行 ETL(Extract, Transform, Load)。
首先,請詳述該步驟的功用。其次,收集資料的時機有同步(Synchronous)和非同步(asynchronous)兩種,請詳述此兩種做法的差別和優缺點。
登入後即可作答並保存紀錄。
核心觀念
資料倉儲(Data Warehouse)整合來自不同系統、格式與時間範圍的資料,供分析、報表及決策支援使用。ETL 是將來源資料整理成適合資料倉儲使用的流程,名稱分別代表:
- Extract(擷取):從資料庫、檔案、應用系統或外部服務等來源取得所需資料。
- Transform(轉換):清理、整合及轉換資料,使資料符合目標資料倉儲的格式與規則。
- Load(載入):將處理完成的資料寫入資料倉儲,供後續查詢與分析。
解題方法
作答時先依序說明 ETL 三個階段,再從「資料何時送入資料倉儲、是否等待來源系統完成」切入,比較同步與非同步收集。兩者的核心差異在於資料收集與來源系統交易或作業的耦合程度,以及資料進入倉儲的延遲。
ETL 的功用
- 擷取資料:依排程或事件從多個來源取得完整或增量資料,並保留必要的來源識別、擷取時間等資訊。
- 轉換資料:
- 清除重複、錯誤、缺漏或不合格式的資料。
- 統一不同來源的欄位名稱、資料型態、編碼、單位及日期格式。
- 對應不同系統中的代碼與欄位,整合相同實體的資料。
- 依分析需求計算衍生欄位、彙總資料,並檢查資料品質與業務規則。
- 載入資料:將整理後的資料載入目標資料倉儲;可採初始全量載入或後續增量載入,並處理新增、更新及必要的歷史資料保存。
因此,ETL 的主要功用是讓異質來源資料變得一致、正確、可追溯且適合分析,同時減少分析查詢直接干擾營運系統的情形。
同步與非同步資料收集
| 比較項目 | 同步(Synchronous) | 非同步(Asynchronous) |
|---|---|---|
| 作法 | 來源系統執行資料操作時,同時或立即將資料送往資料倉儲;通常須等待相關作業完成或回覆。 |
第 四 題20 分
資料庫管理系統中有一種特別的資料結構稱作資料字典(Data Dictionary)。請說明資料字典中存放何種資料,並提出至少三類,以及關聯式資料庫系統通常如何實作資料字典。
登入後即可作答並保存紀錄。
核心觀念
資料字典(Data Dictionary)是資料庫管理系統(DBMS)用來描述資料庫本身的「中繼資料」(metadata),也就是描述資料的資料。它記錄資料庫的結構、限制與管理資訊,供 DBMS 在建立、查詢、修改及管理資料庫時使用。
資料字典常見的內容至少包括下列三類:
- 資料庫結構資訊:資料表、欄位名稱與型態、欄位長度、檢視表、索引及資料表間的關係。
- 限制條件資訊:主鍵、外鍵、唯一性限制、
NOT NULL、檢查限制及參照完整性規則。 - 使用者與權限資訊:使用者、角色,以及對資料表、檢視表或其他資料庫物件的存取權限。
- 管理與統計資訊:資料庫物件的擁有者、建立或修改資訊,以及資料分布、列數等統計資料;DBMS 可利用統計資料選擇查詢執行計畫。
解題方法
題目分成兩部分作答:先說明資料字典儲存的是何種資料,再列舉至少三類內容,最後說明關聯式資料庫系統如何實作。
回答第一部分時,抓住「中繼資料」的定義,指出資料字典描述的是資料庫中的資料與物件,而不是一般使用者存放的業務資料。列舉時可從「結構、限制、權限、管理與統計」整理,選出至少三類並附具體例子。