DBMS 中有哪些不同的散列方法?

散列文件组织也称为直接文件组织。

在这个方法中,为了存储记录,计算了一个哈希函数,它提供了存储记录的块的地址。任何类型的数学函数都可以用作散列函数。它可以很简单也可以很复杂。

哈希函数应用于列或属性以获取块地址。记录是随机存储的。因此,它也被称为直接或随机文件组织。

如果生成的哈希函数在被视为键的列上,则该列可以称为哈希键,如果生成的哈希函数在被视为非键的列上,则该列可以称为哈希柱子。

假设,一个文件有n条记录,每条记录都有一个key,唯一的决定了这条记录。设 K 为键,L 为内存位置。哈希函数定义为H:K->L

示例

下面给出了一个散列文件组织的例子 -

0
1
2011 德里
3
4022 加尔各答
5
6033 金奈
7
8044 孟买
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 = 10

H(0148105124) = 0148105124 % 79 = 32

H(0148105405) = 0148105405 % 79 = 76

  • 中方法

密钥k被平方,然后取中间数字得到地址。

示例

让 200 名员工拥有唯一的 3 位数 empid。在这里,empid 是关键。

H(k) = 2nd and 3rd digit of k2K: 067 048 146

K2: 4489 2304 21316

H(k): 48 30 13

  • 折叠方式

密钥被分成若干部分 k1,k2,…….kn 然后通过忽略进位将这些部分加在一起,即H(k)= k1+ k2+ ……..+ kn

示例

让 2000 名员工拥有独一无二的 4 位 empid。在这里,empid 是关键。

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

当多个键引用同一内存位置时,该问题称为碰撞。

以上是 DBMS 中有哪些不同的散列方法? 的全部内容, 来源链接: utcz.com/z/327506.html

回到顶部