108 高普考高考三級 統計 資料處理 考古題詳解
第 一 題25 分
請比較動態隨機存取記憶體(DRAM)、快取記憶體(Cache)、暫存器(Register)、硬碟(Hard Disk)等儲存單元或記憶體裝置的資料儲存容量大小及存取速度,並說明計算機儲存結構為何要如此設計的原因。
登入後即可作答並保存紀錄。
核心觀念
本題考查計算機記憶體階層(memory hierarchy):不同儲存裝置在容量、存取速度與成本上有所差異。處理器附近的儲存單元速度快、容量小、單位成本高;距離處理器較遠的儲存裝置容量大、速度較慢、單位成本較低。
典型的容量由小至大、速度由快至慢排列如下:
上式的「大於」表示存取速度較快;容量的排序則相反:
解題方法
比較各層級時,先依照它們與處理器的距離及用途判斷:
| 儲存單元或裝置 | 相對容量 | 相對存取速度 | 主要用途 |
|---|---|---|---|
| 暫存器(Register) | 最小 | 最快 | 暫存處理器正在運算的資料、位址或指令 |
| 快取記憶體(Cache) | 小 | 快,通常慢於暫存器 | 暫存近期或常用資料,減少處理器等待主記憶體的時間 |
| DRAM | 較大 | 慢於快取 | 作為主記憶體,存放執行中的程式與資料 |
| 硬碟(Hard Disk) | 最大 | 最慢 | 長期保存大量資料與程式 |
第 二 題25 分
關聯代數(Relational Algebra)可用來描述資料庫中關聯資料表之間的操作方式。給定兩個關聯資料表 及 ,試將以下關聯代數運算式轉成以 SQL 語法描述之。
登入後即可作答並保存紀錄。
核心觀念
本題考查將關聯代數運算翻譯為 SQL。式中依序使用:
- 連接 :依兩表的
No欄位相等,合併符合條件的資料列。 - 選擇 :保留
Title欄位為'Big Data'的資料列。 - 投影 :只輸出
AuthorName欄位。
解題方法
將各運算依序轉成 SQL 子句:連接條件寫在 ON,資料列篩選寫在 WHERE,輸出欄位寫在 SELECT。因此 SQL 為:
第 三 題25 分
網際網路的快速發展,促成了企業與個人用戶在網路上編成各種形式的多媒體電子內容,於網際網路上發表、聯繫、交易等傳播模式,每天因此生成大量及複雜的大數據(Big Data)。
大數據已經超越傳統資料庫管理軟硬體的處理能力,因此需要發展新的硬體設備及軟體技術。有別於傳統資料庫處理對象的數據集,請說明至少四種大數據具備的特徵為何?
登入後即可作答並保存紀錄。
核心觀念
本題考查大數據相較於傳統資料庫資料集的特徵。常用 5V 描述大數據:Volume(資料量)、Velocity(處理速度)、Variety(資料多樣性)、Veracity(資料真實性)與 Value(資料價值)。作答至少列出四項並說明其意涵,即可切中題意。
解題方法
從資料的「規模、產生與處理速度、型態、品質、應用效益」五個面向切入,逐項說明大數據為何超出傳統資料庫管理軟硬體的處理能力:
- 資料量(Volume):資料規模龐大,來源包括社群平台、感測器、交易紀錄及多媒體內容等,常需分散式儲存與運算。
- 速度(Velocity):資料持續快速產生,部分應用須即時或近即時蒐集、處理與回應。
第 四 題25 分
堆疊(Stack)和佇列(Queue)分別是用來記錄先進後出(First In Last Out)和先進先出(First In First Out)等特定的工作排程形式,但若今有一工作排程需按照已進入準備排程的最小工作編號執行(不同工作的編號不會重複),則可採用鏈結串列(Linked List)來操作。
給定一個已建置好的鏈結串列資料結構,其中的每個節點(Node)含有三個欄位:
- 第一個欄位為 ,存放準備執行之工作名稱。
- 第二個欄位為 ,存放該工作之編號。
- 第三個欄位為指標欄位 ,指向鏈結的下一個節點。
另有一指標 ,指向鏈結串列的第一個節點,而最後一個節點的指標欄位 指向 ,代表串列的結束。
請寫出虛擬程式碼(Pseudo Code),讀取鏈結串列中具有最小編號的工作名稱,並將該存放節點從鏈結串列中刪除及釋放被刪除節點所占用的記憶體空間。虛擬程式碼需附帶適當的註解,說明操作的程序及理由。
登入後即可作答並保存紀錄。
核心觀念
本題考查鏈結串列的走訪、最小值搜尋、節點刪除與記憶體釋放。工作依最小 JobID 執行,因此必須檢查整個串列,找出編號最小的節點;刪除時則須調整指標,使串列仍保持連結。
單向鏈結串列的節點只有指向下一節點的 Next 指標。刪除節點時,要讓前一個節點直接指向被刪節點的下一個節點。若被刪節點恰為首節點,則改由 Head 指向下一節點。
解題方法
以一次走訪同時記錄目前最小節點及其前一節點。走訪完成後,依最小節點的位置分成兩種情形:
- 最小節點是首節點:更新
Head。 - 最小節點不是首節點:更新其前一節點的
Next。
接著先讀取工作名稱,再釋放節點所占用的記憶體。空串列沒有可執行的工作,因此先處理空串列情形。