Questão
ID 67302Disciplina: Tecnologia da Informação
Assuntos: Backup Online, Propriedades Desejadas de Bancos de Dados Distribuídos
Ano: 2025 Banca: PERFIL - ENADE Órgão: Terceiro Simulado Pnd
Um professor de um curso de desenvolvimento de sistemas está ensinando sobre bancos de dados e o Teorema CAP, um princípio fundamental que governa os sistemas de dados distribuídos. Ele quer que seus alunos compreendam os trade-offs que os designers de bancos de dados NoSQL precisam fazer. Ele apresenta o teorema, formulado por Eric Brewer: "O Teorema CAP afirma que, em um sistema de dados distribuído, é impossível garantir simultaneamente mais de duas das seguintes três propriedades: **Consistência** (Consistency), **Disponibilidade** (Availability) e **Tolerância a Partições** (Partition Tolerance). A Consistência significa que todos os nós do sistema veem os mesmos dados ao mesmo tempo. A Disponibilidade significa que toda requisição recebe uma resposta (não-erro), mesmo que alguns nós estejam fora do ar. A Tolerância a Partições significa que o sistema continua a operar mesmo que a comunicação entre os nós seja interrompida (uma 'partição de rede'). Como as partições de rede são uma realidade em sistemas distribuídos, a escolha real é entre Consistência e Disponibilidade." Ele então propõe a análise de dois sistemas hipotéticos:
Sistema 1 (CP): Um sistema bancário. Quando uma partição de rede ocorre, o sistema prefere recusar operações (tornando-se indisponível) a arriscar que uma transação seja registrada em um nó, mas não em outro, o que levaria a uma inconsistência no saldo.
Sistema 2 (AP): Um carrinho de compras de uma grande loja de e-commerce. Quando uma partição ocorre, o sistema prefere permitir que um usuário adicione um item ao carrinho (mantendo a disponibilidade), mesmo que isso signifique que o dado sobre o estoque possa estar ligeiramente desatualizado. A inconsistência (vender um item que acabou de sair do estoque) é resolvida posteriormente.
Com base no Teorema CAP, avalie os designs dos dois sistemas.
I. O Sistema 1 é um sistema do tipo CP (Consistência/Tolerância a Partições). Ele sacrifica a Disponibilidade para garantir que os dados nunca fiquem inconsistentes, o que é crítico para aplicações financeiras.
II. O Sistema 2 é um sistema do tipo AP (Disponibilidade/Tolerância a Partições). Ele sacrifica a consistência forte em favor da disponibilidade, para garantir que a experiência do usuário não seja interrompida, o que é crítico para o e-commerce.
III. É possível projetar um sistema que seja CA (Consistente e Disponível), mas que não seja tolerante a partições. Isso é típico de bancos de dados tradicionais que rodam em um único servidor, onde não há partições de rede a serem consideradas.
É correto o que se afirma em: