Enunciado
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?
Alternativas
- A)
MATCH (p:Pessoa)-[:AMIGO\_DE]->(amigo) WHERE p.nome = 'Alice' RETURN amigo
- B)
MATCH (p:Pessoa)<-[:AMIGO\_DE]-(amigo) WHERE p.nome = 'Alice' RETURN amigo
- C)
MATCH (p:Pessoa {nome: 'Alice'})-[:INIMIGO\_DE]->(inimigo) RETURN inimigo
- D)
SELECT \ FROM Pessoas WHERE nome = 'Alice'
- E)
FIND (p:Pessoa {nome: 'Alice'})-[:AMIGO\_DE]->(amigo) RETURN amigo
Gabarito e comentário
Resposta correta: A
Na linguagem Cypher, padrões de grafos são descritos com MATCH. A expressão (p:Pessoa)-[:AMIGO_DE]->(amigo) procura nós relacionados pela aresta AMIGO_DE partindo da pessoa identificada como Alice. A cláusula WHERE seleciona o nó cujo nome é Alice e RETURN amigo devolve os nós encontrados como amigos. As alternativas com SELECT ou FIND não usam a sintaxe adequada de Cypher, e a relação INIMIGO_DE não corresponde ao problema. Alternativa A.