Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semana06 Transacciones
Semana06 Transacciones
06
Gestión de transacciones
• Soporte
de
Transacciones
– Conceptos
– Propiedades
– Estados
• Control
de
concurrencia
• Recuperación
de
la
base
de
datos
Gestión de transacciones
• Soporte
de
Transacciones
–Conceptos
– Propiedades
– Estados
• Control
de
concurrencia
• Recuperación
de
la
base
de
datos
• Ejemplo
transferencia
de
fondos
de
una
cuenta
corriente
a
una
cuenta
de
ahorros
begin transaction
...
consistencia de
varias operaciones
la base de datos
...
end transaction
Qué
es
una
transacción?
Ejemplo: transferencia de $50 de una cuenta A hacia una
cuenta B
Antes Transacción Después
begin
transaction
read(A)
A:=
A
-‐ 50
A=1000 A=950
write(A)
B=2000 B=2050
TOTAL=3000
read(B) TOTAL=3000
B:=
B
+
50
write(B);
end
transaction
Gestión de transacciones
• Soporte
de
Transacciones
– Conceptos
–Propiedades
– Estados
• Control
de
concurrencia
• Recuperación
de
la
base
de
datos
Propiedades
ACID
• En
bases
de
datos,
toda
transacción
cumple
con
4
propiedades:
1. Atomicity (Atomicidad)
2. Consistency (Consistencia)
3. Isolation (Aislamiento)
4. Durability (Durabilidad)
Propiedades
ACID
Atomicidad
• Una
transacción
es
un
unidad
de
trabajo
indivisible
• Por
tanto,
todas
las
operaciones
de
la
transacción
son
ejecutadas
completamente
o
ninguna
• El
ejecutar
solo
un
subconjunto
de
operaciones,
contradice
el
objetivo
de
una
transacción
Propiedades
ACID
Consistencia
• Una
transacción
es
una
unidad
de
integridad
• Por
tanto, la
ejecución
de
una
transacción
debe
preservar
la
consistencia
de
los
datos
• En
el
ejemplo
de
la
transferencia
bancaria:
A+B
debe
permanecer
invariable
después
de
la
ejecución
de
la
transacción
Propiedades
ACID
Aislamiento
• Una
transacción
es
una
unidad
de
aislamiento
• Implica
que
la
ejecución
de
una
transacción
no
debe
afectar
la
ejecución
de
otras
• Permite
la
ejecución
concurrente
de
transacciones,
sin
el
riesgo
de
que
las
operaciones
de
una
transacción
afecte
el
resultado
de
otra
(secuencialidad)
Propiedades
ACID
Durabilidad
• Una
transacción
es
una
unidad
de
recuperación
• Si
una
transacción
culmina
exitosamente
el
DBMS
debe
garantizar
que
los
cambios
sean
permanentes.
• Aun
cuando
el
equipo
falle
luego
de
finalizada
la
transacción;
al
reiniciar
los
cambios
deben
estar
reflejados
íntegramente.
Gestión de transacciones
• Soporte
de
Transacciones
– Conceptos
– Propiedades
–Estados
• Control
de
concurrencia
• Recuperación
de
la
base
de
datos
Estados
de
una
transacción
Parcialmente
confirmada
confirmada
activa terminada
fallida abortada
• confirmada
– después
de
haber
completado
exitosamente
la
transacción
Gestión de transacciones
• Soporte
de
Transacciones
– Conceptos
– Propiedades
– Estados
• SGBD
❏obligación
de
dejar
la
base
de
datos
en
un
estado
consistente
❏Componente
de
control
de
concurrencia
control
de
concurrencia
secuencialidad
• La
secuencialidad
es
la
propiedad
que
una
planificación
concurrente
debe
cumplir
con
el
fin
de
asegurar
la
consistencia
de
los
datos,
debiendo
ser
equivalente
a
una
planificación
secuencial.
2. Ii = read(Q), Im = write(Q)
Si
Ii antecede
a
Im,
entonces
Ti no
lee
el
valor
de
Q escrito
por
Tm en
la
instrucción
Im
Si
Im antecede
a
Ii,
entonces
Ti lee
el
valor
de
Q
escrito
por
Tm en
la
instrucción
Im
Por
lo
tanto,
el
orden
importa
control
de
concurrencia
secuencialidad
en
cuanto
a
conflictos
3. Ii = write(Q), Im = read(Q)
el
orden
de
Ii e
Im importa
por
las
mismas
razones
que
el
caso
anterior
4. Ii = write(Q), Im = write(Q)
si
importa
el
orden
porque
afecta
al
resultado
final
de
Q
read(A)
write(A)
read(B)
write(B)
read(A)
write(A
read(B)
write(B)
Planificación S
(secuencial)
control
de
concurrencia
secuencialidad
en
cuanto
a
conflictos
T1 T2
read(A);
write(A);
read(A);
write(A);
read(B);
write(B).
read(B);
write(B).
Planificación S’
(secuenciable en términos de conflictos)
write(B)
leer(A)
write(A)
read(B)
write(B)
write(A)
read(B)
write(A)
Planificación secuencial
write(B)
read(B)
write(B)
read(B)
read(A)
write(A)
write(A)
write(A)
Planificación secuenciable en cuanto a vistas
Tecnologías
avanzadas
de
la
Web
y
SBC
Departamento
de
Ciencias
de
la
Computación
y
Electrónica
aeencalada@utpl.edu.ec
aeromero2@utpl.edu.ec
jcmorocho@utpl.edu.ec