análise de informações tcu - ti · obs: alguns autores alegam que “nosql” significa “not...

51
1 Análise de Informações Marcio Victorino TCU - TI

Upload: others

Post on 25-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

1

Análise de Informações

Marcio Victorino

TCU - TI

Page 2: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

2

NoSQL

Marcio Victorino

Page 3: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

3

Bibliografia

Marcio Victorino

NoSQL Essencial – Martin Fowler.

http://nosql-database.org/

http://hadoop.apache.org/

http://bigdatauniversity.com/

http://bigdataprojects.org/

ACM.

IEEE.

Page 4: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

4

NoSQL

Sofisticação crescente dos serviços disponibilizados na web: – Facebook, uma rede social com mais de 1 bilhão

de usuários; – Google, um serviço de busca com mais de 190

milhões de visitantes únicos por mês; – Amazon, uma loja de varejo on-line com picos

que chegam a mais de 1 milhão de transações por segundo.

O grande desafio: armazenar, recuperar e processar, de forma eficaz, a grande quantidade de dados estruturados e não-estruturados disponíveis.

Marcio Victorino

Page 5: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

5

NoSQL

Necessidades: processar o volume crescente de dados;

esquemas flexíveis;

maior distribuição do processamento;

flexibilização das estruturas de armazenamento desses dados;

escalabilidade horizontal;

minimizar a incompatibilidade de impedância;

lidar com documentos XML e JSON (JavaScript Object Notation).

Marcio Victorino

Page 6: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

6

NoSQL

Escalabilidade:

Horizontal (ir para fora).

Vertical (ir para cima).

Marcio Victorino

Page 7: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

7

NoSQL

Incompatibilidade de impedância:

Marcio Victorino

Page 8: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

8

NoSQL

Para atender a essas novas demandas surgiu uma nova geração de bancos de dados sem esquemas rígidos baseados em modelos não-relacionais, chamados bancos de dados NoSQL.

Marcio Victorino

Page 9: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

9

NoSQL O termo "NoSQL" foi utilizado pela primeira vez em 1990

por Carlo Strozzi para designer um BD relacional de código aberto que armazenava suas tabelas sob a forma de arquivos ASCII, e cada tupla era representada por uma linha com os campos separados por tabulação.

O nome vem do fato de que o BD não utilizava SQL como linguagem de consulta. Em vez disso, ele era manipulado por shell scripts.

Apenas em 2011 esse termo passou a representar uma família de bancos de dados que podem ser categorizados nos seguintes modelos: grafos, documentos, família de colunas e par chave/valor.

Marcio Victorino

Page 10: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

10

NoSQL O uso do termo “NoSQL” como conhecemos hoje é

resultado de uma reunião realizada no dia 11 de julho de 2009, em São Francisco, organizada por Johan Oskarsson.

Surgiu como um hashtag para o Twitter: curto, fácil de lembrar e sem muitos semelhantes no Google.

O autor não esperava que se tornasse o nome da tendência tecnológica, pois o nome não descreve verdadeiramente esses sistemas.

Marcio Victorino

Page 11: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

11

NoSQL

Características dos SGBDs: Não utilizam o SQL (possuem linguagens semelhantes).

Geralmente são projetos de código aberto.

A maioria dos BDs é orientada pela necessidade de execução em clusters.

Oferecem uma gama de opções para consistência e distribuição.

Não possuem esquemas rígidos.

Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No

entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL” . Além disso, essa definição causaria uma grande confusão, pois o Oracle e o Postgres se enquadrariam nela.

Marcio Victorino

Page 12: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

12

NoSQL Modelo de Dados Agregados:

É um conjunto de objetos relacionados que desejamos tratar como uma unidade. É uma unidade de manipulação de dados e gerenciamento de consistência.

Possuem uma estrutura mais complexa que um conjunto de tuplas.

Auxilia a execução em um cluster. Não possuem transações ACID que se

espalham por múltiplos agregados. Suportam manipulação atômica em um único

agregado por vez. Exemplos: modelo de dados chave/valor, de

documentos e família de colunas. Marcio Victorino

Page 13: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

13

NoSQL Modelo de Dados Agregados:

Marcio Victorino

Page 14: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

14

NoSQL Modelo de Dados Agregados:

Marcio Victorino

Page 15: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

15

NoSQL

Esquemas: Esses SGBDs não utilizam esquemas.

O armazenamento torna-se muito mais informal.

Facilidade de lidar com dados não uniformes.

Cada registro contém apenas o necessário.

Transfere o esquema para o código do aplicativo.

