Considere uma transação de banco de dados que transfere um...

Próximas questões
Com base no mesmo assunto
Q465297 Banco de Dados
Considere uma transação de banco de dados que transfere uma quantia X de uma conta A para outra, B. A transação consiste de uma leitura e gravação de A, seguida da leitura e gravação de B. Admita que o programador construiu seu programa corretamente.

Caso ocorra algum tipo de erro nas operações sobre B, interrompendo o curso normal da transação, o sistema gerenciador do banco de dados deve agir para corrigir a situação e garantir que as propriedades da transação sejam respeitadas.

A propriedade resguardada, nesse caso, é conhecida como
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: A - atomicidade.

Ao analisarmos uma transação de banco de dados, especialmente num cenário onde se transfere um valor de uma conta para outra, é fundamental compreender as propriedades ACID que regem as transações. ACID é um acrônimo para Atomicidade, Consistência, Isolamento e Durabilidade. Estas propriedades garantem a confiabilidade das operações em um sistema de banco de dados.

No contexto da questão apresentada, onde um erro em uma das operações pode causar a interrupção da transação, a propriedade atomicidade é a que se destaca. A atomicidade assegura que todas as operações de uma transação são concluídas com sucesso ou, em caso de falha, todas são revertidas. Ou seja, uma transação é tratada como uma única unidade indivisível de trabalho, garantindo que, se qualquer parte da transação falhar, a transação inteira falha e o estado do banco de dados é deixado intacto, como se a transação nunca tivesse sido iniciada.

Por que a alternativa A está correta? Bem, se houver um erro nas operações sobre a conta B, o sistema gerenciador do banco de dados deve garantir que as alterações feitas na conta A não sejam permanentes, a menos que toda a transação seja concluída com sucesso. Isto significa desfazer qualquer leitura e gravação que tenha acontecido na conta A, mantendo a atomicidade da transação. Portanto, o programador pode depender do fato de que o banco de dados irá cuidar de manter a integridade da transação, mesmo frente a erros.

As demais alternativas não são aplicáveis diretamente ao cenário descrito:

  • Consistência refere-se à garantia de que o banco de dados passe de um estado válido a outro estado válido, mantendo a integridade dos dados.
  • Durabilidade assegura que, uma vez que a transação é confirmada, ela permanecerá assim, mesmo no caso de uma falha do sistema.
  • Isolamento determina como as transações concorrentes interagem umas com as outras e os efeitos visíveis que uma pode ter sobre outra.
  • Independência de dados é um conceito relacionado ao design do sistema de banco de dados, permitindo que os dados sejam modificados sem que haja necessidade de alterar toda a estrutura do banco de dados.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Atomicidade: Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Se durante a transação qualquer ação que constitui unidade de trabalho falhar, a transação inteira deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada e persistida em banco (commit). (RESPOSTA CORRETA A)


Consistência: Todas as regras e restrições definidas no banco de dados devem ser obedecidas. Relacionamentos por chaves estrangeiras, checagem de valores para campos restritos ou únicos devem ser obedecidos para que uma transação possa ser completada com sucesso.


Durabilidade: Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subseqüente.Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados num repositório permanente, não sendo passíveis de falha por uma falha de hardware.


Isolamento: Cada transação funciona completamente à parte de outras estações. Todas as operações são parte de uma transação única. O principio é que nenhuma outra transação, operando no mesmo sistema, possa interferir no funcionamento da transação corrente(é um mecanismo de controle). Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento (ainda em respeito à propriedade da atomicidade).

Atomicidade: Tudo ou nada


GABARITO: A


Atomicidade
A propriedade de atomicidade garante que as transações sejam atômicas (indivisíveis). A transação será executada totalmente ou não será executada.

Consistência
A propriedade de consistência garante que o banco de dados passará de uma forma consistente para outra forma consistente.

Isolamento
A propriedade de isolamento garante que a transação não será interferida por nenhuma outra transação concorrente.

Durabilidade
A propriedade de durabilidade garante que o que foi salvo, não será mais perdido.

Em alguns casos, na minha opinião, os conceitos de atomicidade (totalmente executada ou não será executada) e durabilidade (o que foi salvo não será perdido, mesmo em caso de pane do sistema) se misturam. Não chega a ser o caso dessa questão, mas já fiz outros exercícios que fiquei muito na dúvida se era para a transação não ser executada ou se era para permanecer salvo o que estava na memória.

Acredito que quando o caso é erro do próprio processo, está relacionado a atomicidade, e quando é alguma falha externa, aí sim é durabilidade.

De qualquer forma, o esquema é aprofundar só um pouco mais no assunto para matar essa dúvida.

Vamos na fé.

Savio, não tem nada a ver uma coisa com a outra. Por favor, não confunda os colegas.

Atomicidade: Aqui é tudo ou nada! A transação será executada totalmente ou não será executada.

Durabilidade: A propriedade de durabilidade garante que o que foi salvo, não será mais perdido. Entenda-se "salvo" a realização do COMMIT. Tenha isso em mente e jamais errará uma questão com esses dois conceitos.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo