Você está na página 1de 12

Trabalho grafos textos corrigidos

Introduo
As redes complexas de dados como redes sociais, as de informao e as biologicas sao
redes cuja a relao entre os elementos e tao importante quanto os proprios elementos,
quando uma rede desse nivel e representada atraves de grafos a relao descrita pelas
arestas e os elementos pelos vertices. A utilizao de modelos de banco de dados
tradicionais poderia gerar gargalos na manipulao dos dados , devido a grande
quantidade de dados normalmente existente. Baseado nisso surgiu a necessidade de se
ter um modelo de dados baseados em grafos e capaz de corresponder as peculiaridades
das redes complexas de dados.
Objetivos
O objetivo da utilizao de graph databases para otimizar a manipulao de dados das
redes complexas
(ainda deve ser escrito)
Grafos e sua origem
A ideia de Grafo surgiu independente das diversas reas de conhecimento, no entanto
considerada como uma rea da matemtica aplicada. A mais antiga meno sobre o
assunto ocorreu no trabalho de Euler (pronuncia-se iler), no ano de 1736 para modelar
e explicar um problema chamado Pontes de Knigsberg.

O problema consistia em verificar se seria possvel percorrer todas as sete pontes da


cidade passando uma nica vez em cada ponte.
Euler verificou (e provou) atravs de um diagrama associando ns (vrtices) e arcos
(arestas) que no havia soluo para o problema.
Surgimento do banco de dados de grafos
Tendo por base o conceito usado por Euler em seus experimentos , iniciou-se
sculos mais tarde o inicio de pesquisas sobre a utilizao dessa tcnica em banco de
dados.
As primeiras pesquisas relacionadas a um banco de dados de grafos (graph
database), datam por volta de 1975 atraves dos autores Roussopoulos e Mylopoulos
que propuseram uma rede semantica para armazenar dados. Contudo porem nas ultimas
decadas implementaoes dos modelos passaram a ser utilizadas em pesquisas e
empresas, principalmente devido ao crescimento das redes sociais e biologicas.

A figura acima referente a um histrico do desenvolvimento dos modelos de


Graph Database, com referencia a seus autores e teorias.
Apesar dos primeiros estudos terem iniciados em 1975 a maioria dos trabalhos
apareceram muitos anos depois, assim como mostra o grfico acima. Algumas das
razes para isso foram 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.

Graph Database
O armazenamento baseado em grafos fundamenta-se na teoria dos grafos. Em
geral, vemos que grafo consiste de ns, propriedades e arestas. Os ns representam as
entidades, as propriedades representam os atributos e as arestas representam as relaes.
Em um banco de dados de grafos, relacionamentos so mais naturais. Temos as
entidades chamadas de vrtices (ou node) que so ligadas entre elas pelas arestas (ou
relationships) cada um podendo guardar dados entre os relacionamentos e cada
relacionamento pode ter uma direo.

A imagem mostra um exemplo da ideia de grafos. As esferas vermelhas so os


vrtices e as arestas seus relacionamentos. Apesar de todos aqui possurem a indicao
relaciona, cada relacionamento pode guardar dados diferentes sobre o relacionamento.
Baseado na teoria de grafos, essas bases so um tipo dentro do mundo das bases
noSQL. Ao pensar em noSQL deve-se lembrar que esses so bancos mais rpidos
(potencialmente menos seguros) e fceis de escalar.
Alguns exemplo de banco de dados de grafos so :
AllegroGraph, ArangoDb,Bitsy, BrightstarDB,DEX, Filament, InfiniteGraph,
InfoGrid, HyperGraphDb, Oracle Spatial, Titan, Neo4J.
Itens de um banco de dados de grafos
Vrtice:
Tambm pode ser chamado de n a nossa unidade de dados, um conjunto de
propiedades do tipo chave valor que representam uma entidade. Um exemplo seria um
usurio o Twitter:
nome: Anderson
arroba: Gusson
Aresta:
So os nossos relacionamentos. Eles ligam os vrtices por meio de uma rede
semntica. Uma aresta pode possuir um sentido, uma orientao e, se necessrio, dados