Marcio Victorino

Page 16: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

16

NoSQL Visão Materializada:

Esse SGBDs não possuem visões tal como os bancos relacionais. No entanto, eles podem ter consultas pré-computadas, postas em cache, reutilizando o termo “visão materializada” para descrevê-las.

Uteis quando se pretende consolidar dados existentes em vários agregados.

Existem duas abordagens: antecipada: a tabela e a visão são atualizadas

simultaneamente.

em intervalos regulares: é determinado um intervalo de tempo entre as atualizações da visão.

Marcio Victorino

Page 17: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

17

NoSQL

Modelos de Distribuição:

Replicação: obtém os mesmos dados e os copia em múltiplos nodos (mestre escravo e p2p).

Fragmentação: coloca dados diferente em nodos diferentes.

São duas técnicas ortogonais: pode-se utilizar cada uma ou ambas.

Marcio Victorino

Page 18: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

18

NoSQL Replicação Mestre escravo:

Replica os dados em múltiplos nodos.

Um nodo é designado como o mestre, ou primário, o qual é a fonte oficial dos dados e, geralmente, fica responsável por processar quaisquer atualizações nesses dados.

Os demais nodos são escravos, ou secundários.

Um processo de replicação sincroniza os escravos com o mestre.

É mais útil para a escalabilidade quando há um conjunto de dados com muitas leituras.

Caso o mestre falhe, os escravos ainda podem lidar com as solicitações de leitura (resiliência de leitura).

Os mestres podem ser designados manual ou automaticamente.

Pode causar inconsistência de leitura, caso todos os escravos não estejam sincronizados.

Ajuda com a escalabilidade de leitura, mas não com a de gravação.

Marcio Victorino

Page 19: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

19

NoSQL Replicação ponto a ponto (p2p):

Não possui um mestre.

Todas as réplicas têm o mesmo peso.

Todas as réplicas podem receber gravações.

A perda de algumas réplicas não impede o acesso ao armazenamento de dados.

Pode adicionar facilmente novos nodos para melhorar o seu desempenho.

Pode gerar gravações inconsistentes.

Um bom ponto de partida para a replicação p2p é ter uma replicação de fator 3 (três cópias de cada fragmento).

Marcio Victorino

Page 20: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

20

NoSQL Consistência de Replicação:

Garante que o mesmo item de dados tenha o mesmo valor lido a partir de diferentes réplicas.

Eventualmente consistente: em algum momento, todos os nodos podem ter inconsistência de replicação, mas, se não houver mais atualizações, todos os nodos acabarão atualizados com o mesmo valor.

Postagem de comentários em blog.

Marcio Victorino

Page 21: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

21

NoSQL Transações:

Normalmente os SGBDs NoSQL orientados a agregados não suportam transações ACID.

Os SGBDs NoSQL orientados a agregados suportam transações atômicas, mas apenas dentro de um único agregado.

Uma alteração que afete múltiplos agregados deixa aberto um período de tempo no qual os clientes poderiam executar uma leitura inconsistente (janela de inconsistência, no SimpleDB da Amazon < 1seg).

Marcio Victorino

Page 22: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

22

NoSQL Transações:

SGBDs orientado a grafos suportam transações ACID.

Abordagens otimistas detectam conflitos e os resolvem.

Abordagens pessimistas bloqueiam os registros para evitar conflitos.

Abordagens pessimistas, muitas vezes, degradam severamente a capacidade de resposta de um sistema em um nível que se torna inapropriado para o seu propósito (programação concorrente).

Marcio Victorino

Page 23: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

23

NoSQL Teorema CAP:

Dadas três propriedades, Consistência, Disponibilidade (Availability) e de Particionamento, somente é possível obter duas delas.

Disponibilidade: se for possível coversar com um nodo do cluster, então pode-se ler e gravar.

Tolerância a partições:o cluster pode suportar falhas na comunicação que o dividam em múltiplas partições incapazes de se comunicar entre si, situação conhecida como divisão cerebral (split brain).

Marcio Victorino

Page 24: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

24

NoSQL Teorema CAP:

Servidor único: possui Consistência e Disponibilidade, mas não possui Particionamento.

Embora o teorema CAP seja, muitas vezes, declarado como “só pode ter dois dos três”, na prática ele afirma que, em um sistema que possa sofrer partições, como os sistemas distribuídos, você tem que balancear a consistência com disponibilidade. Nesse caso, o sistema resultante não seria nem perfeitamente consistente nem perfeitamente disponível, mas teria uma combinação razoável para suas necessidades específicas.

Marcio Victorino

Page 25: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

25

NoSQL ACID x BASE:

BASE - Basically Available, Soft state, Eventual consistency.

SGBDs NoSQL seguem as propriedades BASE. Não há definição consensual para “basicamente disponível” nem para “estado soft”.

Consistência eventual significa que, em algum momento, todos os nodos em um sistema NoSQL podem ter inconsistências de replicação, mas, se não houver mais atualizações, todos os nodos acabarão atualizados com o mesmo valor.

BASE é um acrônimo artificial. Há um balanceamento entre ACID e BASE, não são

uma escolha binária.

Marcio Victorino

Page 26: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

26

NoSQL Relaxamento da Durabilidade em SGBDs

NoSQL: Há casos em que se deseja trocar um pouco de

durabilidade por desempenho melhor. O estado de seção de usuários podem ser não

duráveis em troca de uma maior responsividade do web site.

O banco de dados é executado, em sua maior parte, em memória e de tempos em tempos as atualizações são salvas em disco. Neste caso, se o servidor falhar dados serão perdidos.

Uma falha na durabilidade da replicação ocorre quando um nodo processa uma atualização, mas falha antes que essa atualização seja replicada para os outros nodos.

Marcio Victorino

Page 27: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

27

NoSQL Quórum de gravação:

No caso de dados replicados em três nodos, não é necessário que todos eles reconheçam uma gravação para assegurar alta consistência, apenas dois deles, a maioria, já é o suficiente.

W > N/2: o número de nodos participantes da gravação (W) deve ser maior do que a metade do número de nodos envolvidos na replicação. O número de réplicas, muitas vezes, é chamado de fator de replicação.

Quórum de leitura: Depende de quantos nodos precisam confirmar uma

gravação. Pode-se ter leituras fortemente consistentes, mesmo sem

ter alta consistência de gravações. Leitura altamente consistente: R + W > N.

Marcio Victorino

Page 28: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

28

NoSQL

Marcador de Versão:

Consiste de um campo que muda a cada vez que os dados subjacentes no registro sejam alterados.

A versão deve ser anotada durante a leitura do dado, de modo, que quando for gravar dados possa verificar se a versão sofreu alterações.

Marcio Victorino

Page 29: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

29

NoSQL Marcador de Versão:

Há diversas formas de criar marcadores de versão: Contador: precisam de um único servidor mestre

para garantir unicidade. Permite descobrir qual versão é mais recente.

GUID: grande número aleatório com a garantia de que seja único, utiliza combinações de fontes aleatórias. São grandes e não podem ser comparados diretamente para saber qual é o mais recente.

Hash: pode ser criado a partir do dados armazenado. São grandes e não podem ser comparados diretamente para saber qual é o mais recente.

Timestamp: são razoavelmente curtos e podem ser comparados para descobrir qual é o mais recente.

Marcio Victorino

Page 30: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

30

NoSQL

Marcador de Versão em múltiplos nodos: Um único mestre: contador.

Múltiplos mestres: marcador vetorial. Consiste de um conjunto de contadores,

um para cada nodo.

Um contador para três nodos seria similar a [n1: 45, n2: 54, n3: 29].

Cada vez que um nodo sofre uma atualização interna, ele atualiza o seu próprio contador.

Marcio Victorino

Page 31: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

31

Banco de Dados de Chave-Valor

Marcio Victorino

Page 32: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

32

BD Chave-Valor Um depósito chave-valor é uma tabela

hash simples, utilizada principalmente quando todo o acesso ao BD é feito por meio da chave primária.

Equivale a uma tabela em um SGBDR tradicional com duas colunas, ID e Nome, sendo a coluna ID a chave e a coluna Nome, Armazenando o Valor.

Se um ID já existir, o Valor atual é sobrescrito, caso contrário, cria-se um novo registro.

Marcio Victorino

Page 33: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

33

BD Chave-Valor São os depósitos de dados NoSQL mais

simples de utilizar da perspectiva de uma API.

O valor é um dado que o depósito apenas armazena, sem se preocupar ou saber seu conteúdo. É responsabilidade do aplicativo entender o que foi armazenado. O valor pode ser blob, texto, JSON, XML, etc.

O acesso sempre é feito pela chave e, por isso, esses BDs geralmente apresentam um ótimo desempenho e escalabilidade.

Marcio Victorino

Page 34: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

34

BD Chave-Valor

Riak.

Redis.

MemcachedDB.

HamsterDB.

AmazonDynamoDB.

Marcio Victorino

