Transações banco de dados
Curso de Sistemas de Informação
Banco de Dados II
LISTA DE EXERCÍCIOS 01
1) O que significa a execução concorrente de transações de banco de dados em um sistema multiusuário? Discuta por que o controle de concorrência é necessário e dê exemplos informais.
A execução concorrente de transações de banco de dados permite que vários usuários acessem os dados do banco simultaneamente. O controle de concorrência é necessário para garantir que exista um isolamento das transações executadas concorrentemente. O isolamento garante que uma transação não sofre interferência de outras transações que estão sendo realizadas concorrentemente Se dois usuários, A e B, querem acessar uma mesma informação no banco de dados ao mesmo tempo, é necessário que exista uma garantia de que tanto A quanto B terão acesso a dados consistentes. 2) Desenhe um diagrama de estado e discuta os estados típicos pelos quais uma transação passa durante a execução.
Diagrama de Estados da Transação
Enquanto uma transação estiver executando ela estará no estado ativa. No momento em que a transação concluir a execução da última declaração ela entra no estado de efetivação. Uma transação não vai direto para o estado de commit, porque o SGBD precisa concluir uma série de operações como, por exemplo, atualizar arquivos de log, atualizar o banco de dados, para garantir as propriedades de atomicidade e durabilidade. O estado de efetivação é uma preparação para o commit. Pode ocorrer que durante esse estado ocorra alguma falha e a transação não possa ser concluída normalmente. Nessa situação, a transação passa de um estado de efetivação para um estado em falha onde todos os efeitos da transação deverão ser desfeitos. Uma transação passará para o estado de commit quando todas as operações necessárias estiverem concluídas. A partir desse momento a aplicação teria conhecimento de que a transação realmente concluiu. O estado abort se dará