NoSQL - Banco de Dados em Grafos

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 14

SQL

NoSQL Banco de Dados em Grafos

Era do SGBDR

nica soluo do mercado para banco de dados;

Baixo desempenho para determinados tipos de armazenamento;

Dificuldade na escalabilidade horizontal;

Limitao nos relacionamentos;

Baseado em schematas.

NoSQL

Sem significado oficial, porm aceito como Not Only SQL;

Linguagem de Programao de tipagem fraca;

Sem schematas (Schemaless);

Escalabilidade horizontal (Clusters);

Dados organizados em agregados;

Criados para trabalhar com enormes volumes de dados com grande


eficincia

Banco de Dados em Grafos

Desenvolvidos para gerenciar relacionamentos complexos;

Escalabilidade vertical;

No recomendado para ambientes clusterizados;

Retorno eficiente de pesquisa;

No trabalha com agregados, e sim com grafos;

Relacionamento a nodos, no a tabelas.

Essa apresentao ser


baseada no Neo4j em conjunto
com Cypher, por isso possvel
que o que seja apresentado no
seja encontrado em outros
Bancos de Dados em Grafos.

O que o Neo4j?

Banco de dados em Grafos;

Desenvolvido e mantido pela


Neo Technology;

Licenciado atravs da
Licena Pblica Geral GNU
(GPL) e da Licena Pblica
Geral Affero (AGPL);

Atualmente na verso 2.1.5;

Funes do Neo4j

Compatvel com as propriedades ACID (Atomicidade, Consistncia,


Isolamento e Durabilidade);

Capacidade de trabalhar com mltiplos nveis de profundidade de


relacionamento;

Gerenciamento das transaes com Apache ZooKeeper;

Utiliza a Linguagem Cypher para pesquisa, porm compatvel


tambm com Gremlin;

Banco de dados de alta disponibilidade;

Utiliza o Apache Lucene como servio de indexao;

Escalabilidade horizontal atravs de fragmentao.

Quem utiliza Neo4j?

Aonde se utiliza o Neo4j

Redes sociais ou qualquer outro tipo de dados relacionados;

Servios baseados em localidade;

Mecanismos de recomendao;

Relacionamentos muitos complexos para serem representados pelo


SGBDR;

Aonde no se utiliza o Neo4j

Operaes que envolvam todo o grafo;

Relacionamentos entre tabelas que possam ser representados pelo


SGBDR;

Cypher Query Language -CQL

Linguagem de programao desenvolvido pela Neo Technology


para uso exclusivo no Neo4j;

Uso para pesquisas de nodes em banco de dados de grafos;

Para pesquisa necessrio familiaridade com os algoritmos de


pesquisa;

Linguagem de tipagem fraca;

CQL vs SQL
SQL

CQL

Select 'campo' from 'tabela'

Match ('variavel':'padro')

Delete 'contedo' from 'tabela'

Remove 'contedo'

Create 'objeto' 'nome do objeto'

Create ('variavel':'label do nodo')

Drop 'tabela'

Delete 'resultado'

---------------------------------------------------

Start 'padro'

Order by

Order by

Inner Join

Union All

Primary/Foreigner Key

---------------------------------------------------

Exemplo de Cdigos em CQL

MATCH (n) RETURN (n)


Retorne todos os nodos de seu banco de dados;

CREATE (n:celular{type:Smartphone,androidVersion:5.0})
Cria um novo nodo cuja label celular, e seu tipo Smartphone
e a verso do android 5.0

CREATE (n:Smartphone{type:5,androidVersion:Lollipop})
Cria um novo nodo cuja label Smartphone, o tipo 5, e a verso
do android Lollipop

MATCH (n:celular) SET n.type=5 RETURN n;


Busca um nodo cuja label celular e atualiza o campo type para o
valor 5, depois retorna o contedo deste nodo;

Exemplo de Cdigos em CQL

CREATE (n) [r:RELTYPE{}]->(p) return r;


Cria um relacionamento do nodo n para o nodo p. Caso queira que
ambos os lados se relacionem, ser necessrio tambm fazer o
relacionamento inverso, substituindo o nodo n pelo p no cdigo
acima, e vice-versa;

MATCH (n) -[r]->(p) return r;


Retorna todos os relacionamentos aonde o nodo (n) est ligado ao
nodo (p);

MATCH (n:celular) DELETE n;


Remove todos os nodos que possuem a label celular;

Bibliografia

Livros:
NoSQL Essencial Um Guia Conciso para o Mundo Emergente
da Persistncia Poliglota, Pramond J. Sadalage e Martin Fowler,
Editora Novatec (Cap. 11 Pg. 161-175);
Fundamentals of Database Systems, E.N;
Graphs Database, I. Robinson, J. Webber e E. Eifrem, O'reilly;
Banco de Dados Relacionais, E.R da Costa;

Sites:
http://neo4j.com/docs/stable/preface.html

Você também pode gostar