基本概念
散列文件是利用散列存儲方式組織的檔案,亦稱為直接存取檔案。它類似於散列表,即根據檔案中關鍵字的特點,設計一個散列函式和處理衝突的方法,將記錄散列到存儲設備上。
與散列表不同的是,對於檔案來說,磁碟上的檔案記錄通常是成組存放的,若干個記錄組成一個存儲單位,在散列檔案中,這個存儲單位叫做桶(Bucket)。假如一個桶能存放m個記錄,則當桶中已有m個同義詞的記錄時,存放第m+1個同義詞會發生"溢出"。處理溢 出雖可採用散列表中處理衝突的各種方法,但對散列檔案而言,主要採用拉鏈法。
在散列檔案中進行查找時,首先根據給定值求出散列桶地址,將基桶的記錄讀入記憶體,進行順序查找,若找到關鍵字等於給定值的記錄,則檢索成功;否則,讀入溢出桶的記錄繼續進行查找。
在散列檔案中刪去一個記錄,僅需對被刪除記錄標記即可。
檔案優缺點
散列檔案的優點是:檔案隨機存放,記錄不需進行排序;插入、刪除方便;存取速度快;不需要索引區,節省存儲空間。其缺點是:不能進行順序存取,只能按關鍵字隨機存取,且詢問方式限於簡單詢問,並且在經過多次插入、刪除後,也可能造成檔案結構不合理,需要重新組織檔案。