Escolar Documentos
Profissional Documentos
Cultura Documentos
Web Aula 1
Energia eltrica;
Hardware;
Software;
Peopleware;
Sabotagem;
E sempre que acontece uma situao destas, dados podem ser perdidos e uma das
principais funes de um banco de dados garantir a recuperao causada por uma
falha e restaurar a consistncia e integridade do banco de dados.
Como sabemos, uma transao pode ser constituda por uma ou vrias operaes
lgicas, podendo envolver uma ou mais tabelas e tambm um ou mais registros.
Atomicidade
A transao a menor unidade ou operao fsica em um banco de dados, podendo
ter todas as suas operaes concludas ou desfeitas, nunca apenas parte dela
completada, isto garante o tudo ou nada, tambm conhecido como atomicidade de
transao.
Ento o nome atomicidade remete ao conceito de algo indivisvel.
Podemos ter vrias transaes ocorrendo simultaneamente no mesmo banco de
dados, por isso ele suporta muitos acessos.
Classificao de falhas
As falhas podem ser classificadas em duas modalidades:
Input (X) transfere para a memria o bloco fsico no qual reside um item de
dados principal X.
Write (X, Xi) atribui o valor da varivel local Xi para o item de dados X no
bloco de buffer.
- Se o bloco no qual X reside no est na memria principal, ento emite um
input (X).
- Atribui o valor de Xi para X no bloco de buffer para X.
A operao output (X) no precisa tomar efeito imediatamente depois que write (X,
Xi), pois outros registros podem estar atualizando tambm. Mas se o sistema cair,
depois da operao write (X, Xi) e antes de output (X), o novo valor de X nunca ser
escrito no disco e portanto estar perdido.
Modelo de transao
Se estiver consistente quando uma transao iniciou, o banco de dados precisa ser
consistente quando a transao terminar com sucesso.
Entretanto, durante a execuo de uma transao, pode ser necessrio
temporariamente permitir esta inconsistncia. Essa inconsistncia temporria ainda
que necessria, pode levar a dificuldades se ocorrer uma falha.
Vamos tomar como exemplo a seguinte transao T.
T : read (A, a1) a1 := a1 50; write (A, a1)
read (B, b1) b1 := b1 + 50; write (B, b1)
Consistncia e Atomicidade
Cada transao precisa ser um programa que preserve a consistncia do banco de
dados.
Todas as operaes associadas a uma transao precisam ser executadas at o final,
ou nenhuma deve ser executada.
Uma transao nem sempre pode completar sua execuo com sucesso, quando isto
acontece dizemos que ela foi abortada.
A fim de garantir a atomicidade, uma transao abortada no pode ter efeito no
estado do banco de dados.
Assim o banco de dados precisa ser restaurado ao estado anterior ao incio da
transao que foi abortada. Este procedimento de desfazer o que foi iniciado recebe o
nome de rollback.
Uma transao completada com sucesso chamada de compromissada ou comitada
(commited).
Estado de transao
Uma transao possui o seguinte modelo abstrato:
Ativo o estado inicial.
Parcialmente compromissado depois que a ltima instruo foi executada.
Falhado depois da descoberta de que uma execuo normal no pode mais
prosseguir.
Abortado depois que a transao foi desfeita e o banco de dados foi restaurado ao
seu estado anterior ao incio da transao.
Compromissado depois de a transao ser completada com sucesso.
Uma transao entra no estado falhado depois de ser determinado que a transao
no pode mais prosseguir com sua execuo normal, ento ela precisa ser desfeita, a
transao entra no estado abortado, nesse ponto o sistema tem duas opes:
Web Aula 2
Ttulo: Controle de Concorrncia
Controle de concorrncia
Um SGBD trabalha individualmente com uma transao muito bem, mas o grande
desafio para a sua consagrao no mercado sem dvida a sua capacidade de tratar
diversas transaes simultaneamente.
Hoje em dia muito comum e fcil o acesso a computadores com vrios
processadores ou ento com processadores com vrios ncleos, a esta caracterstica
chamamos de multiprocessador.
Existe tambm o multiprocessamento, que a capacidade do sistema operacional
executar mais de um programa ao mesmo tempo.
Isto pode ocorrer com um computador com um nico processador, neste caso o
processador acaba realizando o processamento em paralelo de diversos programas ao
simultaneamente.
Se colocarmos mais processadores, ele vai distribuir as tarefas passando rotinas de
processamento para cada processador, de modo independente.
E se apenas um programa estiver sendo executado, apenas um processador
utilizado, os demais ficam ociosos.
Mas existem sistemas operacionais mais inteligentes, que aproveitam a capacidade de
multiprocessadores dos computadores e realizam uma melhor distribuio de carga
de processamento.
Se apenas um programa estiver executando no servidor, o sistema operacional divide
as tarefas deste programa entre os diversos processadores do servidor, otimizando
assim a carga sobre um nico processador e distribuindo entre os vrios
processadores, acelerando em muito a concluso do processo.
Este tipo de sistema operacional conhecido como multiprocessamento simtrico ou
SMP, onde realizado o balanceamento de carga.
O SGBD trabalha em conjunto com o sistema operacional para retirar a melhor
performance possvel na execuo de transaes concorrentes, garantindo inclusive a
efetiva consistncia de todas as transaes envolvidas.
Primeira possibilidade
Segunda possibilidade
Terceira possibilidade