Banco de dados de valores-chave - Key–value database
Um banco de dados de valor-chave , ou armazenamento de valor-chave , é um paradigma de armazenamento de dados projetado para armazenar, recuperar e gerenciar matrizes associativas e uma estrutura de dados mais comumente conhecida hoje como dicionário ou tabela hash . Os dicionários contêm uma coleção de objetos , ou registros , que por sua vez têm muitos campos diferentes dentro deles, cada um contendo dados. Esses registros são armazenados e recuperados por meio de uma chave que identifica exclusivamente o registro e é usada para localizar os dados no banco de dados .
Os bancos de dados de valor-chave funcionam de uma maneira muito diferente dos bancos de dados relacionais (RDB) mais conhecidos . RDBs predefinem a estrutura de dados no banco de dados como uma série de tabelas contendo campos com tipos de dados bem definidos . Expor os tipos de dados ao programa de banco de dados permite que ele aplique várias otimizações. Em contraste, os sistemas de valores-chave tratam os dados como uma única coleção opaca, que pode ter campos diferentes para cada registro. Isso oferece flexibilidade considerável e segue mais de perto os conceitos modernos, como a programação orientada a objetos . Como os valores opcionais não são representados por marcadores ou parâmetros de entrada, como na maioria dos RDBs, os bancos de dados de valor-chave geralmente usam muito menos memória para armazenar o mesmo banco de dados, o que pode levar a grandes ganhos de desempenho em certas cargas de trabalho.
Desempenho, falta de padronização e outras questões limitaram os sistemas de valor-chave a nichos de uso por muitos anos, mas a rápida mudança para a computação em nuvem após 2010 levou a um renascimento como parte do movimento NoSQL mais amplo . Alguns bancos de dados gráficos , como ArangoDB , também são bancos de dados de valores-chave internamente, adicionando o conceito de relacionamentos ( ponteiros ) entre registros como um tipo de dados de primeira classe.
Tipos e exemplos notáveis
Os bancos de dados de valor-chave podem usar modelos de consistência que variam de consistência eventual a serializabilidade . Alguns apóiam o pedido de chaves.
Alguns mantêm os dados na memória (RAM) , enquanto outros empregam unidades de estado sólido ou discos rotativos .
Cada entidade (registro) é um conjunto de pares de valores-chave. Uma chave possui vários componentes, especificados como uma lista ordenada. A chave principal identifica o registro e consiste nos componentes principais da chave. Os componentes subsequentes são chamados de teclas secundárias. Essa organização é semelhante a uma especificação de caminho de diretório em um sistema de arquivos (por exemplo, / Major / minor1 / minor2 /). A parte “valor” do par chave-valor é simplesmente uma string não interpretada de bytes de comprimento arbitrário.
O sistema Unix fornece dbm (gerenciador de banco de dados), que é uma biblioteca de 1979 originalmente escrita por Ken Thompson . Ele também é portado para o Microsoft Windows , fornecido por meio de linguagens de programação como Perl para Win32 . O dbm gerencia matrizes associativas de dados arbitrários usando uma única chave (uma chave primária). Implementações modernas incluem Berkeley DB , sdbm e GNU dbm . Embora dbm preceda o conceito de NoSQL e seja raramente mencionado no discurso moderno, ele é usado por muitos softwares.
Veja também
- Big data
- Análise de dados
- Armazenamento de dados distribuído
- Banco de dados orientado a documentos
- Banco de dados multi-modelo
- Espaço tupla