Page 35: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

35

BD Chave-Valor Todos os armazenamentos de chave-valor só

podem ser consultados pela chave.

Muito utilizados para armazenar: – dados de sessão;

– dados de carrinhos de compras;

– perfis de usuário.

Não deve ser utilizado: – Quando houver relacionamentos entre os dados;

– Transações com várias chaves de uma vez;

– Consulta por dados.

Marcio Victorino

Page 36: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

36

Banco de Dados de Documentos

Marcio Victorino

Page 37: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

37

BD de Documentos

Os documentos armazenados podem ser JSON, BSON, XML, entre outros.

Os documentos armazenados são semelhantes entre si, mas não têm de ser exatamente os mesmos.

Armazenam documentos na parte do valor do armazenamento de chave-valor. Nesses bancos a parte valor pode ser consultada.

A chave pode ser atribuída pelo usuário, desde que seja única.

Marcio Victorino

Page 38: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

38

MomgoDB.

CouchDB.

RavenDB.

BD de Documentos

Marcio Victorino

Page 39: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

39

Muito utilizados para armazenar: – Registro de eventos (log);

– Sistemas gerenciadores de conteúdo;

– Blog;

– Análises web em tempo real;

– Comércio eletrônico.

Não deve ser utilizado: – Transações com vários documentos de uma vez;

– Consulta em estruturas agregadas variáves.

BD de Documentos

Marcio Victorino

Page 40: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

40

Banco de Dados de Família de Colunas

Marcio Victorino

Page 41: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

41

BD Família de Colunas Permitem o armazenamento de dados com chaves

mapeadas para valores, e os valores são agrupados em múltiplas famílias de colunas, cada uma dessas famílias de colunas funcionando como um mapa de dados.

Famílias de colunas são grupos de dados relacionados que, frequentemente, são acessados juntos.

Marcio Victorino

Page 42: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

42

Cada família de colunas pode ser comparada a um contêiner de linhas em uma tabela de SGBDR, onde a chave identifica a linha, que é constituída de múltiplas colunas.

Linhas diferentes não precisam possuir as mesmas colunas, e novas colunas podem ser adicionadas a qualquer linha, a qualquer momento, sem a obrigatoriedade de ter de adicioná-las às outras linhas também.

Famílias de colunas são eficazes para manter dados relacionados agrupados.

BD Família de Colunas

Marcio Victorino

Page 43: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

43

Cassandra.

Hbase.

Hypertable.

Amazon SimpleDB.

BD Família de Colunas

Marcio Victorino

Page 44: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

44

Muito utilizados para armazenar: – Registro de eventos (log);

– Sistemas gerenciadores de conteúdo;

– Blog;

– Contadores (visitante de paginas);

– Uso expirado (banners).

Não deve ser utilizado: – Transações ACID;

– Consulta em estruturas agregadas variáveis.

BD Família de Colunas

Marcio Victorino

Page 45: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

45

Banco de Dados de Grafos

Marcio Victorino

Page 46: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

46

BD de Grafos

Armazenam entidades e relacionamento entre essas entidades.

Entidades são nós que possuem propriedades.

Relacionamento são arestas que podem possuir várias propriedades.

As arestas possuem significado direcional.

Uma consulta é conhecida como travessia do grafo.

Não há limites para o número e tipos de relacionamento que um nodo pode ter.

Não são orientados a agregados.

Marcio Victorino

Page 47: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

47

BD de Grafos

Marcio Victorino

Page 48: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

48

Operam em nodos conectados, então, a maioria dos BDs, geralmente, não suporta a distribuição de nodos em servidores diferentes.

Há algumas soluções que suportam a distribuição de nodos em um cluster de servidores.

Podem ser compatíveis com as propriedades ACID (Neo4J).

Por serem orientados a relacionamentos, sua fragmentação é difícil.

BD de Grafos

Marcio Victorino

Page 49: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

49

Neo4J.

Infinite Graph.

BD de Grafos

Marcio Victorino

Page 50: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

50

Muito utilizados para armazenar:

– Redes sociais;

– Roteamento, envio e serviços baseados em localização;

–Mecanismos de recomendação;

Não deve ser utilizado:

–Quando é comum se alterar propriedades em todas as entidades do domínio modelado.

BD de Grafos

Marcio Victorino

Page 51: Análise de Informações TCU - TI · Obs: Alguns autores alegam que “NoSQL” significa “Not Only SQL”. No entanto Fowler alega que, nesse caso, a escrita correta seria “NOSQL”

51

Fim

Marcio Victorino