sobre esse relacionamento. Exemplo baseado no Twitter: vrtice Anderson segue o


vrtice Laura desde 2012. Anderson e Laura so vrtices ligados pelo
relacionamento segue que possui um sentido: do primeiro ao segundo, e possui
tambm dados: a data de incio do relacionamento.
Definio das caractersticas do modelo Graph Database
Um modelo de graph database composto de trs componentes caracteristicos
bsicos, uma estrutura de dados adequada, uma linguagem de transformao e restries
de integridade.
A estrutura de dados de um modelo se preocupa em definir como as informaes
sero armazenadas.
A linguagem de transformao responsvel por definir como os dados devem
ser manipulados.
As restries de integridade so responsveis pela consistncia dos dados.
Aplicaes que podem ser beneficiadas com o modelo Graph Database
Redes Sociais: Neste tipo de rede os vrtices so compostos por pessoas ou
grupos e as arestas descrevem os relacionamentos. Alguns exemplos so as redes de
amizades (Facebook e Orkut) e negcios (Linkedin);
Redes de Informao: As redes deste grupo modelam fluxos de informaes.
Elas so utilizadas, por exemplo, para relacionar citaes de trabalhos acadmicos e
para relacionar classes de palavras em dicionrios de sinnimos;
Redes 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).
Redes Biolgicas: As redes biolgicas representam informaes biolgicas onde
existe um grande volume de dados de difcil gesto e anlise. Estas redes ocorrem na
regulao de genes, mapas metablicos, estruturas qumicas e relacionamento entre as
espcies.
Vantagens
Graph database permite uma modelagem mais natural dos dados no contexto das redes
complexas;
Possibilidade de consultas que aproveitam a estrutura dos grafos, atravs de operaes
na linguagem de consulta que permitam, por exemplo, retornar os vrtices adjacentes;
Ao trabalhar diretamente com grafos e operaes relacionadas, o nvel de abstrao
aumenta facilitando a manipulao dos dados pelo desenvolvedor;
As implementaes dos modelos podem disponibilizar algoritmos de grafos eficientes
para a realizao de operaes especficas.

Desvantagens
Fornecedores de RDBMS no medem esforos para fornecer um alto nvel de
apoio empresarial. A maioria dos sistemas NoSQL so projetos de cdigo aberto. As
empresas que criaram estes sistemas so muitas vezes pequenas start-ups, sem
alcance global, recursos de suporte extensos ou o tipo de credibilidade que os
grandes fornecedores de RDBMS como Oracle tem.
Bancos de dados NoSQL oferecer algumas facilidades para consultas e anlise
uma vez que eles no funcionam com o SQL. Coisas que iriam requerer consultas
simples em RDBMS exigem conhecimentos de programao significativa quando se
utiliza bancos de dados NoSQL. Alm disso, comumente usado Business
Intelligence (BI), ferramentas no fornecem conectividade para NoSQL
Embora, as metas de design para NoSQL pode ser a de fornecer uma soluo
que requer pouca ou nenhuma administrao, bancos de dados NoSQL atualmente
no tm conseguido isso. Esses bancos de dados atuais, ainda necessitam de um
nvel significativo de habilidade e esforo para instalar e manter.
A maioria dos desenvolvedores, no momento s esto familiarizados com
conceitos e programao de RDBMS. Isto significa que quase todos os
desenvolvedores NoSQL est no modo de aprendizagem. Isso pode mudar com o
tempo, mas, no momento, mais fcil encontrar programadores RDBMS
experientes ou administradores do que encontrar um especialista NoSQL. No
entanto, os bancos de dados NoSQL pode ser mais fcil para trabalhar com os
desenvolvedores que no esto familiarizados com a Structured Query Language
(SQL).
Tem que atravessar todo o grafico para se obter uma resposta definitiva

Criao de ndices (utilizando o Neo4J)


