DBMS動態雜湊


動態雜湊方法用於克服桶溢位等靜態雜湊問題。
在此方法中,隨著記錄的增加或減少,資料桶會增大或減小。 此方法也稱為可延伸雜湊方法。
該方法使雜湊動態化,即,它允許插入或刪除而不會導致效能不佳。

如何搜尋一個鍵

  • 首先,計算鍵的雜湊地址。
  • 檢查目錄中使用了多少位,這些位稱為i
  • 取雜湊地址的最不重要的i位。 這給出了目錄的索引。
  • 現在使用索引,轉到目錄並查詢記錄可能位於的儲存區地址。

如何插入新記錄

  • 首先,必須按照相同的步驟進行檢索,最後才會進入某個儲存桶。
  • 如果儲存桶中仍有空間,則將記錄放入其中。
  • 如果儲存桶已滿,則將拆分儲存桶並重新分配記錄。

範例:
考慮將以下將鍵分組到桶中,具體取決於其雜湊地址的字首:

24的最後兩位是00。所以它將進入桶B056的最後兩位是01,因此它將進入儲存桶B113的最後兩位是10,因此它將進入桶B27的最後兩位是11,所以它將進入B3

將帶有雜湊地址10001的鍵9插入上述結構中:

  • 由於鍵9具有雜湊地址10001,因此它必須進入第一個桶。 但是桶B1已滿,所以它要分裂。
  • 分裂將從5分離5,9,因為最後三位5,9001,所以它將進入桶B1,最後三位6101,因此它將進入桶B5
  • 2和鍵4仍在B0中。 B0中的記錄由000100條目指向,因為條目的最後兩位都是00
  • 1和鍵3仍在B2中。 B2中的記錄由010110條目指示,因為兩個條目的最後兩位都是10
  • 7仍在B3中。 B3中的記錄由111011條目指向,因為兩個條目的最後兩位都是11

動態雜湊的優點

  • 在這種方法中,效能不會隨著系統中資料的增長而降低。它只是增加記憶體大小以容納更多的資料。
  • 在這種方法中,隨著資料的增長和縮小,記憶體得到了很好的利用。不會有任何未使用的記憶體。
  • 這種方法適用於資料增長和頻繁縮小的動態資料庫。

動態雜湊的缺點

  • 在這種方法中,如果資料大小增加,則桶大小也增加。 這些資料地址將儲存在儲存區地址表中。 因為隨著儲存桶的增長和縮小,資料地址將不斷變化。 如果資料量大幅增加,則維護儲存區地址表變得乏味。
  • 在這種情況下,也會發生桶溢位情況。 但是,與靜態雜湊相比,可能需要很少時間就遇到(達到)這種情況。