111 專技高考高等考試 資訊技師 資料結構與資料庫及資料探勘 考古題詳解

111 年・專技高考・高等考試・資訊技師
試題代碼 資料結構與資料庫及資料探勘

第 一 題20 分

請解釋下列名詞之含意:(每小題 5 分,共 20 分)

(一)Balanced Tree

(二)Record(in database)

(三)Perfect hashing

(四)Entity-Relationship model

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

這一題的完整詳解

核心觀念

本題屬於「資訊技師」考試中「資料結構」與「資料庫系統」基礎核心名詞測驗,主要評量考生對經典電腦科學架構的定義精確度與深度理解:

  1. Balanced Tree(平衡樹):涉及二元搜尋樹(BST)之退化問題與高度控制,核心定理在於確保樹高維持在 O(log⁡n)O(\log n),避免時間複雜度退化至 O(n)O(n)。
  2. Record in database(資料庫記錄):涉及資料儲存階層(Data Hierarchy)與關聯式模型(Relational Model)之對應,核心在於描述單一實體個體的資料屬性集合。
  3. Perfect hashing(完全雜湊):涉及雜湊理論中的碰撞(Collision)控制與空間時間權衡,核心在於對靜態鍵值集合達到最差情況 O(1)O(1) 的無碰撞映射。
  4. Entity-Relationship model(實體關聯模型):涉及概念資料塑模(Conceptual Data Modeling)理論,核心在於透過實體、屬性、關聯三大抽象元件對現實世界進行語意表達。

解題方法

針對「名詞解釋題」(每小題 5 分,共 20 分),答題結構必須具備閱卷委員期待的三大層次,切忌僅以口語化一句話帶過:

  1. 精確學術定義(2 分):定義其本質、提出者或數學性質。
  2. 內部結構與關鍵機制(2 分):說明核心限制、運作特性(如時間複雜度、構成要素、演算法策略)。
  3. 經典範例與實務應用(1 分):舉出最具代表性的演算法、資料結構或應用場景。

各名詞子題分析

  • (一)Balanced Tree:考點在於「高度控制」與「動態調整機制」。若只回答「左右兩邊長得差不多」無法取得滿分,必須明確提及樹高 hh 與節點數 nn 的對數關係,以及常見的平衡方式(如旋轉操作)。
  • (二)Record(in database):考點在於「資料階層概念」與「關聯式架構的對應」。應指出它在關聯模型中對應為 Tuple(元組)或 Row(列),並說明其由欄位(Field/Attribute)組成以代表單一實體實例。
  • (三)Perfect hashing:考點在於「Collision-free(無碰撞)」及「最差情況時間複雜度保證為 O(1)O(1)」。進階分析需補充「最小完全雜湊(Minimal Perfect Hashing)」之差別,展現專業深度。
  • (四)Entity-Relationship model:考點在於「概念資料模型層級」與「三大構成要素」。應指出其提出者(Peter Chen)與圖形符號表示法,並說明其在資料庫設計生命週期中的角色(轉換為關聯綱要)。

解題技巧

  1. 版面控制與給分點配置:每小題 5 分,建議書寫行數約 4~6 行,採「條列式(定義、特性、實例)」排版,讓閱卷委員一眼看見關鍵術語。
  2. 善用英文專有名詞輔助:在中文名詞後標註精確的英文術語(如 O(log⁡n)O(\log n)、Tuple、Collision-free、Entity/Attribute/Relationship),強化作答專業度。
  3. 避開常見陷阱:
  • 誤將 Balanced Tree 僅視為 Complete Binary Tree(完全二元樹僅是其中一種結構,AVL 與紅黑樹允許一定程度的高度差)。
  • 誤將 Perfect Hashing 視為動態萬用雜湊(Perfect Hashing 主要用於靜態集合,若資料動態異動維持成本極高)。

【答案】

(一)Balanced Tree(平衡樹)

  1. 定義:一種藉由特定演算法規則控制節點深度,使任意節點之左右子樹高度差維持在常數範圍內的樹狀搜尋結構。其設計目的在於防止二元搜尋樹因不當插入順序退化為線性串列(Skewed Tree)。
  2. 特性與機制:
