Orientado a agregados

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

O que é

Nem sempre pode-se tratar os dados com toda essa simplicidade, e necessita-se o uso de registros mais complexos. A orientação a agregados entende este ponto, trabalhando com agregados, um registro complexo com listas e outras estruturas de dados aninhadas e leva em consideração como os dados serão acessados. Um agregado é um conjunto de objetos relacionados que desejamos tratar como unidade (NoSQL Essencial)[1].

Exemplo da nota fiscal usando a orientação a agregados:

NotaAGREGADA.pngNotaJSON.png

A segunda imagem trata-se da representação do diagrama ER na linguagem JSON, bastante comum em varios BDs NoSQL.

Consequências da orientação a agregados

No que se diz respeito à representação dos dados, o modelo relacional, supre suas funções ao mostrar por exemplo que uma nota fiscal consiste em um cliente que fez a compra de produtos em determinadas quantidades e valores. Onde é expresso atravez relacionamentos com chaves estrangeiras - Mas não há o que diferencie relacionamentos que representam agregações daqueles que não o fazem (NoSQL Essencial)[1]. Assim o SGBD não pode reconhecer a estrutura unitária de alguns relacionamentos para ajudar a armazenação e distribuição dos dados em cluster. O modelo orientado a agregados é uma unidade natural de replicação, já que é tratado como unidade, facilitando a execução em um cluster pois o numero de nodos pesquisados será menor ao ter-se todas as informações necessárias para uma operação X em um único nó. O que é o argumento crucial para a ascensão NoSQL. Resumindo, o agregado será como um "aviso" ao SGBD que tais dados serão manipulados em conjunto e necessitarão ser armazenadas no mesmo nó. Falando em leitura dos dados, utilizando o exemplo da nota fiscal, esta constitui um bom agregado quando um cliente estiver revisando compras ou um varejista estiver processando vendas, no entanto se um varejista quiser analisar a venda de certos produtos nos ultimos meses, tornaria-se um problema já que teria que carregar todas as N.Fs separadamente. Assim uma estrutura de agregado pode ser útil com algumas interações de dados, mas ser um obstáculo com outras.

Transações

Como já explicados, BDRs usam as propriedades transacionais ACID. Muitas vezes, afirma-se que os BD NoSQL não suportam transações ACID, e por isso sacrificam consistência porém essa simplificação é muito genérica, mesmo estando correta, já que BDs orientados a agregados não suportam transações ACID que se espalham por vários agregados. Em vez disso, suportam transações atômicas em um único agregado por vez. Acima de tudo, a consistência em BDs NoSQL envolve muito mais do que apenas as propriedades ACID.
  1. 1,0 1,1 SALADAGE, P. J; FOWLER, M. NOSQL Essencial: Um guia conciso para o mundo emergente de persistencia poliglota. Pearson Education. 2013. 220 p;