O Trabalho de um SGBD
Quando Operamos com uma Base de dados estamos a executar uma Transação( uma sequência de operações).
Operação | Leitura, em sql Select * from TABELA
| Escrita, em sql Insert .....
| Update, em sql update set.....
Uma Transação é atómica, consistente, isolada, durabilidade
Abertura de uma transação START TRANSACTION ou BEGIN
As transações são primeiramente escritas para o x_log, é um mecanicismo de pré-verificação.
Fecho de uma transação, esta poderá ter dois fins.
O COMMIT, ou seja toda a transação que é guardada no x_log é escrita então nas paginas da base de dados(disco).
O ROLLBACK, ou seja toda a transação que é guardada no x_log não é escrita nas paginas da base de dados(disco).
Escalonamento- forma como as operações são ocuridas.
exp.
l1(x),l2(x),l3(y),e2(x),l1(y),e1(y),l3(x),e3(z)
escalonamento : não serializavel.
Transações não tenhem uma execução em serie.
Escalonador vai se aperceber do conteúdo das transações (critério de serializaçao) fazendo que as
transaçoes sejam serializadas (posta em execução em serei)
Conflitos -transaçoes diferentes para o mesmo objecto, se uma delas for uma escrita para o mesmo objecto
Grafo de percedencias -- Desenho dos conflitos entre os objectos
nos -- Objectos arco -- conflitos
exp.
Escalonamento:
l1(x),l2(x),l3(y),e2(x),l1(y),e1(y),l3(x),e3(z)
l1(x),l2(x),l3(y),e2(x),l1(y),e1(y),l3(x),e3(z)
____________________________
| grafo em ciclos não são serializados|
----------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Exercícios
1 - O escalonamento l1(x),l2(x),l3(y),e2(x),l1(y),e1(y),l3(x),e2(z) é serializável? Porquê? Use todos os métodos que conhecer para o provar.
2 - O escalonamento l1(x), e1(x), l2(x), e2(x), l1(y), e1(y), l2(y), e2(y) é serializável? Porquê? Use todos os métodos que conhecer para o provar.
Nota/note: "l" : ler / read
"e" : escrever / write