🔒

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

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

免費註冊

第 二 題16 分

什麼是 Open Data?什麼是 Public Data?請說明此兩名詞的不同之處。

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

這一題的完整詳解

核心觀念

本題測驗考生對「現代資料治理(Data Governance)」與「數位政府/資料工程」基礎名詞的理解深度。主要涵蓋以下核心觀念與法規標準(以命題當年民國 111 年之標準與規範為準):

  1. 開放資料(Open Data)之定義:依據國際開放知識基金會(Open Knowledge Foundation, OKF)發布之《開放定義》(Open Definition),資料必須具備「技術性開放」(機器可讀、無專有格式限制)與「法律性開放」(允許任何人自由使用、再利用、重新散布,最多僅要求標示出處或以相同方式分享)。在國內實務上,則參照行政院發布之「政府資料開放作業原則」與「政府資料開放授權條款(OGDL)」。
  2. 公共資料(Public Data)之定義:指由政府機關或公共組織基於公權力、法定職責所產製、蒐集,並依法向公眾揭露之資料(如依《政府資訊公開法》主動公開或人民申請提供之資料)。其本質在於落實施政透明與民眾知的權利。
  3. 兩者之本質差異:包含「資料來源範疇」、「資料技術格式(機器可讀性)」、「授權許可與再利用權利」及「取得門檻/成本」。

解題方法

申論此題時,切入點不可僅停留在字面翻譯,必須採「定義拆解 →\to 核心要件檢驗 →\to 多維度矩陣比較 →\to 兩者交集關係」的標準論述架構:

  1. 分別界定名詞內涵:
  • 闡明 Open Data 的技術條件(結構化、開放格式)與法律條件(開放授權)。
  • 闡明 Public Data 的行政與法制基礎(資訊公開、行政透明、公共利益)。
  1. 架構化對比差異:從「來源主體」、「技術格式」、「法律授權與再利用權」、「取得成本與管道」、「政策目的」五大面向切入,並佐以比較表格,使閱卷委員一目了然。
  2. 點出邏輯集合關係:論述「開放政府資料(Open Government Data, OGD)是 Public Data 與 Open Data 的交集」,釐清「公開不等於開放」的關鍵盲點。

選項分析

本題為專技高考之申論題,非選擇題型。在評閱評分標準上,若考生答題僅寫出一般性字面翻譯,難以取得高分;閱卷要點主要檢視考生能否精準剖析以下面向:

  • 未提及「開放授權(Open License)」:若僅回答「免費給大眾看」,缺乏著作權、再利用(Re-use)及商業改作的授權說明,將大幅失分。
  • 未提及「機器可讀(Machine-readable)」:若未將 PDF、掃描圖檔等「人類可讀格式」與 CSV、JSON、XML 等「結構化機器可讀格式」進行區隔,無法展現資訊技師的技術專業。
  • 誤認 Open Data 僅限於政府產製:漏掉企業、社群、科研組織亦可發布 Open Data(如 OpenStreetMap、開源社群資料集),定義不夠全面。

解題技巧

  1. 判斷竅門(黃金準則):
  • Open Data 的關鍵字:結構化、機器可讀(Machine-readable)、開放授權(如 CC BY、OGDL)、允許商業改作、API 介接。
  • Public Data 的關鍵字:政府產製、法定義務公開(如《政府資訊公開法》)、施政透明、人類可讀(Human-readable)、受著作權保護且限制改作。
  1. 常見陷阱:
  • 誤以為「放在網路上公開供人瀏覽的政府資料」就是 Open Data。例如:政府將預算書以 PDF 掃描檔放在官網供民眾下載,這屬於 Public Data,但因不具備機器可讀性且未釋出開放再利用授權,絕非 Open Data。
  1. 記憶架構(文氏圖概念):
  • Public Data 包含未開放格式的政府公開資訊;Open Data 包含民間發布的開源資料;
🔒

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

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

免費註冊

第 三 題20 分

請詳述(舉例說明)什麼叫做 Bubble Sort(請以虛擬碼 pseudo-code 表示),並對您的描述(pseudo-code)做效能分析(說明 Big-O 的分析過程)。

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

