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?
- MATCH (p:Pessoa)-[:AMIGO_DE]->(amigo) WHERE p.nome = 'Alice' RETURN amigo
- MATCH (p:Pessoa)<-[:AMIGO_DE]-(amigo) WHERE p.nome = 'Alice' RETURN amigo
- MATCH (p:Pessoa {nome: 'Alice'})-[:INIMIGO_DE]->(inimigo) RETURN inimigo
- SELECT * FROM Pessoas WHERE nome = 'Alice'
- 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