O controle de acesso concorrente de usuários e a recuperação de dados são fatores cruciais no funcionamento de um Sistema de Gerenciamento de Banco de Dados Distribuído (SGBDD). No entanto, existem alguns requisitos que devem ser atendidos por um SGBDD, para que o dado armazenado no banco de dados seja consistente. Sobre os requisitos que um SGBDD deve fornecer, assinale a afirmativa correta.
- A)O sistema não é capaz de lidar com situações em que mais de um usuário está acessando o mesmo registro simultaneamente.
Errada, porque um SGBDD precisa sim tratar acesso simultâneo ao mesmo registro por diferentes usuários por meio de controle de concorrência.
- B)Quando ocorre uma falha de commit de uma transação, o sistema não é capaz de lidar com a falha de commit de uma transação.
Errada, porque o sistema deve prever recuperação e tratamento de falhas de commit, e não ficar incapaz diante delas.
- C)Na manipulação de várias cópias de itens de dados, o controle de concorrência não permite manter consistência dos dados entre as cópias.
Errada, pois a manipulação de múltiplas cópias exige justamente mecanismos para manter a consistência entre as réplicas.
- D)Se um ou mais pontos da rede apresentarem falhas e pararem de funcionar, o SGBDD não deve ter a capacidade de continuar trabalhando normalmente.
Errada, porque o SGBDD deve continuar operando, na medida do possível, mesmo quando há falha em parte da rede ou de um nó.
- E)Mesmo que ocorram falhas na comunicação de dados pela rede, não devem interferir no funcionamento geral do sistema uma vez que ele deve ter a capacidade de lidar com tais inconsistências.
Certa, porque falhas de comunicação não devem derrubar o sistema inteiro, já que o SGBDD precisa ser tolerante a inconsistências e continuar funcionando.
Gabarito: E
Em SGBD distribuído, a ideia central é simples: mesmo com dados espalhados por vários nós, o sistema precisa parecer confiável e coerente para você. Para isso, ele deve lidar bem com concorrência, falhas de comunicação, quedas de nós e problemas de recuperação, sem deixar o banco virar uma festa do caos. É por isso que se fala em transparência de falhas, controle de concorrência distribuído e mecanismos de recuperação e replicação. Quando existem cópias de um mesmo dado em lugares diferentes, o SGBDD precisa manter essas cópias consistentes. Se a rede oscila, se uma mensagem se perde ou se um nó para de responder, o sistema não pode simplesmente “jogar a toalha”. Ele deve continuar operando, dentro do possível, e depois reconciliar o estado dos dados. Isso é parte do requisito de disponibilidade e tolerância a falhas, muito cobrado em provas. A alternativa correta é a letra E porque ela traduz exatamente essa ideia: falhas de comunicação na rede não devem comprometer o funcionamento geral do sistema, já que o SGBDD deve ter mecanismos para lidar com essas inconsistências. Em termos doutrinários, isso conversa com a necessidade de consistência, disponibilidade e tolerância a partições, princípios muito associados a bancos distribuídos. As demais opções fazem o oposto do que se espera de um SGBDD. Um bom sistema distribuído deve suportar acesso simultâneo, tratar falhas de commit, manter consistência entre réplicas e seguir operando mesmo quando algum ponto da rede falha. Em resumo: banco distribuído bom não entra em pânico por qualquer espirro da rede.