114 高普考高考三級 資訊處理 資料庫應用 考古題詳解

114 年・高普考・高考三級・資訊處理
試題代碼 資料庫應用

第 一 題20 分

說明下列 EER 模型(Enhanced Entity Relationship)的四個構成要素,並各舉一個具體例子說明其在真實世界中的應用:

(1) Entity

(2) Attribute

(3) Relationship

(4) Supertype/Subtype

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 EER(增強式實體關係)模型的基本構成要素。EER 模型用來描述真實世界中的資料結構與語意,並將資料概念化為實體、屬性、關係,以及描述分類與繼承的超型別/次型別。

解題方法

依序說明各要素的定義,再以同一個實際情境舉例,指出哪些資料是實體、屬性如何描述實體、實體間如何建立關係,以及如何用超型別/次型別表達共同特性與專屬特性。

(1) Entity(實體)

**定義:**實體是可與其他事物區別、且需要在資料庫中記錄的對象,可以是人、地點、物品、事件或概念。具有相同性質的一群實體稱為實體型別(Entity Type);其中可個別識別的單一對象是實體個體(Entity Instance)。

**例子:**大學資料庫中的「學生」是實體型別;學號為 S1123456 的學生是其中一個實體個體。學號可用來區別不同學生。

(2) Attribute(屬性)

**定義:**屬性是用來描述實體或關係特性的資料項目。每個屬性有其資料型態或可取值範圍(domain);能唯一識別實體的屬性或屬性組合稱為鍵(Key)。

例子:「學生」可有學號、姓名、生日與系所等屬性。其中學號可作為學生的主鍵;姓名用來描述學生,但通常不能單獨唯一識別學生。

(3) Relationship(關係)

**定義:**關係表示兩個或多個實體之間具有某種關聯。關係型別可依參與的實體型別數量區分為一元、二元或多元關係,也可依基數描述關聯數量,例如一對一、一對多或多對多

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 二 題20 分

請說明下列兩種事務隔離級別的差異,並針對每種隔離級別各舉一個可能造成資料不一致的實際情境:

(1) Read Committed

(2) Repeatable Read

此外,請說明為何某些資料庫系統預設使用 Read Committed,而非 Serializable。

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查交易隔離級別如何限制並行交易彼此讀寫,以及不同隔離級別仍可能出現的資料異常。隔離級別愈高,資料一致性通常愈強,但並行度與執行效率通常愈低。

常見異常包括:

  • 不可重複讀取(non-repeatable read):同一交易再次讀取先前讀過的資料列,發現該列已被另一交易更新或刪除。
  • 幻讀(phantom read):同一交易以相同條件查詢,第二次多出或少了符合條件的資料列。
  • 更新遺失(lost update):兩個交易依據同一舊值計算並寫回,後寫入者覆蓋先寫入者的結果。

解題方法

先掌握各隔離級別對讀取的保證,再用兩個交易交錯執行,說明仍可能出現的異常。以一般 SQL 隔離級別定義而言:

隔離級別可避免的主要異常仍可能發生的異常
Read Committeddirty read(讀取未提交資料)不可重複讀取、幻讀、更新遺失等
Repeatable Readdirty read、不可重複讀取依標準定義仍可能有幻讀;不同資料庫的實作與保證可能不同
Serializabledirty read、不可重複讀取、幻讀等並行結果須等價於某種逐一執行的順序

「髒讀」是讀到另一交易尚未提交、之後可能回復的資料。Read Committed 只保證每次讀取已提交資料;它不保證同一交易前後讀到相同結果。Repeatable Read 保證同一交易重讀先前讀取的資料列時,其值維持一致,但標準定義不必然禁止符合條件的新增資料列出現。

(1)Read Committed

**隔離特性:**每次讀取都只能讀取已提交的資料;但同一交易在不同時間讀取同一資料列,可能看到其他交易已提交的新值,因此會發生不可重複讀取。

**實際情境:**銀行交易甲先查詢帳戶餘額為 10,000 元。交易乙將餘額更新為 8,000 元並提交。交易甲再次查詢同一帳戶,讀到 8,000 元。甲的兩次讀取都讀到已提交資料,因此符合 Read Committed,但同一交易前後讀值不同。

(2)Repeatable Read

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 三 題30 分

根據下列客戶訂單資料回答相關查詢 SQL 敘述。資料表格如下:

Customer(CID,Name)Customer(CID, Name)

