个性化阅读
专注于IT技术分析

DBMS静态哈希解释

本文概述

在静态哈希中, 结果数据存储区地址将始终相同。这意味着, 如果我们使用哈希函数mod(5)为EMP_ID = 103生成地址, 则它将始终导致相同的存储桶地址3。在这里, 存储桶地址将保持不变。

因此, 在此静态哈希中, 内存中数据桶的数量始终保持恒定。在此示例中, 我们将在用于存储数据的内存中有五个数据桶。

DBMS静态哈希

静态哈希操作

  • 搜索记录

当需要搜索记录时, 相同的哈希函数将检索存储数据的存储桶的地址。

  • 插入记录

将新记录插入表中后, 我们将基于哈希键为新记录生成地址, 并将记录存储在该位置。

  • 删除记录

要删除记录, 我们将首先获取应该删除的记录。然后, 我们将删除该地址在内存中的记录。

  • 更新记录

要更新记录, 我们将首先使用哈希函数搜索它, 然后更新数据记录。

如果我们想在文件中插入一些新记录, 但是哈希函数生成的数据存储区的地址不为空, 或者该地址中已经存在数据。静态哈希中的这种情况称为存储桶溢出。这是这种方法的关键情况。

为了克服这种情况, 有多种方法。一些常用的方法如下:

1.开放哈希

当哈希函数生成一个已经存储数据的地址时, 下一个存储桶将被分配给它。这种机制称为线性探测。

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

DBMS静态哈希

2.关闭散列

当存储桶已满时, 则会为相同的哈希结果分配一个新的数据存储桶, 并在前一个存储桶之后进行链接。此机制称为溢出链接。

例如:假设R3是一个新地址, 需要将其插入表中, 则哈希函数为其生成地址为110。但是此存储桶已满, 可以存储新数据。在这种情况下, 新的存储桶会插入110个存储桶的末尾并链接到该存储桶。

DBMS静态哈希
赞(0)
未经允许不得转载:srcmini » DBMS静态哈希解释

评论 抢沙发

评论前必须登录!