As operaes de indexao so parte da API do ndice Neo4j.
Cada ndice amarrado a um nico nome especificado pelo usuario
A implementao de ndice padro fornecido pelo componente Neo4j - Lucene
-index , que est includo no download padro do Neo4j
Um ndice criado se ele no existe quando voc perguntar para ele .
O indice sera criado na configurao padrao backend, a no ser que o usurio
personalize as configuraes.
Exemplos de criao de indices :

No exemplo acima primeiramente se verifica a existncia de ndices, logo aps se


atribui um ndice ao ns actors e movies e ira ser criado um ndice no
relacionamento, esses ndices sero criados com a configurao padro.

Esse segundo exemplo demonstra se um ndice especifico existe


Limitaes
A principal limitao que na prtica, ele no pode ser executado em um cluster de
baixo custo, mas tem que correr em uma nica mquina, a razo que o desempenho se
degrada rapidamente atravs de uma rede .Outro problema potencial que voc tem que
escrever suas prprias consultas usando Java ou qualquer outra coisa , o que significa
empregar programadores caros , ou voc usa SparcQL ou uma das outras linguagens de
consulta que foram desenvolvidos para suportar bancos de dados do grfico, mas isso
significa aprender uma nova habilidade.
Arquitetura

Processamento de grande volume de dados

Utilizao do processamento paralelo para processamento das informaes: para se


atingir uma performance razovel no processamento de grandes volumes de dados,
mais eficiente dividir a tarefa em vrias outras menores e que podem assim, serem
executadas ao mesmo tempo, distribuindo essas tarefas pelos vrios processadores
disponveis, para isso, os sistemas precisam atingir um alto grau de maturidade no
processamento paralelo.

http://www.devmedia.com.br/introducao-aos-bancos-de-dadosnosql/26044#ixzz32C1A8jsx

Tolerncia a falha

Uma implementao tpica de Neo4j vai usar um cluster de 3 mquinas para fornecer
tolerncia a falhas e escalabilidade .

Apesar de ter pelo menos 3 instancias necessrio para failover acontecer no caso de o
mestre torna-se indisponvel , no necessria para todas as instncias para executar o
conjunto Neo4j completo , que inclui o motor de banco de dados. Em vez disso, o que
chamado de casos rbitro pode ser implantado . Eles podem ser considerados como
participantes do cluster em que o seu papel o de participar nas eleies mestre com o
nico propsito de desempate no processo eleitoral . Isso torna possvel um cenrio
onde voc tem um conjunto de duas instncias de banco Neo4j e uma instncia rbitro
adicional e ainda desfrutar de tolerncia de uma nica falha de qualquer um dos trs
casos.

http://docs.neo4j.org/chunked/stable/arbiter-instances.html

Redundncia

No Neo4j HA cluster, todo o grafo replicado para cada instancia no cluster.Isso


significa que todo o conjunto de dados replicado para todo o cluster, para cada
server.Independente do nmero de instancias que falham, todos os dados so tidos como
seguros contanto que uma instancia permanea disponvel.A conseqncia disso que
todos os dados precisam caber dentro de uma nica instncia Neo4j.
http://info.neotechnology.com/rs/neotechnology/images/Understanding%20Neo4j
%20Scalability(2).pdf

Alta disponibilidade
Neo4j HA foi concebido para fazer a transio de uma nica simples mquina para o
funcionamento de vrias mquinas , por no ter que alterar a aplicao j existente.
Considere um aplicativo existente com Neo4j incorporado e em execuo em uma nica
mquina. Para implantar esse aplicativo em uma configurao para vrias mquina s

necessrio mudar a criao do GraphDatabaseService de GraphDatabaseFactory para