Orders(OID,CID,TotalAmount,OrderDate)Orders(OID, CID, TotalAmount, OrderDate)

Payment(PID,OID,AmountPaid)Payment(PID, OID, AmountPaid)

每小題 10 分,共 30 分。

(1) 在 OrderDateOrderDate 為「2025.01.01」當天,列出所有客戶訂單總量排行,依總量由高到低列出客戶姓名與總量。

(2) 找出截至「2025.01.01」,曾有付款行為且總付款金額超過 10,000 的客戶姓名與其總付款金額。

(3) 列出所有訂單但付款金額(AmountPaidAmountPaid)總和不足訂單金額(TotalAmountTotalAmount)的客戶名稱與欠款金額,並以欠款金額由高至低排序。

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查關聯式資料庫的多表查詢、連接、彙總函數與分組篩選:

  • JOIN:依外鍵關係連接客戶、訂單與付款資料。
  • SUM:加總訂單數值或付款金額。
  • GROUP BY:依客戶分組計算。
  • HAVING:篩選彙總後的分組結果。
  • LEFT JOIN 與 COALESCE:保留沒有付款紀錄的訂單,並將空值視為 00。
  • ORDER BY:依指定欄位排序。

以下假設 OrderDate 為日期型別;「截至 2025.01.01」包含當日;第(3)題的「所有訂單」包含尚未有付款紀錄的訂單。

解題方法

(1)2025.01.01 當天客戶訂單總量排行

先篩選指定日期的訂單,再依客戶分組加總 TotalAmount,最後由高到低排序。以 Customer 為起點,可顯示姓名,並涵蓋當天沒有訂單的客戶;其訂單總量以 00 表示。

SELECT c.Name,
 COALESCE(SUM(o.TotalAmount), 0) AS TotalOrderAmount
FROM Customer AS c
LEFT JOIN Orders AS o
 ON o.CID = c.CID
 AND o.OrderDate >= '2025-01-01'
 AND o.OrderDate < '2025-01-02'
GROUP BY c.CID, c.Name
ORDER BY TotalOrderAmount DESC;

日期條件採用「大於等於當日、早於次日」,即使 OrderDate 含有時間部分,也能完整涵蓋 2025 年 1 月 1 日。

(2)截至 2025.01.01,曾付款且總付款金額超過 10,000 的客戶

付款紀錄先透過 Payment 連接訂單,再透過訂單連接客戶;依客戶分組加總付款金額。使用內連接可確保客戶至少有一筆付款紀錄,再以 HAVING 篩出總額超過 10,000 的客戶。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 四 題30 分

請說明資料庫交易處理中的 ACID 意義,以及其四大性質分別代表的意義:

(1) Atomicity

(2) Consistency

(3) Isolation

(4) Durability

配分 15 分。

針對下列交易衝突情境,指出可能違反的 ACID 性質與造成的後果:

情境:T1T1 在更新帳戶 AA 餘額後尚未提交(commit),T2T2 同時讀取帳戶 AA 的餘額並執行轉帳。

配分 15 分。

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查資料庫交易的 ACID 四大性質,以及多筆交易同時執行時,未提交資料被其他交易讀取所引發的問題。交易(Transaction)是一組必須作為整體執行的資料庫操作;ACID 用來說明交易如何確保資料正確與可靠。

解題方法

先依序說明 ACID 四項性質,再檢視情境中 T1T1 的更新是否已提交,以及 T2T2 是否在此之前讀取該更新。若 T2T2 讀取了尚未提交的資料,就是「髒讀」(dirty read);若 T1T1 隨後回復(rollback),T2T2 便可能依據已撤銷的資料完成轉帳,造成資料不一致。

ACID 四大性質

  1. Atomicity(原子性):交易中的操作視為不可分割的整體,必須全部成功;若其中一部分失敗,整筆交易應回復,不留下部分完成的結果。

  2. Consistency(一致性):交易執行前後,資料庫都必須符合既定的完整性限制與業務規則,例如帳戶餘額不得違反規定的下限。交易不能使資料庫由合法狀態轉變為違反規則的狀態。

  3. Isolation(隔離性):並行執行的交易,彼此不應讀取或影響尚未完成的中間結果;其效果應相當於交易依某種順序逐一執行。隔離層級不同,允許的並行現象也不同。

  4. Durability(持久性):交易一旦成功提交,其結果即使遇到系統故障或重新啟動,也必須保留下來,不得無故遺失。

情境分析與可能後果

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

其他考古題