高考申論題
110年
[資訊處理] 資料庫應用
第 一 題
📖 題組:
假設關聯式資料庫中定義三個表格,其中 CUSTOMER 表格記錄顧客基本資料,包含顧客編號(Cid)、姓名(Name)和所居住的城市(City);MERCHANDISE 表格記錄貨品基本資料,包含貨品編號(Mid)和價格(Price);PURCHASE 表格則為購買資料,記錄了某位顧客(Cid)於某日(Date)購買某個貨品(Mid)的數量(Amount)。在這些表格的欄位中,除了價格和數量二者為數值型態的屬性,其餘皆為字串型態。此三個表格的綱要簡列如下,且每個表格的主鍵以底線標註: CUSTOMER(Cid, Name, City) MERCHANDISE(Mid, Price) PURCHASE(Cid, Mid, Date, Amount) 請根據以下兩個資訊需求分別寫出對應的 SQL 查詢指令,注意每個小題皆各自對應到單一的 SQL 查詢句,但是可以使用子查詢句(Subquery)或類似功能的寫法。
假設關聯式資料庫中定義三個表格,其中 CUSTOMER 表格記錄顧客基本資料,包含顧客編號(Cid)、姓名(Name)和所居住的城市(City);MERCHANDISE 表格記錄貨品基本資料,包含貨品編號(Mid)和價格(Price);PURCHASE 表格則為購買資料,記錄了某位顧客(Cid)於某日(Date)購買某個貨品(Mid)的數量(Amount)。在這些表格的欄位中,除了價格和數量二者為數值型態的屬性,其餘皆為字串型態。此三個表格的綱要簡列如下,且每個表格的主鍵以底線標註: CUSTOMER(Cid, Name, City) MERCHANDISE(Mid, Price) PURCHASE(Cid, Mid, Date, Amount) 請根據以下兩個資訊需求分別寫出對應的 SQL 查詢指令,注意每個小題皆各自對應到單一的 SQL 查詢句,但是可以使用子查詢句(Subquery)或類似功能的寫法。
📝 此題為申論題,共 5 小題
小題 (一)
請問所有住在臺北市的顧客,總共花了多少錢在購買物品上?(10 分)
思路引導 VIP
- 確定涉及表格:需要顧客城市 (CUSTOMER)、購買數量 (PURCHASE)、貨品價格 (MERCHANDISE)。因此需要聯集 (Join) 三張表。
- 計算邏輯:總花費 = Σ(數量 * 價格)。需使用聚合函數
SUM()。
小題 (二)
試找出那些顧客購買貨品編號“M1”的總數量,超過編號“C2”顧客購買貨品編號“M1”的總數量,並輸出那些顧客的編號。(10 分)
思路引導 VIP
- 核心需求:比較「某顧客對 M1 的總和」與「C2 對 M1 的總和」。
- 聚合與分組:需要對每個顧客進行
GROUP BY Cid並使用SUM(Amount)。
小題 (三)
關聯式資料模型有許多構成元素,其中表格(Table)、值組(Row/Tuple)、主鍵(Primary Key)、屬性(Attribute)、預儲程序(Stored Procedure),這些元素可以分別對應到物件導向資料庫的那些元素?(4 分)
思路引導 VIP
本題測驗關聯式資料庫(RDB)與物件導向資料庫(OODB)在核心架構上的映射關係。作答時,只需將關聯式模型的結構(如表、列、欄)與物件導向的基本元素(如類別、物件、變數、方法)進行直覺的靜態與動態特徵配對即可。
小題 (四)
物件導向資料庫會運用到類別繼承的設計,請闡述繼承的規則。(5 分)
思路引導 VIP
看到「物件導向資料庫」與「繼承」,應直覺聯想物件導向(OO)的核心概念:父類別與子類別的「IS-A」層次關係。解題時可從屬性/方法的延續(繼承)、擴充(新增)、修改(覆寫)以及繼承的類型(單一/多重)等維度條列作答,以確保拿滿 5 分。
小題 (五)
物件導向資料模型也運用到屬性的概念,分成下列四種:基本屬性(Primitive Attribute)、複合屬性(Complex Attribute)、集合屬性(Set Attribute)、複合集合屬性(Complex Set Attribute)。請闡述這四種屬性的意涵。(5 分)
思路引導 VIP
看到此題,應先將四種屬性以「單一值 vs. 多值(集合)」以及「基本型態 vs. 複雜結構(物件)」兩個維度進行二元劃分。作答時,除定義該屬性是否可再分割及是否為集合外,務必搭配實務例子(如以『學生』為實體)具象化說明,以確保閱卷者清楚理解你的觀念。