阿摩線上測驗 登入

申論題資訊

試卷:112年 - 112 一般警察特種考試_三等_警察資訊管理人員:資料庫應用#114855
科目:公職◆資料庫應用
年份:112年
排序:0

申論題內容

三、資料庫中,採用雜湊法索引及採用循序檔之資料結構,以儲存資料檔案時,對兩者⑴在最壞的資料找尋時間上,⑵在儲存空間的利用率上, ⑶資料是否需事先經過排序,⑷是否適合建構在 linked list 資料結構下 作業等方面,進行比較。(20 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
在資料庫中,雜湊法索引和循序檔(順序檔)是兩種常見的資料結構,用於儲存和查詢資料檔案。這兩者在多個方面有所不同,以下是對兩者在最壞資料找尋時間、儲存空間利用率、資料是否需事先經過排序、以及是否適合建構在鏈結串列(linked list)資料結構下作業等方面的比較:
1. 最壞資料找尋時間
雜湊法索引:
最壞情況:O(n)
在最壞情況下,雜湊表中的所有資料可能都映射到同一個儲存桶,導致線性掃描整個桶,找尋時間為O(n)。這種情況雖然不常見,但可能會發生在雜湊函數設計不良或有大量碰撞時。
平均情況:O(1)
在大多數情況下,雜湊法可以在常數時間內找到資料。
循序檔:
最壞情況:O(n)
在最壞情況下,必須線性掃描整個檔案才能找到資料,找尋時間為O(n)。
2. 儲存空間的利用率
雜湊法索引:
儲存空間利用率:中等到高
雜湊表通常需要一些額外的空間來存儲指標或鏈結,並且為了減少碰撞,雜湊表可能需要保留一些空閒空間。然而,隨著資料量的增長,雜湊表的空間利用率會相對較高。
循序檔:
儲存空間利用率:高
循序檔不需要額外的空間來存儲指標或鏈結,所有的資料都按順序存儲,因此儲存空間利用率通常較高。
3. 資料是否需事先經過排序
雜湊法索引:
資料排序:不需要
資料不需要事先排序,雜湊法通過雜湊函數將資料直接映射到適當的儲存桶。
循序檔:
資料排序:需要
資料通常需要按照某個鍵值排序,這樣可以進行有效的順序存取和二分查找。
4. 是否適合建構在 linked list 資料結構下作業
雜湊法索引:
適合性:適合
雜湊表的每個儲存桶可以用鏈結串列來處理碰撞(例如分別鏈結法)。這樣當碰撞發生時,所有映射到同一儲存桶的資料都可以通過鏈結串列進行儲存和管理。
循序檔:
適合性:不適合
循序檔通常存儲在連續的磁碟區塊中,以便順序存取和高效的二分查找。使用鏈結串列來實現循序檔會破壞其順序存儲的特性,降低存取效率。
總結
比較項目    雜湊法索引    循序檔
最壞資料找尋時間    O(n)    O(n)
儲存空間的利用率    中等到高    高
資料是否需事先經過排序    不需要    需要
是否適合建構在 linked list 資料結構下作業    適合    不適合
最壞資料找尋時間:兩者最壞情況下都是O(n),但雜湊法平均情況下是O(1)。
儲存空間的利用率:循序檔利用率較高,因為不需要額外的指標或鏈結。
資料是否需事先經過排序:雜湊法不需要排序,而循序檔需要。
是否適合建構在 linked list 資料結構下作業:雜湊法適合使用鏈結串列來處理碰撞,循序檔不適合。