·

Engenharia de Computação ·

Banco de Dados

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

Uma transação define uma unidade de execução que pode acessar e atualizar vários itens de dados Uma transação executa vários comandos como se fossem apenas um comando indivisível atômico Os vários comandos são delimitados pelas declarações begin transaction e commit ou rollback begin transactionx Updatea Deleteb Insertc commitx O SGBD considera este bloco como um único comando atômico e indivisível Transações Transações terminadas com commit em caso de sucesso efetivam todas as modificações realizadas dentro dela Transação terminadas com rollback desfazem todas as modificações realizadas dentro dela O banco de dados ficará no mesmo estado em que estava antes do início da transação O comando rollback pode ser chamado explicitamente pelo programador ou pelo SGBD quando ocorre algum erro Transações Um SGBD deve controlar a execução concorrente de transações para assegurar que o estado do banco de dados permaneça consistente A seriação é uma propriedade que garante que independentemente da ordem dos acessos aos dados feitos pelas transações o resultado final será o mesmo Transações Execução das transações T1 e T2 em sequência A B T1 T2 1 read A 7 read A 2 AA50 8 AA150 3 writeA 9 writeA 4 readB 10 readB 5 BB50 11 BB150 6 write B 12 write B A B A B 200 100 1 2 7 8 9 3 4 5 6 1 0 1 1 1 2 200 150 150 100 150 150 1500 0 150 300 300 Transações Problema que ocorre sem a seriação no controle de transação Troca de contexto antes do write A Queda do banco antes de write B A B 200 50 T1 T2 1 read A 3 read A 2 AA50 4 AA150 6 writeA 5 writeA 7 readB 10 readB 8 BB50 11 BB150 9 write B 12 write B 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 A B 200 150 A B 200 100 50 150 100 150 150 150 300 300 Transações A B 0 300 A B 150 300 T1 T2 1 read A 7 read A 2 AA50 8 AA150 3 writeA 9 writeA 4 readB 10 readB 5 BB50 11 BB150 6 write B 12 write B 1 2 7 8 9 3 4 5 6 1 0 1 1 1 2 T1 T2 1 read A 3 read A 2 AA50 4 AA150 6 writeA 5 writeA 7 readB 10 readB 8 BB50 11 BB150 9 write B 12 write B 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 Resultados finais diferentes Transações Transações devem possuir um conjunto de propriedades que é normalmente referido como propriedades ACID Atomicidade Consistência Isolamento Durabilidade Transações Atomicidade Garante que todas as operações na transação serão executadas ou nenhuma será Isto evita que falha ocorridas possam deixar o banco de dados inconsistente Consistência Possui dois aspectos a consistência do banco dados e a consistência da própria transação Uma transação não deve violar as restrições de integridade definidas para o banco de dados Transações Isolamento Significa que mesmo no caso de transações executadas concorrentemente o resultado final é igual ao obtido com a execução isolada de cada uma delas Durabilidade Significa que os resultados de uma transação devem ser persistentes Mesmo se depois houver falha no sistema Transações Gerenciador de Transações Escalonador Gerenciador de Recuperação Gerenciador de Memória Cache Memória Primária Log SGBD Transações externas Memória Secundária Index BD Transações Dados Simples Dados Complexos Consultas Simples Baseado no livro Object Relational DBMS by Stonebraker and Moore Morgan Kaufmann 1996 Consultas Complexas Matriz de classificação de SGBDs Leitura do arquivo PDF disponibilizado na plataforma Atividades extraclasse