Sei sulla pagina 1di 10

INTITUTO FEDERAL DO NORTE DE MINAS GERAIS CAMPUS

JANUARIA
CURSO DE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE
SISTEMA

ANDRE FELLYPE MATOS MOTA

GRAPH DATABASE NEO4J

JANUARIA
2013

Sumrio
Histria do Graph Database .................................................................................................................... 3
Redes complexas ..................................................................................................................................... 3
Modelo Relacional................................................................................................................................... 4
Suas desvantagens .............................................................................................................................. 4
Exemplo ............................................................................................................................................... 4
Aplicaes para os Graph Database ........................................................................................................ 4
Redes Sociais ....................................................................................................................................... 4
Redes Biolgica ................................................................................................................................... 5
Redes de Informao .......................................................................................................................... 5
Redes de Tecnolgicas ........................................................................................................................ 5
Definio de Graph Database.................................................................................................................. 6
Pratica de Graph Database...................................................................................................................... 7
Neo4J ....................................................................................................................................................... 7
Instalao: ........................................................................................................................................... 7
Utilizao ............................................................................................................................................. 8
Neo4J-ADICIONAR VERTEX .................................................................................................................. 8
Neo4J-VISUALIZAR............................................................................................................................... 8
Visualizar s os vrtices:.................................................................................................................. 8
Visualizar os vrtices com todos os seus atributos: ........................................................................ 8
Visualizar os vrtices com o atributo que escolher: ....................................................................... 8
Neo4J- REALIZAR UPDATE ................................................................................................................... 8
Alterar: ............................................................................................................................................ 8
Neo4J-Relacionamento ....................................................................................................................... 8
Atribuir o nome para o valor do vrtice: ......................................................................................... 8
Realizar relacionamento: ................................................................................................................ 9
Visualizar Relacionamento .............................................................................................................. 9
Deletar relacionamento: ................................................................................................................. 9
Neo4J Programas.......................................................................................................................... 9
Concluso ................................................................................................................................................ 9
Referencias ............................................................................................................................................ 10

Histria do Graph Database


Primeiros estudos sobrea graph database datam 1975 atravs de Roussopoulos
e Mylopoulos que propuseram uma rede semntica para armazenar dados.
Entretanto, apenas nas ltimas dcadas implementaes dos modelos passaram
a ser utilizadas em pesquisas e empresas, principalmente devido ao crescimento
das redes sociais e redes biolgicas.
S que a maioria dos trabalhos apareceram muitos anos depois. Algumas das
razes para isso foi que a comunidade envolvida com banco de dados passou a
trabalhar com dados semiestruturados e pesquisadores que trabalhavam com
graph databases passaram a trabalhar com aplicaes particulares como dados
espaciais, web e documentos.
Existem propostas que utilizam generalizaes de grafos apenas para
modelagem de dados. Contudo, foram Levene & Poulovassilis (1990) que
introduziram o modelo de banco de dados baseado em grafos chamado de
Hypernode.
Existem propostas que utilizam generalizaes de grafos apenas para
modelagem de dados. Contudo, foram Levene & Poulovassilis (1990) que
introduziram o modelo de banco de dados baseado em grafos chamado de
Hypernode.

Redes complexas
Para comeamos explicaremos primeiro o que seria uma rede complexa. Rede
complexa e uma rede na qual as relaes existentes e mais importantes do que
os elementos contidos. Para representar essas redes utilizamos atravs de
grafos (nos) e sua relao e feita pelo vrtice.
Mas o que seria grafos? Grafo um tipo abstrato de dados

Modelo Relacional
Suas desvantagens
Problema em conciliar o modelo com a demanda da escalabilidade que vem
sendo mais frequente.

Exemplo
Uma aplicao web executada no modelo relacional. Com o aumento dos
usurios, a uma queda de performance. E para resolver o sistema tem que fazer
o upgrade no servidor o aumentar o nmero de servidor.
Com isso veio a necessidade um modelo de banco de dados que pudesse
resolver esse problema.
Ai veio o NOSQL que com ele est incluso o GRAPH DATABASE.
Uma estrutura onde seus esquema e instancia so modelados como grafos.
Permite uma modelagem natural do seus dados; possibilidade de consulta que
aproveita a estrutura de grafos; se trabalha diretamente com grafos e
relacionamento assim facilitando manipulao de dados para o desenvolvedor
fato que no SQL seria mais complicado sua manipulao.

Aplicaes para os Graph Database


Redes Sociais
Nessa rede os vrtices so as pessoas ou grupos e as arestas so os
relacionamentos. Alguns exemplos so as redes de amizades (Facebook) e
negcios (Linkedin)

Redes Biolgica
As redes biolgicas representam informaes biolgicas onde h bastante dados
de difcil anlise. Estas redes ocorrem na regulao de genes, mapas
metablicos, estruturas qumicas e relacionamento entre as espcies.

Redes de Informao
As redes deste grupo modelam fluxos de informaes. Elas so utilizadas, para
relacionar citaes de trabalhos acadmicos e para relacionar classes de
palavras em dicionrios de sinnimos

