113 身心障礙特考四等 資訊處理 資料處理概要 考古題詳解
第 一 題20 分
在資料處理語言(DML)中,JOIN 是用來合併兩個或多個表格中的資料。
請分別以 Inner Join、Left Outer Join、Right Outer Join 和 Full Join 運算查詢來合併員工(Employee)與部門(Department)資料表,並將 SQL 查詢語法及各個 JOIN 合併後的資料表內容完整列出。
Employee 資料表:
| Emp_No | Emp_Name | Dep_No | ManagerID |
|---|---|---|---|
| E01 | 張三 | D101 | E08 |
| E02 | 李四 | D102 | E09 |
| E03 | 王五 | ||
| E04 | 趙六 | D103 | |
| E05 | 鄭七 | E08 |
Department 資料表:
| Dep_No | Dep_Name |
|---|---|
| D101 | 行銷部 |
| D102 | 人力資源部 |
| D103 | 研發部 |
| D104 | 財務部 |
| D105 | MIS 部 |
登入後即可作答並保存紀錄。
核心觀念
JOIN 依照指定欄位的比對結果合併兩表資料。本題以 Employee.Dep_No = Department.Dep_No 作為連接條件。
- Inner Join:只保留兩表連接欄位相符的資料列。
- Left Outer Join:保留左表
Employee的所有資料;右表沒有相符資料時,右表欄位填入NULL。 - Right Outer Join:保留右表
Department的所有資料;左表沒有相符資料時,左表欄位填入NULL。 - Full Join:保留兩表所有資料;不相符的一側欄位填入
NULL。
本題的空白 Dep_No、ManagerID 均視為 NULL。NULL 不會與另一個 NULL 相等,因此空白部門編號的員工不會連接到任何部門。
解題方法
先找出兩表 Dep_No 相符的資料:
- E01 的
D101對應行銷部。 - E02 的
D102對應人力資源部。 - E04 的
D103對應研發部。 - E03、E05 的
Dep_No為NULL,沒有對應部門。 - D104 財務部、D105 MIS 部沒有員工資料相符。
以下查詢明確列出輸出欄位,並以別名區分兩表的 Dep_No:
1. Inner Join
SELECT E.Emp_No, E.Emp_Name, E.Dep_No AS Emp_Dep_No, E.ManagerID,
D.Dep_No AS Dept_Dep_No, D.Dep_Name
FROM Employee AS E
INNER JOIN Department AS D
ON E.Dep_No = D.Dep_No;
| Emp_No | Emp_Name | Emp_Dep_No | ManagerID | Dept_Dep_No | Dep_Name |
|---|---|---|---|---|---|
| E01 | 張三 | D101 | E08 | D101 | 行銷部 |
| E02 | 李四 | D102 | E09 | D102 | 人力資源部 |
| E04 | 趙六 | D103 | NULL | D103 | 研發部 |
只有三位員工的部門編號能在 Department 中找到相符資料。
2. Left Outer Join
SELECT E.Emp_No, E.Emp_Name, E.Dep_No AS Emp_Dep_No, E.ManagerID,
D.Dep_No AS Dept_Dep_No, D.Dep_Name
FROM Employee AS E
LEFT OUTER JOIN Department AS D
ON E.Dep_No = D.Dep_No;
| Emp_No | Emp_Name | Emp_Dep_No | ManagerID | Dept_Dep_No | Dep_Name |
|---|---|---|---|---|---|
| E01 | 張三 | D101 | E08 | D101 | 行銷部 |
| E02 | 李四 | D102 | E09 | D102 | 人力資源部 |
| E03 | 王五 | NULL | NULL | NULL | NULL |
| E04 | 趙六 | D103 | NULL | D103 | 研發部 |
| E05 | 鄭七 | NULL | E08 | NULL | NULL |
左表 Employee 的五筆資料全數保留;E03、E05 沒有相符部門,因此右表欄位為 NULL。
第 二 題20 分
關聯式代數(Relational Algebra)是針對關聯式模型的一組基本運算集合,關聯式資料庫的 SQL 語法是以「關聯式代數」作為其理論基礎。
根據 E. F. Codd 所提出的「關聯式代數」有八種基本運算子,除了合併(Join)、交集(Intersection)及除法(Division)三種非原始運算子外,另有五種運算子所成的集合稱為「完整集合」(Complete Set),又稱為原始運算子(Primitive Operators),是不能由其他運算子導出的運算子。
請說明此五種原始運算子的定義與用法。
登入後即可作答並保存紀錄。
核心觀念
關聯式代數以關聯(Relation)為運算對象,運算結果仍為關聯。Codd 所述的五種原始運算子為:選擇(Selection)、投影(Projection)、聯集(Union)、差集(Set Difference)及笛卡兒積(Cartesian Product)。其他常見運算,如交集、連接與除法,可由這五種運算組合推導。
解題方法
逐一說明各運算子的輸入條件、操作方式與結果特性,並以關係代數符號表示。選擇與投影用來從單一關聯篩選資料;集合運算比較兩個關聯;笛卡兒積則組合兩個關聯的資料列。
五種原始運算子
- 選擇(Selection,)
依指定條件篩選關聯中的資料列,保留符合條件的列,欄位不變。
例如,從學生關聯 中找出年級為四年級的學生:
選擇條件可使用比較運算及邏輯運算組合。
- 投影(Projection,)
從關聯中選取指定欄位,刪除其他欄位;依關聯的集合語意,結果中的重複列會去除。
例如,只列出學生姓名與系所:
投影處理的是欄位,與選擇用條件篩選資料列不同。
- 聯集(Union,)
合併兩個關聯的資料列,結果包含任一關聯中的列,重複列只保留一次。
第 三 題20 分
雲端運算(Cloud Computing)是繼 1980 年代大型電腦到客戶端-伺服器(Client-Server)的行動計算資料處理架構,請詳細說明下列事項:
(一) 雲端運算之部署模型。
(二) 雲端運算之服務模型。
登入後即可作答並保存紀錄。
核心觀念
本題考查雲端運算的兩種分類方式:部署模型回答「雲端基礎設施由誰擁有、管理,以及提供給誰使用」;服務模型回答「雲端服務提供者管理到哪一層、使用者負責哪一層」。
答題時可用「部署看使用範圍與管理方式;服務看責任分界」作為主軸。雲端運算常引用美國國家標準暨技術研究院(NIST)的定義與分類,包括四種部署模型及三種主要服務模型。
解題方法
先分清題目中的兩個面向,再分別列出類型並說明特徵:
- 部署模型共有四種:私有雲、社群雲、公有雲、混合雲。
- 服務模型主要有三種:IaaS、PaaS、SaaS。
- 以「使用者還需要自行管理哪些部分」區分三種服務模型:IaaS 管理範圍最大,PaaS 次之,SaaS 最少。
(一)雲端運算之部署模型
1. 私有雲(Private Cloud)
雲端基礎設施專供單一組織使用。基礎設施可以由組織自行擁有、管理及營運,也可以委由第三方管理;部署地點可以在組織內部,也可以設於外部。
私有雲的優點是較能配合組織的安全、法規遵循及管理需求,並保有較高控制力;缺點是建置與維運成本較高,資源擴充通常不如大型公有雲彈性。
2. 社群雲(Community Cloud)
雲端基礎設施由具有共同需求的多個組織共同使用,例如共同的任務、安全要求、政策或法規遵循需求。管理及營運可由其中一個或多個組織,或第三方負責;部署地點可在使用組織內部或外部。
例如,多個政府機關依共同的資安及法規要求,共同使用專屬雲端環境。社群雲兼具共同分攤資源的效益與特定社群的治理要求。
3. 公有雲(Public Cloud)
雲端基礎設施提供給一般大眾或廣泛的使用者群體使用,通常由提供雲端服務的企業或機構擁有及管理,並設於服務提供者的場域。
公有雲具備快速取得服務、按需擴充及依使用量付費等特性,適合需要彈性擴充、無須自行建置資料中心的使用情境。使用者對底層硬體及基礎設施的控制較少。
4. 混合雲(Hybrid Cloud)
混合雲由兩種以上各自獨立的雲端基礎設施組成,例如私有雲與公有雲,並透過標準化技術或專屬技術連結,使資料與應用程式能在不同雲端環境間移動或協同運作。
例如,機敏資料保留在私有雲,遇到尖峰運算需求時,將非機敏工作負載擴展到公有雲。混合雲可兼顧控制力與擴充彈性,但跨環境的整合、資安控管與管理較複雜。
(二)雲端運算之服務模型
1. 基礎設施即服務(Infrastructure as a Service, IaaS)
第 四 題20 分
(一) 何謂 AVL 樹?(5 分)
(二) 給定一個數列 ,將此數列的每個數字依序加入 AVL 樹,顯示數字加入後的 AVL 樹。過程中如果需要旋轉,請逐一將 AVL 樹調整前與調整後的狀態畫出,並註明旋轉方式。(15 分)
登入後即可作答並保存紀錄。
核心觀念
AVL 樹是高度平衡的二元搜尋樹,名稱來自 Adelson-Velsky 與 Landis。它遵守二元搜尋樹的規則:對任一節點,其左子樹的鍵值小於該節點,右子樹的鍵值大於該節點。
AVL 樹另要求每個節點的平衡因子都只能是 、 或 。本題採用:
插入節點後若有節點的平衡因子超出此範圍,便須旋轉調整。四種失衡型態為:
- LL 型:對失衡節點作一次右旋。
- RR 型:對失衡節點作一次左旋。
- LR 型:先對其左子節點左旋,再對失衡節點右旋。
- RL 型:先對其右子節點右旋,再對失衡節點左旋。
解題方法
依序將數字插入二元搜尋樹;每次插入後,從新節點往根節點檢查平衡因子。若發生失衡,依新節點相對於失衡節點的位置判斷型態,並立即旋轉恢復平衡。
以下以「節點(左子節點,右子節點)」表示樹;「—」代表空子樹。
逐步插入與旋轉
插入 47
47
插入 24
47
/
24
插入 31:發生 LR 型失衡
插入後,31 位於 47 的左子樹、24 的右子樹,形成 LR 型。失衡前:
47
/
24
\
31
先對 24 左旋,再對 47 右旋,調整後:
31
/ \
24 47
插入 53
53 大於 31、47,因此插入 47 的右側。各節點仍平衡:
第 五 題20 分
當進行資料傳輸時,為了確保資料的正確性,通常會在所傳送的資料中加入一些錯誤檢測技術。漢明碼(Hamming Code)就是一種錯誤檢查碼。
請回答下列問題,並列出每個步驟:
(一) 若資料為 ,使用偶同位漢明碼予以編碼,編碼後 Hamming code 為何?(10 分)
(二) 若接收到偶同位元的 Hamming code 為 ,試問此訊息正確編碼為何?原資料為何?(10 分)
登入後即可作答並保存紀錄。
核心觀念
漢明碼把同位元(檢查位元)放在位置 ,其餘位置填入資料位元。每個同位元負責檢查位置編號的二進位表示中,對應位元為 的所有位置。
本題使用偶同位:每個檢查範圍內的 的總數必須為偶數。同位元數 須滿足 ,其中 是資料位元數。
(一)編碼資料
資料位元數 。取 ,因為 ,所以碼長為 位。同位元放在位置 ,資料依序填入其餘位置:
| 位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 位元 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
依各檢查位元負責的位置計算:
- 檢查位置 。已知位元中有五個 ,因此 ,使總數為偶數。
- 檢查位置 。已知位元中有四個 ,因此 。
- 檢查位置 。已知位元中有四個 ,因此 。
- 檢查位置 。已知位元中有五個 ,因此 。
依位置 到 排列,編碼結果為: