Prévia do material em texto
Controle de Concorrência Problemas de Concorrência Evita conflitos quando múltiplas Atualização perdida ocorre quando transações acessam dados alterações são sobrescritas simultaneamente Leitura suja acontece ao ler dados Utiliza protocolos de bloqueio não confirmados por outra para garantir isolamento e transação integridade Inconsistência pode surgir se Problemas comuns incluem transações não forem isoladas atualização perdida e leitura suja Serialização garante execução equivalente a uma sequência serial Variável 'lock' controla status de acesso a itens de dados Transações Propriedades ACID Bloqueios em Banco de Dados Atomicidade garante execução total ou nenhuma operação Lock exclusivo (write_lock) necessário antes de modificar dados Consistência mantém Lock compartilhado (read_lock) integridade e regras do permite leitura simultânea segura banco de dados Transação deve liberar locks após Isolamento evita concluir operações (unlock) interferência entre Bloqueio binário impede múltiplos transações simultâneas locks exclusivos simultâneos Durabilidade assegura persistência das alterações após commit Gerenciamento de Locks SGBD mantém tabela de locks para controlar acessos concorrentes Transação não pode adquirir lock Falhas em Transações se já possui lock no item Objetivos das Transações Unlock só pode ser executado se Falha entre write(A) e Proporcionar isolamento entre transação detém lock write(B) pode causar perda de transações concorrentes correspondente dados Garantir recuperação confiável em Controle eficiente evita caso de falhas Atomicidade evita que falhas deadlocks e garante progresso deixem dados em estado Manter consistência do banco das transações inconsistente mesmo após falhas do sistema Soma dos saldos deve ser Executar operações como unidade preservada para manter lógica indivisível consistência Recuperação deve restaurar banco ao estado consistente anterior