You are on page 1of 32

Bases de Dados II Transacces (Cont.

Definico Propriedades

8/9/2012

Vali Issufo

Concorrncia
Num sistema de bases de dados multiutilizador, as transaces podem ser executadas, basicamente de duas formas: Execuao srie: As vrias transaces submetidas ao sistema so executadas sequencialmente, s se iniciando uma quando a anterior tiver finalizado.

Execuo concorrente: Dado que a execuo de uma transaco constituda, entre outras coisas, por vrios acessos de leitura e escrita base de dados, poder-se- pensar em executar as vrias trnsaces concorrentemente, combinando e intercalando, quando possvel, as suas operaes de leitura e escrita na base de dados.

Concorrncia
Quando duas ou mais transaces so executadas concorrentemente, em algumas situaes, poder surgir problemas decorrentes de interferncias entre si, como consequncias ao nvel da integridade da base de dados.

Se todas as aplicaes e utilizadores esto apenas a realizar operaes de consulta, os problemas da concorrncia no se pem. Estes s acontecem quando duas ou mais transaces acedem aos mesmos dados, envolvendo, pelo menos uma delas, a execuo de modificaes.

Exemplo
Producto 12:00

T1

Codigo 41004

Nome ACT

Quant. 139

T2

12:01 SELECT Quant FROM Producto WHERE codigo=41004 Resp: 139

12:02 SELECT Quant FROM Producto WHERE codigo=41004


Resp: 139

Pedido 100 12:04 UPDATE Producto SET Quant=39 WHERE codigo=41004 Producto 12:04 Codigo 41004 Nome ACT Quant. 39

Pedido 125 12:05 UPDATE Producto SET Quant=14 WHERE codigo=41004

Producto 12:05

Codigo
41004

Nome
ACT

Quant.
14
4

Execuo Concorrente

Execuo Concorrente

Execuo Concorrente (soluco obvia)


Execuo Sequencial- sempre preserva a consitencia da bases de dados

Problemas da Execuo Sequencial:

Uma planificaco P corresponde ordem de execuo das operaes de vrias transaes executadas de forma concorrente. Duas operaes esto em conflito, se elas pertencem a diferentes transaes, acessam o mesmo item de dado e se uma das operaes de gravao.

POSSIVEL ESCALONAR AS OPERACES DE TRANSACES CONCORRENTES DE MODO A QUE ESTAS OCORRAM COMO SE TIVESSEM SIDO EXECUTADAS EM SRIE!

A isto chamamos Serializaco. Ou Planificaco Srie. (Schedule)

Exemplos:

Planificacin serializable

Una planificacin P (no serie) es serializable si es equivalente a alguna planificacin serie de las mismas n transacciones
Una planificacin que no es equivalente a ninguna ejecucin en serie, es una planificacin no serializable

Toda planificacin serializable es correcta


Produce los mismos resultados que alguna ejecucin en serie

Dos maneras de definir la equivalencia entre planificaciones:


Equivalencia por conflictos Equivalencia de vistas

T1

PA

T2

T1

PB

T2

T1
PC

T2

T1

PD

T2

T1
Y

X,Y

T2
Y,Z Planificacao serie equivalente: T3->T1->T2

T3

T1
Y

X,Y

T2
Y,Z

T3
T1 R(X); W(X); R(Z); T2 T3 R(Y); R(Z); W(Y); W(Z);

R(Y); W(Y);

R(Y); W(Y); R(X); W(X);


Planificacin F

Locking
Locks so mecanismos que previnem conflitos entre transaes que acedam o mesmo recurso. Tipos de Lock: exclusive: Previne que recursos sejam compartilhados. A primeira transao que realiza lock exclusivo em um recurso, a nica transao que pode alterar o recurso at que o lock exclusivo seja liberado. MySQL LOCK TABLE nome da tabela {READ | WRITE} UNLOCK TABLES shared lock: Permite que recursos sejam compartilhados. Vrios usurio podem ler os dados, realizando shared lock para prevenir acesso concorrente de escrita(necessita de um lock exclusive) Vrias transaes podem adquirir um shared lock em um recurso.
18

Problemas com bloqueios

Existem:

You might also like