這一題的完整詳解

核心觀念

  1. 氣泡排序法(Bubble Sort)定義: 屬於比較排序法(Comparison Sort)中的交換排序類別。其基本運作原理為:由陣列前端開始,重複走訪欲排序的數列,依序檢視「相鄰的兩個元素」,若兩者順序與目標排序方向(如遞增)不符則予以對調(Swap)。每完成一輪(Pass)的比較與交換,未排序區間中的「極值」(最大值或最小值)就會如同水中氣泡浮出水面般,移動至數列的最終正確位置。
  2. 穩定性(Stability)與空間特性:
  • 穩定排序(Stable Sort):當兩相鄰元素鍵值相等時,若演算法不對其進行交換,即可保證相同鍵值的元素在排序前後的相對順序維持不變。
  • 原地排序(In-place Sort):僅需常數等級的輔助記憶體空間進行元素交換,額外空間複雜度為 O(1)O(1)。
  1. 效能分析數學基礎:
  • 等差級數求和公式: ∑k=1n−1k=n(n−1)2=12n2−12n\sum_{k=1}^{n-1} k = \frac{n(n-1)}{2} = \frac{1}{2}n^2 - \frac{1}{2}n
  • 漸近符號(Big-O)定義:若存在正實數常數 cc 與正整數 n0n_0,使得所有 n≥n0n \ge n_0,演算法的基本運算次數 T(n)≤c⋅f(n)T(n) \le c \cdot f(n) 均成立,則稱 T(n)∈O(f(n))T(n) \in O(f(n))。

解題方法

本題為典型的申論題型,解題步驟劃分為三大部分:虛擬碼設計(含提早結束最佳化機制)、實例追蹤(Tracing)與漸近效能(Big-O)嚴謹推導。

一、虛擬碼表示(Pseudo-code)

考量國家考試評分標準,提供具備「旗標檢驗(Flag Optimization)」的氣泡排序虛擬碼,以完整體現最佳情況(Best Case)之效能:

Algorithm BubbleSort(A, n)
 Input: 陣列 A(索引為 0 至 n - 1),長度 n >= 1
 Output: 由小至大排序完成之陣列 A

 for i = 0 to n - 2 do
 swapped = false
 // 第 i 回合:將未排序區間的最大值推至索引 n - 1 - i
 for j = 0 to n - 2 - i do
 if A[j] > A[j + 1] then
 // 交換相鄰元素
 temp = A[j]
 A[j] = A[j + 1]
 A[j + 1] = temp
 swapped = true
 end if
 end for
 // 若此回合完全未發生交換,代表數列已排序完畢,提早終止
 if swapped == false then
 break
 end if
 end for
 return A

二、實例說明(舉例示範)

