DBMS静态哈希解释

本文概述

  • 静态哈希操作
  • 1.开放哈希
  • 2.关闭散列
在静态哈希中, 结果数据存储区地址将始终相同。这意味着, 如果我们使用哈希函数mod(5)为EMP_ID = 103生成地址, 则它将始终导致相同的存储桶地址3。在这里, 存储桶地址将保持不变。
【DBMS静态哈希解释】因此, 在此静态哈希中, 内存中数据桶的数量始终保持恒定。在此示例中, 我们将在用于存储数据的内存中有五个数据桶。
DBMS静态哈希解释

文章图片
静态哈希操作
  • 搜索记录
当需要搜索记录时, 相同的哈希函数将检索存储数据的存储桶的地址。
  • 插入记录
将新记录插入表中后, 我们将基于哈希键为新记录生成地址, 并将记录存储在该位置。
  • 删除记录
要删除记录, 我们将首先获取应该删除的记录。然后, 我们将删除该地址在内存中的记录。
  • 更新记录
要更新记录, 我们将首先使用哈希函数搜索它, 然后更新数据记录。
如果我们想在文件中插入一些新记录, 但是哈希函数生成的数据存储区的地址不为空, 或者该地址中已经存在数据。静态哈希中的这种情况称为存储桶溢出。这是这种方法的关键情况。
为了克服这种情况, 有多种方法。一些常用的方法如下:
1.开放哈希 当哈希函数生成一个已经存储数据的地址时, 下一个存储桶将被分配给它。这种机制称为线性探测。
例如:假设R3是需要插入的新地址, 则哈希函数将R3的地址生成为112。但是生成的地址已满。因此, 系统搜索下一个可用的数据桶113, 并为其分配R3。
DBMS静态哈希解释

文章图片
2.关闭散列 当存储桶已满时, 则会为相同的哈希结果分配一个新的数据存储桶, 并在前一个存储桶之后进行链接。此机制称为溢出链接。
例如:假设R3是一个新地址, 需要将其插入表中, 则哈希函数为其生成地址为110。但是此存储桶已满, 可以存储新数据。在这种情况下, 新的存储桶会插入110个存储桶的末尾并链接到该存储桶。
DBMS静态哈希解释

文章图片

    推荐阅读