Banco de dados de correlação - Correlation database

Um banco de dados de correlação é um sistema de gerenciamento de banco de dados (DBMS) que é independente do modelo de dados e projetado para tratar com eficiência consultas ad hoc não planejadas em um ambiente de sistema analítico.

Ao contrário dos sistemas de gerenciamento de banco de dados relacional orientado a linha , que usam uma abordagem de armazenamento baseado em registros, ou bancos de dados orientados a coluna que usam um método de armazenamento baseado em coluna, um banco de dados de correlação usa uma arquitetura de armazenamento baseado em valor (VBS) em que cada dado exclusivo o valor é armazenado apenas uma vez e um sistema de indexação gerado automaticamente mantém o contexto para todos os valores.

Estrutura

Como um DBMS de correlação armazena cada valor de dados exclusivo apenas uma vez, o tamanho físico do banco de dados é significativamente menor do que os bancos de dados relacionais ou orientados a colunas, sem o uso de técnicas de compactação de dados . Acima de aproximadamente 30 GB, um DBMS de correlação pode se tornar menor do que o conjunto de dados brutos.

O modelo VBS usado por um CDBMS consiste em três conjuntos físicos primários de objetos que são armazenados e gerenciados:

  • um dicionário de dados ( metadados );
  • um conjunto de dados de indexação e vinculação (metadados adicionais); e
  • os valores de dados reais que compõem as informações armazenadas.

No modelo VBS, cada valor exclusivo nos dados brutos é armazenado apenas uma vez; portanto, os dados são sempre normalizados no nível de valores exclusivos. Isso elimina a necessidade de normalizar os conjuntos de dados no esquema lógico.

Os valores dos dados são armazenados juntos em conjuntos ordenados com base nos tipos de dados: todos os números inteiros em um conjunto, caracteres em outro, etc. Isso otimiza os processos de tratamento de dados que acessam os valores.

Além dos valores de dados típicos, o armazenamento de valor de dados contém um tipo especial de dados para armazenar relacionamentos entre tabelas. Isso funciona de forma semelhante às chaves estrangeiras em estruturas RDBMS, mas com um CDBMS, o relacionamento é conhecido pelo dicionário e armazenado como um valor de dados, tornando a navegação entre as tabelas totalmente automática.

O dicionário de dados contém metadados típicos mais dados estatísticos adicionais sobre as tabelas, colunas e ocorrências de valores no esquema lógico . Ele também mantém informações sobre os relacionamentos entre as tabelas lógicas. O armazenamento de índice e vinculação inclui todos os dados usados ​​para localizar o conteúdo de um registro a partir dos valores ordenados no armazenamento de dados.

Embora não seja um sistema de armazenamento baseado em RAM , um CDBMS é projetado para usar tanta RAM quanto o sistema operacional pode fornecer. Para grandes bancos de dados, RAM adicional melhora o desempenho. Geralmente, 4 GB de RAM fornecem tempos de acesso otimizados de até cerca de 100 milhões de registros. 8 GB de RAM são adequados para bancos de dados com até 10 vezes esse tamanho. Como a RAM incremental consumida diminui à medida que o banco de dados cresce, 16 GB de RAM geralmente suportam bancos de dados contendo até aproximadamente 20 bilhões de registros.

Comparação de estruturas de armazenamento DBMS

Os registros de amostra mostrados abaixo ilustram as diferenças físicas nas estruturas de armazenamento usadas em bancos de dados relacionais, orientados a colunas e de correlação.

ID do cliente Nome Cidade Estado
12222 ABC Corp Minneapolis MN
19434 A1 Mfg Duluth MN
20523 J&J Inc São Paulo MN

Armazenamento em RDBMS

A estrutura baseada em registro usada em um RDBMS armazena elementos na mesma linha adjacentes uns aos outros. Variações como a indexação agrupada podem alterar a sequência das linhas, mas todas as linhas, colunas e valores serão armazenados como na tabela. A tabela acima pode ser armazenada como:

      12222,ABC Corp,Minneapolis,MN;19434,A1 Mfg,Duluth,MN;20523,J&J Inc,St. Paul,MN

Armazenamento em bancos de dados orientados a colunas

Na estrutura baseada em colunas, os elementos da mesma coluna são armazenados adjacentes uns aos outros. Duplicatas consecutivas em uma única coluna podem ser removidas automaticamente ou compactadas de forma eficiente.

      12222,19434,20523;ABC Corp,A1 Mfg,J&J Inc;Minneapolis,Duluth,St.Paul;MN,MN,MN

Armazenamento em CDBMS

Na estrutura VBS usada em um CDBMS, cada valor único é armazenado uma vez e recebe um identificador abstrato (numérico), independentemente do número de ocorrências ou locais no conjunto de dados original. O conjunto de dados original é então construído referenciando esses identificadores lógicos. O índice de correlação pode ser semelhante ao armazenamento abaixo. Observe que o valor "MN" que ocorre várias vezes nos dados acima é incluído apenas uma vez. Conforme a quantidade de dados repetidos aumenta, esse benefício se multiplica.

      1:12222,2:19434,3:20523,4:ABC Corp,5:A1 Mfg,6:J&J Inc,7:Minneapolis,8:Duluth,9:St.Paul,10:MN

Os registros em nossa tabela de exemplo acima podem ser expressos como:

      11:[1,4,7,10],12:[2,5,8,10],13:[3,6,9,10]

Esse processo de correlação é uma forma de normalização do banco de dados . Assim como se pode obter alguns benefícios do armazenamento orientado a coluna em um RDBMS, também se pode obter alguns benefícios do banco de dados de correlação por meio da normalização do banco de dados. No entanto, em um RDBMS tradicional, esse processo de normalização requer trabalho na forma de configuração de tabela, procedimentos armazenados e instruções SQL. Dizemos que um banco de dados é um banco de dados de correlação quando expressa naturalmente um esquema totalmente normalizado sem essa configuração extra. Como resultado, um banco de dados de correlação pode ter otimizações mais focadas para essa estrutura totalmente normalizada.

Esse processo de correlação é semelhante ao que ocorre em um índice invertido orientado para pesquisa de texto .

Vantagens e desvantagens

Para aplicativos de data warehouse analítico , um CDBMS tem várias vantagens sobre estruturas de banco de dados alternativas. Primeiro, como o próprio mecanismo de banco de dados indexa todos os dados e gera automaticamente seu próprio esquema durante o carregamento, ele pode ser implementado rapidamente e é fácil de atualizar. Não há necessidade de pré-design físico e nem de reestruturar o banco de dados. Em segundo lugar, um CDBMS permite a criação e execução de consultas complexas, como consultas associativas ("mostre tudo o que está relacionado ax ") que são difíceis, senão impossíveis, de modelar em SQL . A principal vantagem do CDBMS é que ele é otimizado para a execução de consultas ad hoc - consultas não previstas durante a fase de design do data warehouse.

Um CDBMS tem duas desvantagens em comparação com as alternativas de banco de dados. Ao contrário dos bancos de dados relacionais, que podem ser usados ​​em uma ampla variedade de aplicativos, um banco de dados de correlação é projetado especificamente para aplicativos analíticos e não fornece recursos de gerenciamento de transações; não pode ser usado para processamento transacional . Em segundo lugar, como ele indexa todos os dados durante o processo de carregamento, a velocidade de carregamento físico de um CDBMS é mais lenta do que as estruturas relacionais ou orientadas por coluna. No entanto, como elimina a necessidade de um pré-design lógico ou físico, o "tempo de uso" geral de um CDBMS é geralmente semelhante ou um pouco mais rápido do que as estruturas alternativas.

Referências