Questão
ID 66527Disciplina: Tecnologia da Informação
Assuntos: Dados Estruturados e Não Estruturados, Dados Semiestruturados, MongoDB (NoSQL Documento)
Ano: 2025 Banca: PERFIL - ENADE Órgão: Primeiro Simulado Pnd
Em um curso de desenvolvimento web, o professor está ensinando a diferença entre bancos de dados relacionais (SQL) e NoSQL. Ele observa que os alunos, já familiarizados com o modelo relacional (tabelas, linhas, colunas), têm dificuldade em entender quando e por que escolher um banco de dados NoSQL, como um banco de dados de documentos (ex: MongoDB). Para ilustrar o contraste, ele apresenta um trecho de um artigo sobre arquitetura de software: "Bancos de dados relacionais são projetados com base em um esquema rígido (schema-on-write), onde a estrutura dos dados deve ser definida antes da inserção. Eles são excelentes para dados bem estruturados e quando a consistência (garantias ACID) é primordial. Bancos de dados de documentos NoSQL, por outro lado, adotam um esquema flexível (schema-on-read). Eles armazenam dados em formatos como JSON ou BSON, permitindo que a estrutura de um 'documento' (análogo a uma linha) varie. Isso os torna ideais para dados semi-estruturados ou que evoluem rapidamente. Eles geralmente priorizam a escalabilidade horizontal e a disponibilidade em detrimento da consistência forte, seguindo o teorema CAP." O professor então propõe um cenário: desenvolver um sistema de blog. Cada 'post' do blog tem um título, um autor e um conteúdo. No entanto, os posts podem opcionalmente ter uma lista de tags, uma imagem de destaque, ou até mesmo um vídeo incorporado. A estrutura de cada post pode variar.
Considerando o cenário do blog e as características de cada tipo de banco de dados, qual seria a escolha mais adequada e por quê?