O que são dados imutáveis?

Dados imutáveis são informações em um banco de dados que não podem ser (ou não devem ser) excluídas ou modificadas. A maioria dos bancos de dados tradicionais armazena dados em um formato mutável, o que significa que o banco de dados substitui os dados mais antigos quando novos dados estão disponíveis. Por exemplo, em um banco de dados de funcionários, as informações de endereço são substituídas quando um funcionário muda de residência.

Diagrama de dados imutáveis

Por outro lado, os bancos de dados que armazenam dados imutáveis não substituirão um item antigo quando novas informações estiverem disponíveis. Eles usam várias técnicas para preservar os valores históricos e atuais dos dados. Os dados imutáveis são altamente úteis para auditoria e depuração.

Um exemplo real de dados imutáveis são os registros médicos de alguém. Ao longo dos anos, uma pessoa pode ter procurado tratamento para diferentes doenças. O prontuário médico consiste em várias prescrições, procedimentos e relatórios de exames. Esses arquivos de dados são imutáveis. Por exemplo, quando uma pessoa recebe uma nova receita médica, sua receita antiga não deve ser substituída. Ao invés, o banco de dados deve anexar os novos dados aos existentes. Os dados médicos históricos são um exemplo clássico de dados imutáveis.

Por que as organizações precisam de dados imutáveis?

Com o advento dos dados em nuvem e da Internet das Coisas (IoT), as organizações recebem um enorme volume de dados de transações. Esses dados precisam ser armazenados rapidamente em um banco de dados. Arquivos imutáveis são uma solução adequada para armazenar logs de transações de alta velocidade. As organizações também precisam considerar a necessidade de dados históricos. Com as regulamentações de privacidade de dados cada vez mais rígidas, muitas organizações optam por preservar seus dados históricos. Isso os ajudará a estar em conformidade se um cliente ou governo solicitar dados anteriores. Um banco de dados que armazena dados no formato imutável é mais adequado para esse caso de uso.

As organizações geralmente precisam comparar seus dados atuais com dados históricos para entender as tendências do usuário ou medir o crescimento. Nesses casos, substituir os dados históricos não é uma boa ideia. Os dados imutáveis também ajudam as organizações a acompanhar as mudanças pelas quais passaram ao longo dos anos; são especialmente úteis em sistemas de software.

Relatório O'Reilly: Construindo uma Infraestrutura de Dados Unificada
Relatório O'Reilly: Construindo uma Infraestrutura de Dados Unificada
Apenas um terço das empresas evoluiu para organizações orientadas por dados. Qual é a solução? Descubra neste e-book!

Quais são os usos de um banco de dados imutável?

Armazenando dados de fluxo

Com a explosão de informações e o advento da IoT, as organizações recebem uma enorme quantidade de dados a cada segundo. Elas não podem aceitar atrasos no armazenamento dos dados. A maioria dos bancos de dados tradicionais que usam arquivos mutáveis tem uma certa latência porque apagam os dados anteriores, gravam o novo e verificam a integridade. Mas no caso de dados de fluxo – por exemplo, de sensores de IoT – o banco de dados deve armazenar os dados rapidamente. Quando o banco de dados usa arquivos de dados imutáveis, ele simplesmente acrescenta os novos dados. Isso torna os bancos de dados imutáveis muito mais rápidos no armazenamento de dados e, portanto, mais adequados para armazenar dados de fluxo.

Preservando o contexto histórico

Os dados pessoais, como o histórico médico de uma pessoa, precisam ser armazenados permanentemente para fornecer um contexto para os novos dados. Por exemplo, quando uma pessoa é tratada de uma doença, todos os seus medicamentos e tratamentos antigos precisam ser levados em consideração. Embora os bancos de dados tradicionais possam fornecer contexto histórico, eles não garantem a preservação dos dados. Bancos de dados imutáveis, por sua própria natureza, garantem que nenhum dado seja excluído.

Auditoria e depuração

Os sistemas que mudam com frequência, como sites ou software, precisam preservar os principais instantâneos do sistema para rastrear as alterações. A maioria dos sistemas de controle de versão armazena dados em arquivos imutáveis para que não haja risco de substituí-los. As instituições financeiras também precisam de um banco de dados imutável para preservar todas as suas transações históricas. Outras organizações que precisam apresentar dados para auditorias frequentes também podem se beneficiar de um banco de dados imutável.

Como funciona um banco de dados imutável?

Em contraste com os bancos de dados relacionais tradicionais (bancos de dados mutáveis) que são baseados em registros, os bancos de dados imutáveis são baseados em logs. Quando um novo item de dados está disponível, o banco de dados mutável reescreve uma célula específica em uma tabela de dados. O banco de dados imutável armazena dados em logs e cria um novo log para cada novo dado.