給定包含 5 個元素的未排序陣列 A=[5,1,4,2,8]A = [5, 1, 4, 2, 8],長度 n=5n = 5,欲進行遞增排序:

  • 第 1 回合(Pass 0, i=0i = 0):內迴圈 jj 從 00 到 33(比較 n−1−0=4n - 1 - 0 = 4 次):
  1. j=0j = 0:比較 A[0]=5A[0]=5 與 A[1]=1A[1]=1。因 5>15 > 1,交換 →[1,5,4,2,8]\rightarrow [1, 5, 4, 2, 8]
  2. j=1j = 1:比較 A[1]=5A[1]=5 與 A[2]=4A[2]=4。因 5>45 > 4,交換 →[1,4,5,2,8]\rightarrow [1, 4, 5, 2, 8]
  3. j=2j = 2:比較 A[2]=5A[2]=5 與 A[3]=2A[3]=2。因 5>25 > 2,交換 →[1,4,2,5,8]\rightarrow [1, 4, 2, 5, 8]
  4. j=3j = 3:比較 A[3]=5A[3]=5 與 A[4]=8A[4]=8。因 5<85 < 8,不交換 →[1,4,2,5,8]\rightarrow [1, 4, 2, 5, 8]
  • 結果:最大值 88 已定位至末端 A[4]A[4];有發生交換,swapped = true,繼續下一回合。

  • 第 2 回合(Pass 1, i=1i = 1):內迴圈 jj 從 00 到 22(比較 33 次):

  1. j=0j = 0:比較 A[0]=1A[0]=1 與 A[1]=4A[1]=4。不交換 →[1,4,2,5,8]\rightarrow [1, 4, 2, 5, 8]
  2. j=1j = 1:比較 A[1]=4A[1]=4 與 A[2]=2A[2]=2。因 4>24 > 2,交換 →[1,2,4,5,8]\rightarrow [1, 2, 4, 5, 8]
  3. j=2j = 2:比較 A[2]=4A[2]=4 與 A[3]=5A[3]=5。不交換 →[1,2,4,5,8]\rightarrow [1, 2, 4, 5, 8]
  • 結果:次大值 55 已定位至 A[3]A[3];有發生交換,繼續下一回合。

  • 第 3 回合(Pass 2, i=2i = 2):內迴圈 jj 從 00 到 11(比較 22 次):

  1. j=0j = 0:比較 A[0]=1A[0]=1 與 A[1]=2A[1]=2。不交換 →[1,2,4,5,8]\rightarrow [1, 2, 4, 5, 8]
  2. j=1j = 1:比較 A[1]=2A[1]=2 與 A[2]=4A[2]=4。不交換 →[1,2,4,5,8]\rightarrow [1, 2, 4, 5, 8]
  • 結果:此回合未發生任何交換(swapped == false),觸發提早跳出機制(break)。
  • 最終排序結果:[1,2,4,5,8][1, 2, 4, 5, 8]。

三、效能分析(Big-O 推導過程)

以元素比較次數(Comparisons)與交換次數(Swaps)作為主要計量指標:

🔒

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

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

免費註冊

第 四 題20 分

某工廠有以下的兩個表(Table):(每小題 5 分,共 20 分)

Table 1:Part_needs

SupplierPart_numberProject
2310921
2311013
2390484
3149753
3134772
3269844
3291912
3310011

Table 2:Parts_inventory

Part_numberProjectQuantityColor_code
10011148
1092122
1101311
34772252
4975362
69844101
90484122
91912804

某工廠員工寫了兩個 SQL 語法,如下:

SQL 語法一:

SELECT Supplier
FROM Part_needs
WHERE 1000≤Part_number≤50001000 \leq \text{Part\_number} \leq 5000

SQL 語法二:

SELECT Supplier
FROM Part_needs, Parts_inventory
WHERE Quantity ≤10\leq 10

(一)請問 SQL 語法一進行何種的操作(operations)?

(二)請問 SQL 語法二進行何種的操作(operations)?

(三)假使我們採用 Table 1 當作語法一的輸入資料,請問會輸出什麼?

(四)假使我們採用 Table 1 和 Table 2 當作語法二的輸入資料,請問會輸出什麼?

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

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

這一題的完整詳解

核心觀念

本題考查關聯式資料庫的三種操作:

  • 選擇(selection):依條件篩選資料列,記為 σ\sigma。
  • 投影(projection):取出指定欄位,記為 π\pi。
  • 笛卡兒積(Cartesian product):將兩個表的每一列互相配對,記為 ×\times。

SQL 的 SELECT 指定輸出欄位,WHERE 設定篩選條件;FROM 同時列出兩個表、卻沒有連接條件時,會形成笛卡兒積。一般 SQL 查詢會保留重複列,除非明確使用 DISTINCT。

解題方法

(一)SQL 語法一

依 WHERE 條件篩選 Part_number 落在 10001000 至 50005000 的列,再只輸出 Supplier:

πSupplier(σ1000≤Part_number≤5000(Part_needs))\pi_{\text{Supplier}} \left( \sigma_{1000 \leq \text{Part\_number} \leq 5000} (\text{Part\_needs}) \right)

因此包含選擇與投影操作。

(二)SQL 語法二

FROM Part_needs, Parts_inventory 列出兩個表,但沒有指定兩表間的連接條件,因此先形成笛卡兒積;接著以 Quantity ≤ 10 篩選,再輸出 Supplier:

