/bdog

Exemplos utilizados nas aulas de Banco de Dados Orientados a Grafo no curso de Banco de Dados II

Bancos de Dados Orientados a Grafos

Material de apoio utilizado na disciplina de Bancos de Dados II do Curso de Ciência da Computação da UFCG.

Instalando o Neo4j

Baixe o Neo4J do website (http://www.neo4j.org/download) e siga as instruções. Caso você ainda tenha alguma dúvida veja o vídeo abaixo

Youtube

Utilizando os dados do Exemplo da sala de aula

Em sala de aula nos adaptamos os dados de Mark Needham, com os dados das Copas do Mundo.

Os dados estão organizados de acordo com a Figura abaixo: tirinha

Carregando os dados na sua instancia Neo4J

Abra o navegador e acessa o console web do Neo4J

Limpe a Base de Dados

MATCH (n)-[r]-() DELETE n,r;

Índices

Para que os dados sejam carregados e consultados mais rapidamente é bom criar alguns índices primeiro.

CREATE INDEX ON :Partida(id);
CREATE INDEX ON :CopaDoMundo(nome);
CREATE INDEX ON :Estadio(nome);
CREATE INDEX ON :Pais(nome);
CREATE INDEX ON :Fase(nome);
CREATE INDEX ON :Jogador(id);
CREATE INDEX ON :Jogador(nome);

Cada linha deve ser executada individualmente

Carregando os dados

Execute os comandos dos arquivos abaixo no Neo4J.

IMPORTANTE : Para resolver os exercícios da Lista 02 é necessário executar a criação do relacionamento :VENCEU

MATCH (visitante)<-[:TIME_VISITANTE]-(partida:Partida)-[:TIME_DA_CASA]->(tcasa)
MATCH (partida)<-[:COMPOSTA_POR]-(copa)
MATCH (copa)<-[:PARA_A_COPA]-(selecaoCasa)<-[:CONVOCOU]-(tcasa),
      (copa)<-[:PARA_A_COPA]-(selecaoVisitante)<-[:CONVOCOU]-(visitante)
 
FOREACH(n IN (CASE WHEN toInt(partida.placar_casa) > toInt(partida.placar_visitante) THEN [1] else [] END) |
	MERGE (selecaoCasa)-[:VENCEU {placar: partida.placar_casa + "-" + partida.placar_visitante}]->(selecaoVisitante)
)

FOREACH(n IN (CASE WHEN toInt(partida.placar_visitante) > toInt(partida.placar_casa) THEN [1] else [] END) |
	MERGE (selecaoVisitante)-[:VENCEU {placar: partida.placar_visitante + "-" + partida.placar_casa}]->(selecaoCasa)
);

Exemplos de Sala de aula

As consultas utilizadas em sala de aula estão na pasta neo4j-worldcupr.

Licença

Creative Commons. Reuse à vontade!