Orientado a colunas

De GEATI - Grupo de Estudos Avançados em TI
Ir para: navegação, pesquisa

Segundo (Daniel Pereira, 2014)[1] este tipo de sistemas NoSQL é muitas vezes considerado como um tipo específico do modelo par chave-valor. Os sistemas de bases de dados que recorrem a este modelo definem a estrutura do valor (no par chave-valor) como um conjunto predefinido de colunas (Indrawan-Santiago, 2012). Logo este sistema pode ser caracterizado como uma tabela, onde as linhas podem ter número de colunas variáveis.

Os sistemas orientados a colunas, por seu formato tabular de linhas e colunas, lembram bastante a um BD relacional, porém a maior diferença entre eles é como ambos gerenciarão valores nulos. Em um caso onde queira-se armazenar vários atributos, um sistema relacional, mesmo não existindo nenhum dado a guardar, ele ainda guardará um valor nulo, já os sistemas orientados a colunas, apenas armazenam pares chave-valor em uma linha, se este dado realmente existir.

Além disso, em um BD relacional, os dados de um registro são armazenados contiguamente no disco. Por exemplo, caso se queira guardar id, nome e telefone de usuários, em um sistema de agenda telefônica, os registros seriam: id1, sala1, curso1; id2, sala2, curso2. Essa estrutura torna a escrita muito rápida, já que todos os dados de um registro são colocados em apenas um bloco do disco. Essa estrutura também é eficiente quando deseja-se ler registros por inteiro. Porém, caso queira-se ler poucas colunas de muitos registros, este modelo torna-se lento, já que vários blocos do disco têm que ser acessados. Para os casos em que se pretende otimizar a leitura de um banco, a orientação a colunas tende a ser mais interessante. Seguindo a ideia do exemplo anterior, ficaria: id1, id2; sala1, sala2; curso1, curso2. Uma das dificuldades deste modelo é a escrita de um novo registro. Assim, em um primeiro momento, os bancos tradicionais são mais adequados a processamento de transações on-line (OLTP), enquanto os bancos de dados de colunas são mais interessantes para processamento analítico on-line (OLAP) (DIANA e GEROSA, 2012)[2].

Os principais bancos de dados nessa categoria são o Cassandra, HBase e Hypertable.

Cassandra

  1. PEREIRA, D. J. P. Armazéns de dados em bases de dados NoSQL. 2014. 178 f. Dissertação (Mestrado em Engenharia Informática) – ISEP, Porto.
  2. DIANA, M. de; GEROSA, M. A. NOSQL na Web 2.0: Um estudo comparativo de bancos não-relacionais para armazenamento de dados web 2.0. In: Workshop de Teses e Dissertações em BD - WTDB, 9., 2010, Belo Horizonte. Anais... Belo Horizonte: SBC, 2010.