πSupplier(σQuantity≤10(Part_needs×Parts_inventory))\pi_{\text{Supplier}} \left( \sigma_{\text{Quantity} \leq 10} (\text{Part\_needs} \times \text{Parts\_inventory}) \right)

因此包含笛卡兒積、選擇與投影操作。

(三)以 Table 1 執行語法一

符合 1000≤Part_number≤50001000 \leq \text{Part\_number} \leq 5000 的零件編號依序為:

🔒

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

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

免費註冊

第 五 題24 分

假設某一家店中有以下的六次交易(transactions):(每小題 8 分,共 24 分)

A={bread,milk,diapers,juice}A=\{\text{bread},\text{milk},\text{diapers},\text{juice}\}

B={bread,milk,diapers,eggs}B=\{\text{bread},\text{milk},\text{diapers},\text{eggs}\}

C={milk,diapers,beer,eggs}C=\{\text{milk},\text{diapers},\text{beer},\text{eggs}\}

D={bread,beer}D=\{\text{bread},\text{beer}\}

E={milk,diapers,eggs,juice}E=\{\text{milk},\text{diapers},\text{eggs},\text{juice}\}

F={milk,diapers,beer}F=\{\text{milk},\text{diapers},\text{beer}\}

(一)請問產品 diapers 的 support 值為多少?

(二)假設我們設定 support threshold 為 0.60.6,請找出所有的 frequent itemsets。

也就是說,U={bread,milk,diapers,juice,eggs,beer}U=\{\text{bread},\text{milk},\text{diapers},\text{juice},\text{eggs},\text{beer}\} 這六樣產品的集合,有那些子集合在 A–F 的六個交易中,被採購的機率超過 0.60.6。

(三)假設我們有一個關聯規則(association rule):{beer}→{diapers}\{\text{beer}\}\rightarrow\{\text{diapers}\},請求出 support 值和 confidence 值。

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

這一題的完整詳解

核心觀念

本題出自資料探勘(Data Mining)領域之**關聯規則探勘(Association Rule Mining)**與 Apriori 演算法,為資訊技師與高考資訊類科歷年極高頻率之基本計算題型。解題所依據之核心定義與公式如下:

  1. 交易資料庫(Transaction Database): 設全體交易集合為 DD,交易總筆數為 ∣D∣|D|。本題中 ∣D∣=6|D| = 6(交易 AA 至 FF)。
  2. 支援度計數(Support Count / Frequency): 項目集(Itemset)XX 在交易資料庫中出現的交易次數,記為 σ(X)\sigma(X) 或 count(X)\text{count}(X)。
  3. 支援度(Support): 項目集 XX 在全體交易中出現的機率/比例: Support(X)=P(X)=σ(X)∣D∣\text{Support}(X) = P(X) = \frac{\sigma(X)}{|D|}
  4. 頻繁項目集(Frequent Itemsets): 若項目集 XX 的支援度大於或等於預設之最低支援度門檻值(Minimum Support Threshold, min_sup\text{min\_sup}),即 Support(X)≥min_sup\text{Support}(X) \ge \text{min\_sup},則稱 XX 為頻繁項目集。
  • Apriori 特性(向下封閉性,Downward-Closure Property):頻繁項目集的所有非空子集(Subsets)亦必須為頻繁項目集;反之,若某項目集為非頻繁(Infrequent),則其所有超集(Supersets)必為非頻繁,可直接剪枝(Prune)。
  1. 關聯規則之支援度與信賴度(Support & Confidence): 對於關聯規則 X→YX \rightarrow Y(其中 X∩Y=∅X \cap Y = \emptyset):
  • 支援度(Support):包含前項與後項聯集 X∪YX \cup Y 的交易比例: Support(X→Y)=P(X∪Y)=σ(X∪Y)∣D∣\text{Support}(X \rightarrow Y) = P(X \cup Y) = \frac{\sigma(X \cup Y)}{|D|}
  • 信賴度(Confidence):在購買 XX 的條件下,同時購買 YY 的條件機率: Confidence(X→Y)=P(Y∣X)=Support(X∪Y)Support(X)=σ(X∪Y)σ(X)\text{Confidence}(X \rightarrow Y) = P(Y \mid X) = \frac{\text{Support}(X \cup Y)}{\text{Support}(X)} = \frac{\sigma(X \cup Y)}{\sigma(X)}

