FC ConcursosFC Concursos

Questão FC296036

Considere um banco de dados orientado a grafos que contém nós que representam Pessoas e nós que representam relacionamentos AMIGO_DE, ligando pessoas amigas entre si. Qual das cons

Outros Tipos e Modelos de Bancos de Dados

CESGRANRIO · 2023

Considere um banco de dados orientado a grafos que contém nós que representam Pessoas e nós que representam relacionamentos AMIGO_DE, ligando pessoas amigas entre si. Qual das consultas, em linguagem Cypher, retorna todos os amigos de uma pessoa chamada Alice?

  1. MATCH (p:Pessoa)-[:AMIGO_DE]->(amigo) WHERE p.nome = 'Alice' RETURN amigo
  2. MATCH (p:Pessoa)<-[:AMIGO_DE]-(amigo) WHERE p.nome = 'Alice' RETURN amigo
  3. MATCH (p:Pessoa {nome: 'Alice'})-[:INIMIGO_DE]->(inimigo) RETURN inimigo
  4. SELECT * FROM Pessoas WHERE nome = 'Alice'
  5. FIND (p:Pessoa {nome: 'Alice'})-[:AMIGO_DE]->(amigo) RETURN amigo
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A consulta MATCH (p:Pessoa)-[:AMIGO_DE]->(amigo) WHERE p.nome = 'Alice' RETURN amigo localiza e devolve todos os nós ligados a p por relacionamentos do tipo AMIGO_DE.

Em detalhes: p:Pessoa descreve um nó com a label Pessoa e a variável p. A expressão -[:AMIGO_DE]-> indica um relacionamento de tipo AMIGO_DE com direção de p para o nó amigo.

A cláusula WHERE filtra para que p.nome = 'Alice', ou seja, só consideramos o nó Pessoa cujo atributo nome é Alice. Por fim, RETURN amigo retorna os nós referenciados por amigo, ou seja, os amigos encontrados.

Observação prática: se a relação for considerada sem direção, pode-se omitir a seta e usar -[:AMIGO_DE]- para captar ambos os sentidos.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo