資料庫管理系統中有哪些不同的雜湊方法?
雜湊檔案組織也稱為直接檔案組織。
在這種方法中,為了儲存記錄,會計算一個雜湊函式,該函式提供儲存記錄的塊地址。任何型別的數學函式都可以用作雜湊函式。它可以很簡單,也可以很複雜。
雜湊函式應用於列或屬性以獲取塊地址。記錄是隨機儲存的。因此,它也稱為直接或隨機檔案組織。
如果生成的雜湊函式作用於被認為是鍵的列,則該列可以稱為雜湊鍵;如果生成的雜湊函式作用於被認為是非鍵的列,則該列可以稱為雜湊列。
假設一個檔案有n條記錄,每條記錄都有一個唯一確定該記錄的鍵。設K為鍵,L為記憶體位置。雜湊函式定義為H: K->L
示例
下面是一個雜湊檔案組織的示例:
0 | |
1 | |
2 | 011 德里 |
3 | |
4 | 022 加爾各答 |
5 | |
6 | 033 金奈 |
7 | |
8 | 044 孟買 |
9 |
這裡城市的區號是鍵。雜湊函式透過簡單地將鍵的數字相加,將這些鍵對映到地址2,4,6,8。
雜湊函式的方法
雜湊函式H(k)的方法解釋如下:
- 除法法
雜湊函式H(k)=k (mod m),其中m是一個大於鍵數量的素數。
示例
假設有76名學生,每個學生都有一個唯一的10位學號。這裡的學號是鍵。
m=79(大於76)
L包含100個記憶體位置00,01,02,…,99
對於學號0148105102、0148105124、0148105405,H(k)如下所示:
H(0148105102) = 0148105102 % 79 = 10 H(0148105124) = 0148105124 % 79 = 32 H(0148105405) = 0148105405 % 79 = 76
- 中間平方法
對鍵k進行平方,然後透過取中間數字來獲得地址。
示例
假設有200名員工,每個員工都有一個唯一的3位員工ID。這裡,員工ID是鍵。
H(k) = 2nd and 3rd digit of k2 K: 067 048 146 K2: 4489 2304 21316 H(k): 48 30 13
- 摺疊法
將鍵分成k1、k2、……kn幾部分,然後將這些部分加在一起,忽略進位,即H(k) = k1+ k2+ ……..+ kn
示例
假設有2000名員工,每個員工都有一個唯一的4位員工ID。這裡,員工ID是鍵。
H(1643) =16+43 =57 H(1999) =19+99 = 18 (The leading digit 1 is ignored) H(1176) = 11 + 76 = 87 H( 1374) = 13+ 74 =87
當多個鍵引用同一個記憶體位置時,這個問題稱為衝突。
廣告