解題方法

資料庫基礎統計

全體項目宇集為 U={bread,milk,diapers,juice,eggs,beer}U = \{\text{bread}, \text{milk}, \text{diapers}, \text{juice}, \text{eggs}, \text{beer}\},交易總筆數 ∣D∣=6|D| = 6。各交易內容如下:

  • A={bread,milk,diapers,juice}A = \{\text{bread}, \text{milk}, \text{diapers}, \text{juice}\}
  • B={bread,milk,diapers,eggs}B = \{\text{bread}, \text{milk}, \text{diapers}, \text{eggs}\}
  • C={milk,diapers,beer,eggs}C = \{\text{milk}, \text{diapers}, \text{beer}, \text{eggs}\}
  • D={bread,beer}D = \{\text{bread}, \text{beer}\}
  • E={milk,diapers,eggs,juice}E = \{\text{milk}, \text{diapers}, \text{eggs}, \text{juice}\}
  • F={milk,diapers,beer}F = \{\text{milk}, \text{diapers}, \text{beer}\}

(一)求產品 diapers\text{diapers} 的 support 值

  1. 計算支援度計數 σ({diapers})\sigma(\{\text{diapers}\}): 檢驗包含 diapers\text{diapers} 的交易:
  • AA:包含
  • BB:包含
  • CC:包含
  • DD:無
  • EE:包含
  • FF:包含

因此,σ({diapers})=5\sigma(\{\text{diapers}\}) = 5 次(共出現在 A,B,C,E,FA, B, C, E, F)。

  1. 計算支援度: Support({diapers})=σ({diapers})∣D∣=56≈0.8333(即 83.33%)\text{Support}(\{\text{diapers}\}) = \frac{\sigma(\{\text{diapers}\})}{|D|} = \frac{5}{6} \approx 0.8333\text{(即 } 83.33\% \text{)}

(二)設定 support threshold 為 0.60.6,找出所有的 frequent itemsets

門檻值 min_sup=0.6\text{min\_sup} = 0.6,代表支援度計數門檻值為: min_count=∣D∣×min_sup=6×0.6=3.6\text{min\_count} = |D| \times \text{min\_sup} = 6 \times 0.6 = 3.6 因為交易次數必須為整數,故項目集出現的交易次數必須大於等於 44 次(46≈0.667≥0.6\frac{4}{6} \approx 0.667 \ge 0.6;若為 33 次則 36=0.5<0.6\frac{3}{6} = 0.5 < 0.6)。

採用 Apriori 演算法 逐層推導:

  1. 候選 1-項目集(Candidate 1-itemsets, C1C_1)頻率統計:
  • {bread}\{\text{bread}\}:出現在 A,B,DA, B, D →σ=3\rightarrow \sigma = 3(未達標,剪枝)
  • {milk}\{\text{milk}\}:出現在 A,B,C,E,FA, B, C, E, F →σ=5\rightarrow \sigma = 5(≥4\ge 4,保留)
  • {diapers}\{\text{diapers}\}:出現在 A,B,C,E,FA, B, C, E, F →σ=5\rightarrow \sigma = 5(≥4\ge 4,保留)
  • {juice}\{\text{juice}\}:出現在 A,EA, E →σ=2\rightarrow \sigma = 2(未達標,剪枝)
  • {eggs}\{\text{eggs}\}:出現在 B,C,EB, C, E →σ=3\rightarrow \sigma = 3(未達標,剪枝)
  • {beer}\{\text{beer}\}:出現在 C,D,FC, D, F →σ=3\rightarrow \sigma = 3(未達標,剪枝)

頻繁 1-項目集(L1L_1): L1={{milk},{diapers}}L_1 = \{\{\text{milk}\}, \{\text{diapers}\}\}

🔒

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

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

免費註冊

其他考古題

資訊技師《資料結構與資料庫及資料探勘》其他年度