Diferenças entre SQL e NoSQL
Gabarito: letra C. A melhor descrição da diferença entre as linguagens de consulta SQL e NoSQL é que SQL é uma linguagem que utiliza tabelas (modelo relacional), enquanto NoSQL utiliza modelos de dados não relacionais, como documentos, grafos ou colunas. As demais alternativas apresentam afirmações imprecisas, incompletas ou generalizações indevidas.
Critério | SQL (Relacional) | NoSQL (Não Relacional) |
|---|
Modelo de dados | Tabelas (linhas e colunas) | Documentos, grafos, chave-valor, colunas largas |
Esquema | Fixo (schema rígido) | Flexível (schema-less) |
Transações ACID | Suporte nativo | Suporte variável (alguns bancos oferecem) |
Desempenho | Eficiente em consultas complexas com joins | Eficiente em leitura/gravação simples em grande volume |
Alternativa A — ❌ Incorreta
Afirma que "SQL é relacional, NoSQL é não relacional". Embora isso seja verdade em termos amplos, não é a melhor descrição porque é muito genérica. A diferença central está nos modelos de dados: tabelas vs. documentos/grafos/colunas. Além disso, NoSQL não é propriamente uma "linguagem", mas uma categoria de bancos de dados.
Alternativa B — ❌ Incorreta
Dizer que SQL é mais antiga que NoSQL é um fato histórico, mas não descreve a diferença funcional entre elas. A idade não é um critério relevante para distinguir as abordagens.
Alternativa C — ✅ Correta ⟵ GABARITO
Conforme descrito na literatura, os bancos de dados SQL (relacionais) organizam os dados em tabelas com linhas e colunas, enquanto os bancos NoSQL utilizam modelos variados como documentos (ex.: MongoDB), grafos (ex.: Neo4j), chave-valor (ex.: Redis) ou colunas largas (ex.: Cassandra). Essa é a diferença estrutural fundamental.
Alternativa D — ❌ Incorreta
A afirmação de que "SQL suporta transações ACID e NoSQL não suporta" é uma generalização incorreta. Muitos bancos NoSQL (como MarkLogic, OrientDB e Google Spanner) oferecem suporte a transações ACID. O que ocorre é que a maioria dos sistemas NoSQL prioriza disponibilidade e tolerância a partição em detrimento da consistência forte, adotando consistência eventual.
Alternativa E — ❌ Incorreta
A velocidade relativa entre SQL e NoSQL depende do caso de uso e da operação. Em operações de leitura/gravação simples em grandes volumes, NoSQL pode ser mais rápido, mas em consultas complexas com joins, SQL costuma ser mais eficiente. Portanto, não é correto afirmar categoricamente que SQL é mais lento.
Gabarito: letra C.