Professional Documents
Culture Documents
Burguete López
Erick Jonathan
Jiménez
Martínez Beatriz
DOCENTE:
DRA. Hernández
Castillo Jehiely
Belem
MATERIA:
TAPACHULA ING EN
SISTEMAS
COMPUTACIONA
LES
TAPACHULA, CHIAPAS A 09 DE NOVIEMBRE DEL 2018
PRACTICA:
Control de
Acceso
SEMESTRE: 5°
GRUPO: “C”
SALON: JG
INDICE
INTRODUCCION………………………………………………………………………… 1
Concurrencia……………………………………………………………………,,,,……. 2
Conceptos Básicos………………………………………………………….…………. 4
Propiedades de la transacción............................................................................. 7
Grados de consistencia………………………………………………………………. 13
Niveles de aislamiento…………………………………………………...…………… 15
Commit y Rollback…………………………………………………………………….. 19
Conclusion……………………………………………………………..………………. 22
Referencias……………………………………………………………...……………… 23
1
INTRODUCCION
1
CONCURRENCIA
2
Concurrencia Intercalada Vs.
Simultanea
3
CONCEPTOS BÁSICOS
Desde el punto de vista del usuario la interacción con la base de datos se lleva a
cabo mediante operaciones con significado en el modelo semántico (por ejemplo,
una transferencia de fondos en un banco).
Desde el punto de vista de la base de datos estas operaciones pueden estar
formadas por varias operaciones elementales (por ejemplo, quitar fondos de una
cuenta y añadírselos a otra)
4
MÉTODOS DE CONTROL DE CONCURRENCIA
BLOQUEOS BINARIOS
Bloqueos de lectura/escritura
Son una ampliación de los bloqueos binarios. Tenemos que el bloqueo puede tener
tres posibles posiciones: libre, bloqueado para lectura, y bloqueado para escritura.
De esta forma, más de una transacción puede tener un mismo elemento de datos
bloqueado para lectura, pero sólo una para escritura. Si una transacción quiere
escribir en ese elemento, habrá de esperar a que el bloqueo quede libre (cualquiera
que sea el tipo de bloqueo), y a continuación, bloquearlo para escritura. Si quiere
leer, sólo tendrá que esperar si el elemento está bloqueado para escritura. Se dice,
por tanto, que el bloqueo de lectura es compartido y el de escritura exclusivo.
Tendremos por tanto tres operaciones; bloquear escritura(X), bloquear lectura(X) y
desbloquear(X).
5
Problemas del bloqueo en dos fases: interbloqueo y espera indefinida
El interbloqueo se produce cuando cada transacción T en un conjunto de dos o más
transacciones está esperando a algún elemento que está bloqueado por alguna otra
transacción T' de dicho conjunto. En este estado, cada transacción está parada en
espera a que otra transacción libere el recurso. Las condiciones para que se
produzca en interbloqueo son las siguientes:
1. Exclusión mutua. Cada elemento está bloqueado por una transacción, o está
libre.
4. Espera circular: Existe una cadena circular, compuesta por dos transacciones o
más, y otros tantos elementos intercalados, de manera que cada proceso está
esperando que se le asigne un elemento, el cual, a su vez, está asignado al
siguiente proceso de la cadena.
6
PROPIEDADES DE LA TRANSACCIÓN
7
Más aun, si varias transacciones, se ejecutan consecuentemente los
resultados deben ser los mismos que si ellas se hubieran ejecutado
secuencialmente. Esto se conoce como seriabilidad debido a que su
resultado es la capacidad de volver a cargar los datos iniciales y
reproducir una serie de transacciones para finalizar con los datos en
el mismo estado en que estaban después de realizar transacciones
originales.
8
Además, en las transacciones tenemos operaciones básicas (“leer
elemento”, “escribir elemento”), y cálculos sobre los datos leídos.
Iniciar TO
Las transacciones tienen otras
Leer (A)
propiedades “deseables” que
Leer (B)
verán mas adelante
A=A+B
B= B * 1.1
escribir (A)
escribir (B)
terminar TO
Sean T0 Y T1 dos transacciones
T0: T1
Leer (A) Leer (A)
A= A – 50 Temp = A * 0.1
Escribir (A) A = A – temp
Leer (B) Escribir (A)
B = B + 50 Leer (B)
Escribir (B) B= B + temp
Escribir (B)
Donde A y B son saldos de dos cuentas bancarias diferentes con valores de 1000 y 2000
BsF respectivamente A + B = 3000 BsF.
9
Cosas que pueden salir mal
10
11
12
GRADOS DE CONSISTENCIA
Consistencia es un término más amplio que el de integridad. Podría definirse como
la coherencia entre todos los datos de la base de datos. Cuando se pierde la
integridad también se pierde la consistencia. Pero la consistencia también puede
perderse por razones de funcionamiento.
Una transacción finalizada (confirmada parcialmente) puede no confirmarse
definitivamente (consistencia).
Una transacción que termina con éxito se dice que está comprometida (commited),
una transacción que haya sido comprometida llevará a la base de datos a un nuevo
estado consistente que debe permanecer incluso si hay un fallo en el sistema. En
cualquier momento una transacción sólo puede estar en uno de los siguientes
estados.
13
Aspectos relacionados al procesamiento de transacciones
Los siguientes son los aspectos más importantes relacionados con el
procesamiento de transacciones:
14
NIVELES DE AISLAMIENTO
*DIRTY READ
*NONREPEATABLE READ
*PHANTOM READ
*REPEATABLE READ
DIRTY READ cuando la transacción accede a datos escritos por otra transacción
que aún no hace Commit.
NONREPEATABLE READ
cuando la transacción relee datos que ya ha leído previamente y encuentra que han
sido modificados por una transacción que ha hecho Commit después de la lectura
inicial.
PHANTOM READ
REPEATABLE READ
Este nivel es muy parecido al Read Committed, salvo que también puede ver
modificaciones a las que aún no se les ha hecho Commit dentro de la misma
transacción en que se está ejecutando. Las aplicaciones corriendo en este nivel
deben estar preparadas para reintentar transacciones debido a fallos de
serialización. Provee el mínimo de aislamiento que cualquier nivel debe proveer.
15
Isolation Level Dirty Read Nonrepeatable Read Phantom Read
Niveles de aislamiento
PostgreSQL ofrece Read Committed (default) y Serializable
READ COMMITED
16
17
SERIALIZABLE
Es la empleada por defecto en SQL estándar, solo se ven las modificaciones de otra
transacción que hayan sido aceptadas (COMMIT) al principio de la transacción
actual. PostgreSQL no tiene un nivel SERIALIZABLE real puesto que solo ve los
datos que han sido COMMIT antes de la primera consulta o modificación de datos.
18
COMMIT Y ROLLBACK
Commit
Esta instrucción de SQL se utiliza para confirmar como permanentes las
modificaciones realizadas en una transacción.Cuando se produce el
COMMIT, se hacen efectivos los cambios en los ficheros de datos (.mdf y
.ndf). Mientras no se realiza el COMMIT las sentencias de los cambios se
guardan en el log de transacciones (.ldf), que gracias a este es posible
revertir los cambios si fuese necesario.
Transacciones explicitas
Este tipo de transacciones son las que se definen en el código y hay que
indicar cuando se inicia con BEGIN TRANSACTION y cuando finaliza
COMMIT TRANSATION.
19
ROLLBACK
Es una operación que devuelve a la base de datos a algún estado previo.
Los Rollbacks son importantes para la integridad de la base de datos, a
causa de que significan que la base de datos puede ser restaurada a una
copia limpia incluso después de que se han realizado operaciones erróneas.
EJEMPLO
Guardar los cambias de una transacción si el numero máximo de productos
vendidos de un solo producto es menor que 1600 y si es mayor restablecer.
BEGIN TRANSACTION
if((SELECT SUM([Order Details].Quantity) FROM Products,[Order Details]
WHERE Products.ProductID = [Order Details].ProductID GROUP BY
Products.ProductName
HAVING SUM([Order Details].Quantity)=(SELECT MAX(QR.Cantidad)
FROM (SELECT Products.ProductName,SUM([Order Details].Quantity) AS
Cantidad FROM Products,[Order Details]
WHERE Products.ProductID = [Order Details].ProductID
GROUP BY Products.ProductName) AS QR))<1600)
COMMIT TRANSACTION
ELSE
ROLLBACK;
20
La funcionalidad de rollback está normalmente implementada con un
Log de transacciones, pero puede también estar implementada
mediante control de concurrencia multiversión.
21
CONCLUSION
22