112年警察人員特種考試資訊管理人員三等資料庫應用
三、資料庫中,採用雜湊法索引及採用循序檔之資料結構,以儲存資料檔案時, 對兩者(1)在最壞的資料找尋時間上,(2)在儲存空間的利用率上,(3)資料是否需事先經過排序,(4)是否適合建構在 linked list 資料結構下作業等方面,進行比較。(20分) |
答:
(一)在最壞的資料找尋時間上
1.雜湊法索引:
最壞情況是當所有的鍵都對映到同一個索引上,這會造成大量的碰撞,並且退化成鏈結法的查詢。此時,最壞的查詢時間為 O(n),其中 n 是資料數目。
2.循序檔:
如果資料未被索引或排序,最壞的查詢時間也是 O(n),因為可能需要掃描整筆資料才能找到目標項目。
(二)在儲存空間的利用率上
1.雜湊法索引:
空間利用率可能不高,為了減少碰撞和提高查詢效率,通常需要過度分配儲存空間,導致部分雜湊表格的空間可能未被使用。
2.循序檔:
空間利用率通常較高,通常只儲存實際的資料項目,並且儲存位置可以連續。
(三)資料是否需事先經過排序
1.雜湊法索引:
不需要資料事先排序。使用雜湊函數將資料的鍵對映到一個索引,該索引指向資料庫中的儲存位置。
2.循序檔:
通常需要資料事先排序,使得查詢更有效率。不過,這需要額外的處理時間來維護資料的順序。
(四)是否適合建構在linked list資料結構下作業
1.雜湊法索引:
可以利用 linked list 來處理雜湊碰撞。當多個鍵對映到同一個索引時,這些項目可以在 linked list 中鏈結起來。因此,雜湊法索引很適合與 linked list 一起使用。
2.循序檔:
通常不使用linked list。因為如果資料已經排序,通常使用陣列或其他連續的儲存結構可以達到更好的效能。而且,linked list 的隨機存取成本較高,這會降低對循序檔的查詢效率。