DBMS 中有哪些不同的散列方法?
散列文件组织也称为直接文件组织。
在这个方法中,为了存储记录,计算了一个哈希函数,它提供了存储记录的块的地址。任何类型的数学函数都可以用作散列函数。它可以很简单也可以很复杂。
哈希函数应用于列或属性以获取块地址。记录是随机存储的。因此,它也被称为直接或随机文件组织。
如果生成的哈希函数在被视为键的列上,则该列可以称为哈希键,如果生成的哈希函数在被视为非键的列上,则该列可以称为哈希柱子。
假设,一个文件有n条记录,每条记录都有一个key,唯一的决定了这条记录。设 K 为键,L 为内存位置。哈希函数定义为H:K->L
示例
下面给出了一个散列文件组织的例子 -
0 | |
1 | |
2 | 011 德里 |
3 | |
4 | 022 加尔各答 |
5 | |
6 | 033 金奈 |
7 | |
8 | 044 孟买 |
9 |
这里城市的 STD 代码是关键。哈希函数只需添加密钥的数字即可将这些密钥映射到地址 2、4、6、8。
Hash函数的方法
哈希函数的方法H(k)解释如下 -
除法
哈希函数H(k)=k (mod m),其中 m 是大于键数的素数方法。
示例
让 76 名学生拥有独一无二的 10 位 regno。这里 regno 是关键。
m=79(大于 76)
L 包含 100 个内存位置 00,01,02,.....99
对于 regno 0148105102, 0148105124, 0148105405H(k)如下所示 -
H(0148105102) = 0148105102 % 79 = 10H(0148105124) = 0148105124 % 79 = 32
H(0148105405) = 0148105405 % 79 = 76
中方法
密钥k被平方,然后取中间数字得到地址。
示例
让 200 名员工拥有唯一的 3 位数 empid。在这里,empid 是关键。
H(k) = 2nd and 3rd digit of k2K: 067 048 146K2: 4489 2304 21316
H(k): 48 30 13
折叠方式
密钥被分成若干部分 k1,k2,…….kn 然后通过忽略进位将这些部分加在一起,即H(k)= k1+ k2+ ……..+ kn
示例
让 2000 名员工拥有独一无二的 4 位 empid。在这里,empid 是关键。
H(1643) =16+43 =57H(1999) =19+99 = 18 (The leading digit 1 is ignored)
H(1176) = 11 + 76 = 87
H( 1374) = 13+ 74 =87
当多个键引用同一内存位置时,该问题称为碰撞。
以上是 DBMS 中有哪些不同的散列方法? 的全部内容, 来源链接: utcz.com/z/327506.html