当前位置: 首页 > 教程 > 数据库管理系统 >

DBMS静态哈希

精华
小牛编辑
205浏览
2023-03-14

在静态哈希中,结果数据桶地址将始终相同。 这意味着如果使用散列函数mod(5)生成EMP_ID = 103地址,那么它将始终产生相同的桶地址3。这里,桶地址不会有任何变化。

因此,在这种静态散列中,内存中数据桶的数量始终保持不变。 在这个例子中,在内存中有五个数据桶用于存储数据。

静态哈希的操作

  • 搜索记录 - 当需要搜索记录时,相同的哈希函数检索存储数据桶的地址。
  • 插入记录 - 当一个新记录插入表中时,将根据哈希键为新记录生成一个地址,并将记录存储在该位置。
  • 删除记录 - 要删除记录,首先获取应该删除的记录。 然后我们将在内存中删除该地址的记录。
  • 更新记录 - 要更新记录,首先使用哈希函数进行搜索,然后更新数据记录。

如果想在文件中插入一些新记录,但哈希函数生成的数据桶的地址不为空,或者该地址中已存在数据。静态散列中的这种情况称为桶溢出。

要克服这种情况,有几种方法。 一些常用的方法如下:

1.打开散列

当散列函数生成已存储数据的地址时,将为其分配下一个存储桶。 这种机制称为线性探测。

例如:假设R3是需要插入的新地址,则散列函数为R3生成112的地址。 但生成的地址已经满了。 因此,系统搜索下一个可用数据桶113,并将R3分配给它。

2.关闭哈希

当存储桶已满时,将为相同的散列结果分配新数据存储桶,并在前一个数据存储桶之后进行链接。 这种机制称为溢出链。

例如:假设R3是需要插入表中的新地址,哈希函数为其生成地址110。 但是这个存储桶已满,用于存储新数据。 在这种情况下,在110桶的末端插入一个新桶并与之链接。