113 高普考高考三級 資訊處理 資料庫應用 考古題詳解
第 一 題20 分
資料模型(Data Model)是用來描述資料的性質與資料之間的關係,個體關係模型(Entity-Relationship Model, ER Model)是最常用的資料模型。延伸個體關係模型(Enhanced Entity-Relationship Model, EER Model)的塑模概念(Modeling Constructs)主要包括個體(Entity)、關係(Relationship)、屬性(Attribute)及父子型態關係(Supertype/Subtype Relationship)四種,請分別定義這四種塑模概念並舉例說明。
登入後即可作答並保存紀錄。
核心觀念
本題考 EER 模型的四種基本塑模概念:個體、關係、屬性,以及父子型態關係。作答時要說明每一概念的意義,並以同一個實際情境舉例,呈現它們如何共同描述資料及資料間的關聯。
解題方法
可用「資料庫要記錄什麼、彼此如何連結、各自有哪些資料特徵、是否有分類與繼承」的順序說明:
- 個體(Entity):要記錄的對象。
- 關係(Relationship):個體之間的關聯。
- 屬性(Attribute):描述個體或關係的性質。
- 父子型態關係(Supertype/Subtype Relationship):將共通特徵歸入父型態,並以子型態表示特殊類別。
四種塑模概念
一、個體(Entity)
個體是現實世界中可區別、需要在資料庫中記錄的對象,可以是人、物、地點、事件或抽象概念。相似個體的集合稱為個體型態(Entity Type);例如「學生」是個體型態,而學號為 S001 的學生是其中一個個體。
**例子:**大學校務系統中的「學生」、「課程」與「教師」都是個體型態。學生通常以學號識別,課程通常以課程代碼識別。
二、關係(Relationship)
關係是兩個或多個個體之間具有意義的連結。關係型態(Relationship Type)描述這類連結;實際某幾個個體間的連結則是關係實例。關係可依參與的個體型態數量分為一元、二元或多元關係,也可依基數描述一對一、一對多或多對多等限制。
例子:「學生選修課程」是學生與課程之間的二元關係。一名學生可以選修多門課程,一門課程也可以有多名學生選修,因此通常是多對多關係。
三、屬性(Attribute)
屬性是用來描述個體或關係特徵的資料項目。每項屬性有其值域(Domain),其值須符合該屬性的型態或允許範圍。
第 二 題30 分
某醫院的關聯式資料庫綱要(Relational Database Schema)包括下列兩個表格:
表格一為住院病患,包括病患編號、病患姓名、病房編號、護理師編號四個欄位,病患編號為主鍵;護理師編號為外來鍵。
表格二為護理師,包括護理師編號、護理師姓名、月薪三個欄位;護理師編號為主鍵。
對於下列三個查詢問題,請各寫出一個 SQL SELECT 指令。
(一) 列出月薪高於 45,000 元的每一位護理師之護理師編號與月薪。(10 分)
(二) 列出有照顧住在病房編號「8F12」的病患之護理師姓名。(10 分)
(三) 列出每一位有照顧病患的護理師編號與照顧人數。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查基本 SELECT、條件篩選、資料表連接(JOIN),以及分組統計(GROUP BY、COUNT)。
住院病患表以護理師編號作為外來鍵,對應護理師表的護理師編號主鍵。要查詢護理師姓名,需依此欄位連接兩表;要統計每位護理師照顧的病患數,則依護理師編號分組並計算病患筆數。
以下假設表格名稱為 住院病患、護理師,欄位名稱如題目所示。
解題方法
(一)只需從護理師表篩選月薪高於 45,000 元的資料,並投影出護理師編號與月薪:
SELECT 護理師編號, 月薪
FROM 護理師
WHERE 月薪 > 45000;
WHERE 條件使用嚴格大於,因此月薪恰為 45,000 元者不列入。
(二)先從住院病患表找出住在病房 8F12 的病患,再依護理師編號連接護理師表,以取得護理師姓名:
SELECT DISTINCT 護理師.護理師姓名
FROM 住院病患
JOIN 護理師
ON 住院病患.護理師編號 = 護理師.護理師編號
WHERE 住院病患.病房編號 = '8F12';
同一位護理師可能照顧多位住在該病房的病患,因此使用 DISTINCT,讓姓名只列一次。
第 三 題30 分
一個關聯式資料庫表格的綱要如下所示:
為表格名稱,、、、、 為表格的五個屬性, 與 為表格的兩個候選鍵。另外,此表格有下列功能相依(Functional Dependency):
(一) 請問表格 為第幾正規型式(Normal Form)?請說明原因。(15 分)
(二) 若表格 不是適當的正規型式(換言之,可能會有重複的資料),請將該表格正規化(Normalization),分解成若干個適當正規型式的表格。請寫出每一個表格的綱要,包括表格名稱、屬性、主鍵以及外來鍵(假設有外來鍵的話)。(15 分)
登入後即可作答並保存紀錄。
核心觀念
正規化要從候選鍵、主屬性,以及函數相依決定因素是否為超鍵來判斷。
- 候選鍵是能決定關係中所有屬性的最小屬性集合。
- 主屬性是至少出現在一個候選鍵中的屬性;本題為 。
- 超鍵是能決定所有屬性的屬性集合,不要求最小。
- BCNF:每一個非平凡函數相依 的決定因素 都必須是超鍵。
- 3NF:對每一個非平凡函數相依 , 是超鍵,或 中每個屬性都是主屬性。
解題方法
先由題目給定的候選鍵辨認主屬性,再檢查各項函數相依是否違反正規型式。接著利用違反 BCNF 的函數相依進行分解,並確認分解後各表的鍵與外來鍵。
(一)判定正規型式
候選鍵為 與 ,因此主屬性為 ,非主屬性為 。
題目另給 。由於 不是超鍵,而 是主屬性,這項相依符合 3NF 的第二種條件,但不符合 BCNF。
其餘兩項相依的決定因素都是候選鍵:
因此均符合 BCNF 的要求。整體關係仍因 違反 BCNF,故不屬於 BCNF;但所有非平凡相依均符合 3NF 條件。
(二)正規化分解
依違反 BCNF 的相依 分解。令 ,並將決定因素 保留在另一張表中,得到 :
第 四 題20 分
資料倉儲(Data Warehouse)的多維度資料模型(Multidimensional Data Model)以資料方塊(Data Cube)的形式來檢視資料,在資料方塊上的操作稱為線上分析處理(Online Analytical Processing,簡稱 OLAP),典型的 OLAP 操作主要包括向下鑽取(Drill Down)、向上鑽取(Drill Up)、切片(Slice)及切塊(Dice)四種,請分別定義這四種 OLAP 操作並舉例說明。
登入後即可作答並保存紀錄。
核心觀念
資料倉儲以「事實」及其相關的「維度」組織資料。多維度資料模型可視為資料方塊(Data Cube):事實資料放在方塊的各個儲存格中,維度則提供觀察資料的角度,例如時間、地區、商品。每個儲存格可記錄銷售額、銷售量等度量值。
本題考查四種典型 OLAP 操作,重點是判斷操作後「維度層級、維度範圍或維度數量」如何改變。
解題方法
用同一個銷售資料方塊說明四種操作。假設資料包含「時間、地區、商品」三個維度,度量值為銷售額:
- 時間維度:日 → 月 → 季 → 年
- 地區維度:門市 → 縣市 → 區域
- 商品維度:品項 → 品類
逐一說明操作如何改變資料檢視方式,並指出其他維度是否仍保留。
四種 OLAP 操作
一、向下鑽取(Drill Down)
沿著某一維度,從較概括的層級移至更細的層級,以檢視更詳細的資料。這通常透過維度階層完成。
**例:**原先檢視各年度銷售額,向下鑽取時間維度後,改為檢視各季度,或進一步檢視各月份的銷售額。資料範圍大致相同,但呈現粒度更細。
二、向上鑽取(Drill Up)
沿著某一維度,從較細的層級彙整至較概括的層級,也稱為 Roll-up。