Para entender como funciona um banco de dados imutável, observe um banco de dados simples que armazena detalhes de um artigo de blog. Um banco de dados relacional clássico armazenaria esses dados em um formato mutável, com os detalhes da postagem do blog armazenados em uma tabela. Suponha que permalink, título e conteúdo sejam as três colunas desta tabela. Em um banco de dados mutável, quando o título ou o conteúdo muda, o banco de dados executa uma operação de atualização. Os novos dados substituem a entrada anterior. Os títulos e conteúdos mais antigos são perdidos para sempre. Um banco de dados padrão e imutável armazena essas mesmas informações como logs.

O banco de dados mutável armazena apenas o estado atual do blog. O banco de dados imutável armazena o histórico do blog junto com o estado atual. Um banco de dados imutável executa apenas operações de inserção e nunca atualiza um campo de dados existente.

Como um banco de dados imutável armazena dados?

Continuando com o exemplo de postagem do blog, o banco de dados imutável usa uma estrutura de tabela diferente do banco de dados mutável. Cada revisão de postagem do blog é inserida em um banco de dados como uma nova linha em uma tabela. Os campos da tabela são os seguintes:

  • Número da revisão: esta é a chave primária da tabela. Cada revisão do blog deve ter um número de revisão exclusivo.
  • Carimbo de hora: a hora em que a revisão acontece. Deve ser um valor único.
  • Link permanente, título e conteúdo

Em contraste com o banco de dados mutável, onde cada revisão de postagem do blog substitui os dados do blog, o banco de dados imutável cria uma nova entrada de revisão para cada alteração na postagem do blog. Dessa forma, as informações sobre cada edição anterior do artigo do blog são retidas e podem ser recuperadas a qualquer momento com base no carimbo de data/hora ou número de revisão.

Quais são as vantagens dos dados imutáveis?

Operações mais rápidas

Quando os dados são armazenados como imutáveis, novos dados são anexados aos anteriores, juntamente com um carimbo de data/hora. Isso significa que o banco de dados pode simplesmente inserir dados sem bloquear o sistema para realizar verificações de integridade. Essa qualidade de dados imutáveis é crucial no caso de dados de fluxo e de sensor. Nesses casos, os dados chegam continuamente e precisam ser armazenados com latência mínima.

Contexto histórico

Muitas organizações precisam comparar dados históricos com a versão mais recente para obter análises melhores e mais contextuais. Bancos de dados imutáveis preservam todos os dados históricos, ajudando a criar pontos de verificação no passado para os quais um sistema pode ser restaurado.

Auditabilidade

Muitos setores, especialmente saúde e financeiro, podem enfrentar auditorias aleatórias. É crucial que eles preservem todos os dados para que tenham os dados históricos à mão, caso sejam necessários para uma auditoria.

Conformidade

Em todo o mundo, as regras de privacidade de dados são bastante rigorosas. Os usuários têm o direito de exigir uma cópia de todos os dados que uma organização coletou deles. Armazenar dados como imutáveis ajuda as organizações a cumprir tais solicitações.

Recurso de dados imutáveis
Como o gerenciamento eficaz de dados de referência agrega valor ao negócio?
Descubra os quatro Rs do gerenciamento de dados de referência e comece a construir seu business case hoje mesmo.

Quais são as desvantagens dos dados imutáveis?

Mais requisitos de armazenamento

Armazenar dados imutáveis tem mais requisitos de armazenamento em comparação com bancos de dados mutáveis tradicionais. Cada atualização é armazenada como um log diferente, o que aumenta o tamanho do banco de dados.

Complexidade

Bancos de dados imutáveis são mais complexos porque armazenam o contexto histórico. O banco de dados precisa lidar com as complexidades de armazenar cada transação.

Conformidade de dados

Por design, um banco de dados imutável nunca exclui nenhum dado. No entanto, a maioria dos regulamentos de dados exige que o sistema exclua os dados se solicitado por um usuário. Esse é um desafio significativo para bancos de dados imutáveis, construídos com base na suposição de que nenhum dado é excluído.

Como os bancos de dados imutáveis oferecem uma função de exclusão?

Inerentemente, os bancos de dados imutáveis não fornecem uma função de exclusão porque o próprio banco de dados é projetado com base no princípio de que os dados nunca são excluídos. No entanto, como vimos na seção anterior, os regulamentos de privacidade de dados dão aos usuários o direito de serem “esquecidos”. Isso requer que os dados sejam excluídos/sobrescritos.

A destruição de criptografia é uma solução que pode ser usada para “sobrescrever” os dados imutáveis. Em um banco de dados com um recurso de destruição de criptografia, os dados imutáveis são armazenados em um formato criptografado. Uma chave de criptografia é necessária para descriptografar os dados pessoais armazenados no banco de dados. Todas essas chaves são armazenadas em um banco de dados mutável. Quando há uma solicitação para substituir os dados, os dados não são excluídos. Ao invés disso, a chave de criptografia associada é substituída. Sem a chave de criptografia, os dados não são mais úteis. Isso é igual a excluir os dados associados à chave de criptografia. Esta é uma solução aceitável para as regras de privacidade de dados da União Europeia.