Introdução ao hash no DBMS
Quando falamos sobre a enorme estrutura do banco de dados e sua complexidade, torna-se muito ineficiente procurar todos os índices e alcançar os dados desejados torna-se muito vago e uma possibilidade complexa. Utilizando a técnica de hash, esses estados podem ser alcançados e um ponteiro direto pode ser designado para saber o local exato e direto no disco para o registro específico, sem fazer uso da estrutura de índice complexa. Os dados no caso da técnica de hash são armazenados na forma de blocos de dados cujo endereço é gerado usando a função normalmente conhecida como função de hash. O local na memória em que isso reside e os registros são armazenados é conhecido como bloco de dados ou bloco de dados.
Tipos de hash no DBMS
Normalmente, existem dois tipos de técnicas de hash no DBMS:
1. Hashing estático
2. Hashing Dinâmico
1) Hashing estático
No caso de hash estático, o conjunto de dados formado e o endereço do bucket são os mesmos. Isso significa que, se tentarmos gerar o endereço para USER_ID = 113, usando o módulo de função de hash 5, ele sempre nos fornecerá o resultado como 3 com o mesmo endereço de bucket de aparência. Nesse caso, não haverá nenhuma alteração no endereço do bucket fornecido. Portanto, o número de caçambas permanece constante durante toda a operação.
Operação de hash estaticamente tipado
uma. Procurando por um registro: se houver a necessidade de encontrar o registro, a mesma função de hash exata será usada para recuperar o endereço e o caminho do depósito de dados com os dados armazenados.
b. Inserção de um novo registro: se um registro novo e novo for colocado em uma tabela, um endereço será gerado para um novo registro com base na chave de hash, armazenando o registro nesse local.
- Exclusão do registro: para que o registro seja excluído, primeiro é necessário buscar o registro que pode ser excluído. Depois que essa tarefa é concluída, os registros precisam ser excluídos para esse endereço de memória.
- Atualização de um registro: para atualizar o registro, primeiro pesquisamos o registro usando a função baseada em hash e, uma vez feito isso, podemos dizer que nosso registro de dados está em um estado atualizado. Para que possamos inserir um novo registro no arquivo e o endereço gerado a partir da função baseada em hash e do bloco de dados não esteja vazio ou se os dados já estiverem presentes no endereço fornecido. Essa situação que surge particularmente no caso de hash estático pode ser chamada de estouro de caçamba e, portanto, existem algumas maneiras usadas para superar esse problema, como:
(i) Abrir hash: se uma função de hash gerar o endereço para o qual os dados já podem ser vistos no estado armazenado, nesse caso, o próximo nível do bucket será automaticamente alocado. Este mecanismo pode ser denominado como uma técnica de sondagem linear.
Por exemplo, se R3 é o endereço novo que precisa ser colocado, a função baseada em hash gerará endereço como o número 102 para o endereço R3. O endereço gerado está em estado completo e, portanto, o sistema deve procurar o novo depósito de dados 113 e atribuir R3 a esse depósito.
(ii) Hashing fechado: Quando os buckets estão completamente cheios, um novo bucket é alocado para um resultado de hash específico que é vinculado logo após o preenchimento anterior e, portanto, esse método é chamado de técnica de encadeamento de estouro.
Por exemplo, R3 é o endereço novo que é necessário colocar na nova tabela, a função de hash é usada para gerar endereço como o número 110 para ele. Este depósito, por sua vez, está cheio e, portanto, não pode receber novos dados e, portanto, um depósito novo é colocado no final após 100.
2) Hashing Dinâmico
Esse tipo de método baseado em hash pode ser usado para resolver os problemas básicos do hash baseado em estática, como os que estão sobrecarregados, pois os depósitos de dados podem crescer e encolher com o tamanho, é uma técnica com mais otimização de espaço e, portanto, é chamada de Extensível método baseado em hash. Nesse método, o hash é feito dinâmico, o que significa que a atividade ou exclusão de inserção é permitida sem comprometer o desempenho.
uma. Pesquisando uma chave: calcule o endereço baseado em hash da chave necessária e verifique o número de bits que estão sendo usados no caso de um diretório conhecido como i. Em seguida, os que são menos significativos dos bits I são retirados do diretório, o que fornece uma idéia sobre o índice do diretório. Utilizando esse valor de índice, entre no diretório para encontrar o endereço do bloco e procurar os registros atuais.
b. Inserção de um novo registro: primeiro, você deve seguir exatamente o mesmo procedimento de recuperação que precisa terminar em algum lugar do bucket. Pesquise o espaço nesse balde e coloque os registros dentro dele. Se esse depósito criado estiver completo e cheio, o depósito será dividido e os registros serão redistribuídos.
Por exemplo, os dois últimos bits dos dígitos 2 e 4 são 00. Portanto, eles irão para o balde B0 e assim por diante, de acordo com a função de módulo. A chave 9 tem um endereço 10001 que deve estar presente no primeiro bloco, mas será dividido e será movido para o novo bloco B1, e isso continuará até que todos os blocos e chaves sejam hash dinamicamente. A função hash é usada de uma maneira em que a função hash é usada para escolher a coluna e seu valor para gerar o endereço. Tempos máximos em que a função hash utiliza a chave primária, que por sua vez é usada para gerar os endereços do bloco de dados. É uma função matemática simples em que a chave primária também pode ser considerada como o endereço do bloco de dados, o que significa que todas as linhas com o mesmo endereço que o da chave primária serão armazenadas no bloco de dados.
Artigos recomendados
Este é um guia para Hashing no DBMS. Aqui discutimos a introdução e os diferentes tipos de hash no DBMS, que incluem um hash estático e um hash dinâmico, além de exemplos. Você também pode consultar os seguintes artigos para saber mais -
- Modelos de dados no DBMS
- Vantagens do DBMS
- Ferramenta de Integração de Dados
- O que é RDBMS?