La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Base de Datos II 2da Parte. Propiedad ACID  La propiedad ACIDa es una carácterística de un DBMS para poder compartir datos en forma segura.  A :

Presentaciones similares


Presentación del tema: "Base de Datos II 2da Parte. Propiedad ACID  La propiedad ACIDa es una carácterística de un DBMS para poder compartir datos en forma segura.  A :"— Transcripción de la presentación:

1 Base de Datos II 2da Parte

2

3

4 Propiedad ACID  La propiedad ACIDa es una carácterística de un DBMS para poder compartir datos en forma segura.  A : Atomicity  C: Consistency  I : Isolation  D: Durability

5

6 Atomicidad  “Todo o nada” es la mejor forma de explicar atomicidad.  Cuando ocurre una actualización en la base de datos, garantizamos que se hace en forma completa o no se hace. COMMIT ROLLBACK  a transaction is a unit of operation either all the transaction's actions are completed or none are  atomicity is maintained in the presence of deadlocks  atomicity is maintained in the presence of database software failures  atomicity is maintained in the presence of application software failures  atomicity is maintained in the presence of CPU failures  atomicity is maintained in the presence of disk failures  atomicity can be turned off at the system level  atomicity can be turned off at the session level

7 Deadlock  Un deadlock (interbloqueo, traba mortal) es, en sistemas operativos, el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos.  Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos. En la vida real, un ejemplo puede ser el de cuatro autos que se encuentran en una intersección en el mismo momento. Cada uno necesita que otro se mueva para poder continuar su camino, y ninguno puede continuar. Los recursos compartidos en este caso son los cuatro cuadrantes. El auto que se dirije de oeste a este, por ejemplo, necesita de los cuadrantes suroeste y sureste. http://es.wikipedia.org/wiki/Deadlock

8 Simulando un deadlock  Session 1 lock table EMP: SQL> UPDATE emp SET sal=sal+100; 14 rows updated.  Session 2 lock table DEPT: SQL> UPDATE dept SET loc = 'Japan'; 4 rows updated.  Session 1 now update DEPT. The session will hang waiting for a lock (not a deadlock yet!): SQL> UPDATE dept SET loc = 'Japan';  Session 2 now update EMP, causing the deadlock: SQL> UPDATE emp SET sal=sal+100;  Oracle will detect the deadlock and roll back one of these statements: SQL> UPDATE emp SET sal=sal+100; UPDATE emp SET sal=sal+100 * ERROR at line 1: ORA-00060: deadlock detected while waiting for resource

9 Consistency  Garantiza que los cambios hechos en un instante son consistentes con los cambios hechos a otros datos en el mismo instante.

10 Isolation  Necesaria cuando existe la concurrencia.

11 Isolation  Degrees of isolation: degree 0 - a transaction does not overwrite data updated by another user or process ("dirty data") of other transactions degree 1 - degree 0 plus a transaction does not commit any writes until it completes all its writes (until the end of transaction) degree 2 - degree 1 plus a transaction does not read dirty data from other transactions degree 3 - degree 2 plus other transactions do not dirty data read by a transaction before the transaction commits

12 Durability  Los cambios que han sido “COMMIT” no se pueden perder!  recovery to the most recent successful commit after a database software failure  recovery to the most recent successful commit after an application software failure  recovery to the most recent successful commit after a CPU failure  recovery to the most recent successful backup after a disk failure  recovery to the most recent successful commit after a data disk failure

13 Transacciones en Java  Connection con; ...  con.commit();  con.rollback();  Connection.setAutoCommit(boolean)  Connection.getAutoCommit()

14 Propuestos  Escribir programa en Java que usando al menos 2 threads ejecute operaciones sobre la base de datos.  Elabore un plan para demostrar el funcionamiento de los deadlocks.  Escriba un programa en Java que demuestre cómo opera el commit y el rollback.  Elabore un plan para demostrar que PostgreSQL cumple con la propiedad ACID.


Descargar ppt "Base de Datos II 2da Parte. Propiedad ACID  La propiedad ACIDa es una carácterística de un DBMS para poder compartir datos en forma segura.  A :"

Presentaciones similares


Anuncios Google