Questão de Banco de Dados — Grafos (Neo4j) — INSTITUTO AOCP 2025
- Código
- qa699131
- Banca
- INSTITUTO AOCP
- Órgão
- UFABC
- Ano
- 2025
- Cargo
- Téc ( )
- ARedis.
- BMongoDB.
- CScyllaDB.
- DApache Cassandra.
- ENeo4j.
GabaritoE — Neo4j.
Gabarito: letra E. O Neo4j é o banco de dados NoSQL orientado a grafos, exatamente o modelo que representa entidades como nós e relacionamentos como arestas, ideal para consultar conexões complexas como as descritas no enunciado (alunos, professores, disciplinas e coautorias). Os demais bancos citados pertencem a outros modelos NoSQL ou são relacionais.
O enunciado descreve uma necessidade clássica de banco de dados orientado a grafos: modelar e consultar relações complexas entre entidades. Nesse modelo, os dados são organizados em três componentes básicos: nós (vértices, que representam as entidades, como alunos, professores e disciplinas), relacionamentos (arestas, que representam as conexões entre os nós, como "cursou" ou "coautor de") e propriedades (atributos dos nós e dos relacionamentos). O grafo é rotulado e direcionado, permitindo que cada par de nós seja conectado por mais de uma aresta, o que reflete a multiplicidade de relações do mundo real.
A grande vantagem desse modelo é que os dados são armazenados uma vez e podem ser interpretados de diferentes formas com base nos relacionamentos. Por exemplo, para responder "alunos que cursaram disciplinas com o mesmo professor", basta percorrer o grafo seguindo as arestas que ligam alunos a disciplinas e disciplinas a professores, sem a necessidade de múltiplas junções (joins) como em bancos relacionais. Isso torna as consultas de relacionamento muito mais eficientes e naturais.
Os bancos de dados NoSQL são classificados em quatro grandes modelos: chave-valor, orientado a documentos, orientado a colunas e orientado a grafos. Cada um atende a diferentes necessidades. O modelo de grafos é o único que não pode ser representado adequadamente no formato tradicional de linhas e colunas, pois sua essência está nas conexões entre os dados. Exemplos de bancos de grafos incluem o Neo4j, AllegroGraph e Virtuoso.
A banca explora exatamente a confusão entre os modelos NoSQL: o candidato pode saber que todos os bancos listados são NoSQL, mas não saber qual é o modelo de cada um. A pegadinha está em associar o Neo4j ao modelo de grafos, enquanto os demais pertencem a outros modelos (Redis é chave-valor, MongoDB é documentos, Cassandra e ScyllaDB são colunas).
Guarde a classificação de cada banco: é ela que separa as alternativas. Vamos analisar cada uma.
O Redis é um banco NoSQL do tipo chave-valor, não orientado a grafos. Ele armazena dados como pares de chave e valor, com acesso rápido pela chave, mas não é projetado para modelar e consultar relacionamentos complexos entre entidades. A necessidade descrita no enunciado exige um modelo de grafos.
O MongoDB é um banco NoSQL do tipo orientado a documentos. Ele armazena dados em documentos (geralmente JSON/BSON), com esquema flexível, mas não é adequado para consultas de relacionamento profundo como as descritas. Embora seja NoSQL, o modelo de documentos não é o de grafos.
O ScyllaDB é um banco NoSQL do tipo orientado a colunas (compatível com Apache Cassandra). Ele é otimizado para alta escalabilidade e escrita intensiva, mas não para modelar relacionamentos complexos entre entidades. O modelo de colunas organiza os dados em famílias de colunas, não em nós e arestas.
O Apache Cassandra também é um banco NoSQL do tipo orientado a colunas. Assim como o ScyllaDB, é projetado para escalabilidade horizontal e alta disponibilidade, mas não para consultas de grafos. A modelagem em colunas não representa naturalmente as relações entre alunos, professores e disciplinas.
O Neo4j é o banco de dados NoSQL orientado a grafos por excelência. Ele implementa o modelo de nós, relacionamentos e propriedades, permitindo consultar conexões complexas de forma eficiente. É exatamente a ferramenta adequada para o cenário descrito: gerenciar relacionamentos entre alunos, professores e disciplinas, e responder perguntas como "alunos que cursaram disciplinas com o mesmo professor" ou "professores que possuem coautoria em projetos de pesquisa".
Para identificar o banco de dados correto em questões como esta, associe o modelo NoSQL ao banco: chave-valor → Redis, DynamoDB; documentos → MongoDB, CouchDB; colunas → Cassandra, HBase, ScyllaDB; grafos → Neo4j, AllegroGraph, Virtuoso. Memorize essa tabela e a classificação se torna imediata.
Gabarito: letra E
Link permanente: /questoes/qa699131