CESGRANRIO — Profissional Transpetro de Nível Superior - Junior: Ênfase 6: Processos de Negócios — Banco de Dados — 2023

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

  1. A)

    MATCH (p:Pessoa)-[:AMIGO\_DE]->(amigo) WHERE p.nome = 'Alice' RETURN amigo

  2. B)

    MATCH (p:Pessoa)<-[:AMIGO\_DE]-(amigo) WHERE p.nome = 'Alice' RETURN amigo

  3. C)

    MATCH (p:Pessoa {nome: 'Alice'})-[:INIMIGO\_DE]->(inimigo) RETURN inimigo

  4. D)

    SELECT \ FROM Pessoas WHERE nome = 'Alice'

  5. 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.

Questões relacionadas