graph database

13

Click here to load reader

Upload: andre-fellype-matos

Post on 20-Oct-2015

57 views

Category:

Documents


2 download

TRANSCRIPT

INTITUTO FEDERAL DO NORTE DE MINAS GERAIS CAMPUS JANUARIACURSO DE TECNOLOGIA EM ANALISE E DESENVOLVIMENTO DE SISTEMA

ANDRE FELLYPE MATOS MOTA

GRAPH DATABASE NEO4J

JANUARIA2013SumrioHistria do Graph Database3Redes complexas3Modelo Relacional4Suas desvantagens4Exemplo4Aplicaes para os Graph Database4Redes Sociais4Redes Biolgica5Redes de Informao5Redes de Tecnolgicas5Definio de Graph Database6Pratica de Graph Database7Neo4J7Instalao:7Utilizao8Neo4J-ADICIONAR VERTEX8Neo4J-VISUALIZAR8Visualizar s os vrtices:8Visualizar os vrtices com todos os seus atributos:8Visualizar os vrtices com o atributo que escolher:8Neo4J- REALIZAR UPDATE8Alterar:8Neo4J-Relacionamento8Atribuir o nome para o valor do vrtice:8Realizar relacionamento:9Visualizar Relacionamento9Deletar relacionamento:9Neo4J Programas9Concluso9Referencias10

Histria do Graph DatabasePrimeiros 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 complexasPara 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 umtipo abstrato de dados

Modelo RelacionalSuas desvantagensProblema em conciliar o modelo com a demanda da escalabilidade que vem sendo mais frequente.ExemploUma 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 DatabaseRedes SociaisNessa 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 BiolgicaAs 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 InformaoAs 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 TecnolgicasEstas 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 DatabaseO 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 integridadeEla responsvel pela consistncia dos dados. Essas restries podem ser organizadas em consistncia:Esquema-instnciaIntegridade referencial Dependncias de incluso e funcional.Pratica de Graph DatabaseOs modelos de graph database precisam ser instanciados e transformados em ferramentas para que seja possvel sua utilizao.Com base nesta necessidade surgiram diversas propostas de implementaes para graph databases.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.

Neo4JInstalao:Descompacte o arquivo winrar neo4j-advanced-1.9-Windows.rarExecute como administrador o arquivo .bat que se encontrar em bin/Neo4j.batDepois de carregado um aplicativo Java ficara aberto deixe ele aberto.

UtilizaoCriaremos 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-VISUALIZARVisualizar s os vrtices: g.VVisualizar os vrtices com todos os seus atributos: g.V.mapVisualizar os vrtices com o atributo que escolher: g.V.(atributo)Neo4J- REALIZAR UPDATEAlterar: g.v(numero do vertice).(atributo)=(nome que deseja alterar)Neo4J-RelacionamentoAtribuir 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.EVisualizar quem Andre conhece: andre.out.mapVisualizar quem os amigos de Andre conhece: andre.out.out.mapVisualizar o caminho que tem de um para o outro andre.out.paths andre.out.loop(1){it.loops