Professional Documents
Culture Documents
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
Pedido 100 12:04 UPDATE Producto SET Quant=39 WHERE codigo=41004 Producto 12:04 Codigo 41004 Nome ACT Quant. 39
Producto 12:05
Codigo
41004
Nome
ACT
Quant.
14
4
Execuo Concorrente
Execuo Concorrente
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!
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
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);
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
Existem: