Estruturas de armazenamento de banco de dados - Database storage structures

As tabelas e índices do banco de dados podem ser armazenados no disco em uma de várias formas, incluindo arquivos simples ordenados / não ordenados , ISAM , arquivos heap, depósitos de hash ou árvores B + . Cada forma tem suas vantagens e desvantagens particulares. Os formulários mais comumente usados ​​são árvores B e ISAM. Esses formulários ou estruturas são um aspecto do esquema geral usado por um mecanismo de banco de dados para armazenar informações.

Não ordenado

O armazenamento não ordenado normalmente armazena os registros na ordem em que são inseridos. Esse armazenamento oferece boa eficiência de inserção ( ), mas tempos de recuperação ineficientes ( ). Normalmente, esses tempos de recuperação são melhores, pois a maioria dos bancos de dados usa índices nas chaves primárias , resultando em tempos de recuperação de ou para chaves iguais aos deslocamentos de linha do banco de dados no sistema de armazenamento.

Ordenado

O armazenamento ordenado normalmente armazena os registros em ordem e pode ter que reorganizar ou aumentar o tamanho do arquivo quando um novo registro é inserido, resultando em menor eficiência de inserção. No entanto, o armazenamento ordenado fornece uma recuperação mais eficiente, pois os registros são pré-classificados, resultando em uma complexidade de .

Arquivos estruturados

Arquivos heap

Os arquivos heap são listas de registros não ordenados de tamanho variável. Embora compartilhem um nome semelhante, os arquivos heap são muito diferentes dos heaps na memória . Os heaps na memória são ordenados, ao contrário dos arquivos de heap.

  • Método mais simples e básico
    • inserir eficiente, com novos registros adicionados ao final do arquivo, fornecendo ordem cronológica
    • recuperação eficiente quando o identificador para a memória é o endereço da memória
    • pesquisa ineficiente, pois a pesquisa deve ser linear
    • a exclusão é realizada marcando os registros selecionados como "excluídos"
    • requer reorganização periódica se o arquivo for muito volátil (alterado com frequência)
  • Vantagens
    • eficiente para carregamento em massa de dados
    • eficiente para relações relativamente pequenas, visto que sobrecargas de indexação são evitadas
    • eficiente quando as recuperações envolvem grande proporção de registros armazenados
  • Desvantagens
    • não é eficiente para recuperação seletiva usando valores-chave, especialmente se for grande
    • a classificação pode ser demorada
    • não é adequado para tabelas voláteis

Baldes de hash

  • As funções hash calculam o endereço da página na qual o registro deve ser armazenado com base em um ou mais campos no registro
    • funções de hash escolhidas para garantir que os endereços sejam espalhados uniformemente pelo espaço de endereço
    • 'ocupação' é geralmente de 40% a 60% do tamanho total do arquivo
    • endereço exclusivo não garantido, portanto, mecanismos de detecção e resolução de colisão são necessários
  • Endereçamento aberto
  • Estouro acorrentado / desencadeado
  • Prós e contras
    • eficiente para correspondências exatas no campo-chave
    • não é adequado para recuperação de alcance, que requer armazenamento sequencial
    • calcula onde o registro é armazenado com base nos campos do registro
    • funções hash garantem uma distribuição uniforme dos dados
    • colisões são possíveis, então a detecção e restauração de colisões são necessárias

Árvores B +

Estes são os mais comumente usados ​​na prática.

  • O tempo gasto para acessar qualquer registro é o mesmo porque o mesmo número de nós é pesquisado
  • O índice é um índice completo, então o arquivo de dados não precisa ser ordenado
  • Prós e contras
    • estrutura de dados versátil - acesso sequencial e aleatório
    • o acesso é rápido
    • oferece suporte a correspondências exatas, de intervalo, de chave parcial e de padrão com eficiência.
    • arquivos voláteis são tratados de forma eficiente porque o índice é dinâmico - expande e contrai conforme a tabela cresce e encolhe
    • menos adequado para arquivos relativamente estáveis ​​- neste caso, ISAM é mais eficiente

Orientação de dados

A maioria dos bancos de dados relacionais convencionais usa armazenamento "orientado por linha", o que significa que todos os dados associados a uma determinada linha são armazenados juntos. Por outro lado, o SGBD orientado a coluna armazena todos os dados de uma determinada coluna juntos para atender mais rapidamente às consultas do tipo data warehouse . Os bancos de dados de correlação são semelhantes aos bancos de dados baseados em linha, mas aplicam uma camada de indireção para mapear várias instâncias do mesmo valor para o mesmo identificador numérico.

Veja também