DBMS靜態雜湊


在靜態雜湊中,結果資料桶地址將始終相同。 這意味著如果使用雜湊函式mod(5)生成EMP_ID = 103地址,那麼它將始終產生相同的桶地址3。這裡,桶地址不會有任何變化。

因此,在這種靜態雜湊中,記憶體中資料桶的數量始終保持不變。 在這個例子中,在記憶體中有五個資料桶用於儲存資料。

靜態雜湊的操作

  • 搜尋記錄 - 當需要搜尋記錄時,相同的雜湊函式檢索儲存資料桶的地址。
  • 插入記錄 - 當一個新記錄插入表中時,將根據雜湊鍵為新記錄生成一個地址,並將記錄儲存在該位置。
  • 刪除記錄 - 要刪除記錄,首先獲取應該刪除的記錄。 然後我們將在記憶體中刪除該地址的記錄。
  • 更新記錄 - 要更新記錄,首先使用雜湊函式進行搜尋,然後更新資料記錄。

如果想在檔案中插入一些新記錄,但雜湊函式生成的資料桶的地址不為空,或者該地址中已存在資料。靜態雜湊中的這種情況稱為桶溢位。

要克服這種情況,有幾種方法。 一些常用的方法如下:

1.開啟雜湊

當雜湊函式生成已儲存資料的地址時,將為其分配下一個儲存桶。 這種機制稱為線性探測。

例如:假設R3是需要插入的新地址,則雜湊函式為R3生成112的地址。 但生成的地址已經滿了。 因此,系統搜尋下一個可用資料桶113,並將R3分配給它。

2.關閉雜湊

當儲存桶已滿時,將為相同的雜湊結果分配新資料儲存桶,並在前一個資料儲存桶之後進行連結。 這種機制稱為溢位鏈。

例如:假設R3是需要插入表中的新地址,雜湊函式為其生成地址110。 但是這個儲存桶已滿,用於儲存新資料。 在這種情況下,在110桶的末端插入一個新桶並與之連結。