Redes de Tecnolgicas
Estas redes so caracterizadas pela importncia dos aspectos geogrficos e
espaciais das estruturas. Alguns exemplos so: redes de computadores, redes
de energia eltrica, rotas areas, redes de telefonia, sistemas de informao
geogrfico (GIS).

Sendo assim a utilizao de GRAFOS traz grandes benefcios por que vrias
operaes necessrias podem ser realizadas aproveitando os algoritmos
propostos na Teoria dos Grafos. Por exemplo: GIS que utiliza operaes de
mtricas para descobrir a distncia entre as entidades e o dimetro da rede,
tambm as redes sociais podem utilizar medidas para encontrar, por exemplo, o
caminho mnimo entre duas pessoas da rede.

Definio de Graph Database


O modelo GRAPH DATABASE e composto por trs elementos bsicos eles so:
Estrutura de dados adequada:
E como definir como as informaes sero armazenadas.
Linguagem de transformao:
E responsvel como os dados sero manipulados.
Isso e na linguagem de transformao que vai delimitar quais operaes
podero ser usadas e assim levando em considerao as caractersticas dos
grafos como arestas, vizinhos, subgrafos e conectividade.
Restrio de integridade
Ela responsvel pela consistncia dos dados. Essas restries podem ser
organizadas em consistncia:
Esquema-instncia
Integridade referencial
Dependncias de incluso e funcional.

Pratica de Graph Database


Os modelos de graph database precisam ser instanciados e transformados
em ferramentas para que seja possvel sua utilizao.
Com base nesta necessidade surgiram
implementaes para graph databases.

diversas

propostas

de

A maioria das implementaes utilizam modelos de graph database


baseados em propriedades e na orientao a objetos.
Apenas o Neo4J e OrientDB se preocupam em garantir as propriedades
da ACID (atomicidade, consistncia, integridade e durabilidade).
As ferramentas Neo4J, DEX e HyperGraphDB disponibilizam algoritmos
clssicos para a manipulao dos dados.

Neo4J
Instalao:
Descompacte o arquivo winrar neo4j-advanced-1.9-Windows.rar
Execute como administrador o arquivo .bat que se encontrar em bin/Neo4j.bat
Depois de carregado um aplicativo Java ficara aberto deixe ele aberto.

Utilizao
Criaremos uma rede social bsica onde seus nos sero os usurio e as aresta
sero seu relacionamento onde s haver conhecer.

Neo4J-ADICIONAR VERTEX

g.addVertex([nome:Andre])
g.addVertex([nome:Aline])
g.addVertex([nome:Aricelio])
g.addVertex([nome:Diego])
g.addVertex([nome:Thales])
g.addVertex([nome:Amauri])

Neo4J-VISUALIZAR
Visualizar s os vrtices:
g.V
Visualizar os vrtices com todos os seus atributos:
g.V.map
Visualizar os vrtices com o atributo que escolher:
g.V.(atributo)

Neo4J- REALIZAR UPDATE


Alterar:
g.v(numero do vertice).(atributo)=(nome que deseja alterar)

Neo4J-Relacionamento
Atribuir o nome para o valor do vrtice:
andre=g.v(1)
aline=g.v(2)
aricelio=g.v(3)
diego=g.v(4)
thales=g.v(5)
amauri=g.v(6)

Realizar relacionamento:
g.addEdge(andre,aline,conhece,[:])
g.addEdge(andre,aricelio,conhece,[:])
g.addEdge(aricelio,amauri,conhece,[:])
g.addEdge(aline,diego,conhece,[:])
g.addEdge(aline,thales,conhece,[:])
g.addEdge(thales,amauri,conhece,[:])
Visualizar Relacionamento
g.E
Visualizar quem Andre conhece:

andre.out.map
Visualizar quem os amigos de Andre conhece:

andre.out.out.map
Visualizar o caminho que tem de um para o outro

andre.out.paths
andre.out.loop(1){it.loops<3}.map
Deletar relacionamento:
Visualizar primeiro os relacionamento:

g.E
Ver qual que deletar e digite:

g.removeEdge(g.e(numero))
Neo4J Programas
Frosty Mug(Caneca Gelado)

A prova-de-conceito mecanismo de recomendao de cerveja, construdo por


Josh Adell.
Neosocial

Ligao ao Facebook com Neo4j.


Sylva DB Modeling Workbench

Sylva um easy-to-use, flexvel e escalvel sistema de gerenciamento gratuito,


banco de dados que ajuda voc a coletar.

Concluso
Os modelos de graph database apresentam como caractersticas comuns a
estrutura de dados, a linguagem de transformao e as restries de integridade.

Referencias
http://jamacedo.com/2011/07/graph-database/
http://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840Bancos%20de%20Dados%20NoSQL.pdf
http://agoradba.blogspot.com.br/2012/05/nosql-graph-databases-neo4j-ou-omodelo.html

Potrebbero piacerti anche