HighlyAvailableGraphDatabaseFactory . Uma vez que os dois implementam a mesma
interface, nenhuma alterao adicional necessrio.
Ao executar Neo4j no modo HA h sempre um nico master e zero ou mais slaves. Em
comparao com outras configuraes de replicao master-slave Neo4j HA podem
lidar com solicitaes de pedidos em todas as mquinas para que no haja necessidade
de reorientar ao master , especificamente.
Um slave ir lidar com as escritas atravs da sincronizao com o master para preservar
a consistncia. Escritas para o master pode ser configurado para ser otimista
empurrando para 0 ou mais slaves . Por otimizao queremos dizer o master vai tentar
empurrar para os slaves antes de concluir a transao, mas se falhar a transao ainda
ser bem sucedida ( diferente do fator de replicao normal). Todas as atualizaes
sero, no entanto propagadas do master para outros slaves , eventualmente, de modo a
escrita de um slave pode no ser imediatamente visvel em todos os outros slaves. Esta
a nica diferena entre vrias mquinas que funcionam em modo HA comparado com o
funcionamento de uma nica mquina. Todas as outras caractersticas ACID so as
mesmas.

http://docs.neo4j.org/chunked/stable/ha-architecture.html

http://www.infoq.com/br/news/2010/09/Graph-Databases
http://marcelotozzi.com/blog/neo4j-quem-voce-conhece-no-conjunto/
http://prezi.com/okvrpr_qcm-x/neo4j/
http://www.devmedia.com.br/repositorio-de-dados-relacional-ou-nosql-revista-javamagazine-114/27500
http://pt.slideshare.net/JeanLopes1/brnosql-luciano-ramalhomodelosricos

link para banco de dados de grafos na nuvem


http://dev.mayogax.me/como-funcionam-sistemas-de-recomendacao-e-subindo-neo4jna-nuvem

Bibliografia
http://tekedia.com/12083/nosql-database-advantages-and-disadvantages/
http://jamacedo.com/2011/07/graph-database/
http://www.tiselvagem.com.br/artigos-cientificos/neo4j-banco-de-dados-orientado-agrafos/
http://imasters.com.br/artigo/21781/banco-de-dados/escolhendo--a-ferramenta-certapara-o-banco-de-dados-nosql/
http://ccsl.ime.usp.br/wiki/images/2/20/NoSQL_Vantagens_Desvantagens_e_Comprom
issos.pdf
http://mtc-m19.sid.inpe.br/col/sid.inpe.br/mtcm19/2013/06.06.13.36/doc/publicacao.pdf
http://imasters.com.br/banco-de-dados/graphdb-series-o-que-e-um-banco-de-dados-degrafos/
http://dev.mayogax.me/

itens do trabalho

Introduo
Objetivos (Anderson tem que terminar de escrever)
Quais suas principais caractersticas?
Quais suas vantagens e desvantagens?
Quais suas limitaes? (gustavo)
Como a arquitetura? (gustavo)
Como o processo de migrao entre banco de dados convencional para este
modelo banco de dados no estruturados? (laura)
Como so as ndices,chaves, triggers, procedures, views? (anderson)
Como a segurana? (anderson)
Exemplo do seu uso em BI e na Web (laura)
Como o processo de leitura e escrita em disco? (anderson)
Temos algo em paralelismo? (laura)
Como o processamento de grandes volumes de dados? (gustavo)
Quanto a escalabilidade e performance? (anderson)
Temos um ambiente grfico para este tipo de banco de dados (Ex. SGBD),
demonstre suas principais funcionalidades, mediante testes realizados? (gustavo)
Como o processo de recuperao de dados? (laura)
Como ocorre a disponibilidade? (anderson)
Existe tolerncia a falhas? (gustavo)
Redundncia e alta disponibilidade como , temos ? (gustavo)
Backups ? (laura)
O que temos em tecnologia para clound computing? (laura)
Justificativa
Concluso
Formatao = Gustavo kobayashi
Obs: falta ainda vrios itens , antes de comear com os itens eu tive que
colocar algumas coisas falando sobre o sistema de grafos e tal, se no no ia ter
muito sentido o trabalho.... assim que acharem algum item que ainda no esta
escrito no texto acima , mandem para todos do grupo ... ok

Você também pode gostar