WARNING:
JavaScript is turned OFF. None of the links on this concept map will
work until it is reactivated.
If you need help turning JavaScript On, click here.
Este Cmap, tiene información relacionada con: 13.5 - Diseño de aplicaciones con acceso a Bases de Datos, Diseño de aplicaciones con acceso a Bases de Datos Bloqueos Tipos de Bloqueos, Instrucciones DML Data Manipulation Languages Instrucciones Select: usado para consulta de datos insert: usadopara inserdar registros a una tabla update: usado para modificar el valor de los registro de una tabla delete: usado para borrar un registro de una tabla, Diseño de aplicaciones con acceso a Bases de Datos Bloqueos - Control del procesamiento concurrente. Evita conflictos de datos entre varios usuarios - Bloqueo de recursos. Bloqueo exclusivo y compartido, Diseño de aplicaciones con acceso a Bases de Datos Bloqueos Nivel de Aislamiento, Diseño de aplicaciones con acceso a Bases de Datos SQL - ANSI (American National Standards Institute) - ISO (Internacional Organization for Standardization), ACID Cada una de estas cuatro condiciones tiene que cumplirse para asegurar que una transacción está correctamente diseñada - Atomicidad: esta condición asegura que la operación sea exitosa solamente si todas sus partes se realizaron correctamente. Si una parte falla, la transacción se declara no exitosa. - Consistencia: es la condición que asegura que sólo se empieza aquello que se puede acabar. Por este motivo solamente se ejecutan aquellas operaciones que no van a romper ninguna regla o directriz de integridad de la base de datos. - Aislamiento: esta condición asegura que una operación no puede afectar a otras. Esto permite que la realización de dos transacciones simultáneas sobre la misma porción de información nunca generará ningún tipo de error. - Durabilidad: es la condición que asegura que una vez realizada la operación, el resultado de ésta persistirá y no se podrá deshacer aunque falle el sistema., Deadlocks detalle Los dos procesos están esperando por la liberación del recurso requerido, pero esta nunca se presentará, Nivel de Aislamiento visibles por otras operaciones concurrentes, influyendo en las siguientes anomalías - Dirty Reads: Ocurre cuando una transacción lee datos modificados por otros procesos concurrentes que aún no han realizado COMMIT. - Nonrepeatable Reads: Se presenta cuando dentro de una transacción se lee el mismo registro más de una vez y los datos obtenidos son diferentes, seguramente porque otro proceso concurrente los actualizó. - Phantom Reads: Se presenta cuando en una transacción se ejecuta la misma consulta más de una vez y se obtienen distintos resultados. Por ejemplo, si otra transacción agregó nuevos registros que satisfacen el criterio de búsqueda de la consulta., Deadlocks Para que se presente un deadlock, deben cumplirse las siguientes condiciones: - Condición de exclusión mutua: Existe al menos un recurso compartido por los procesos, al cual sólo puede acceder uno de forma simultánea. - Condición de Posesión y espera: Al menos un proceso Pi ha adquirido un recurso Ri, y lo mantiene mientras espera al menos un recurso Rj que ya ha sido asignado a otro proceso. - Condición de no expropiación: Los recursos no pueden ser tomados por los procesos. Es decir, los recursos sólo pueden ser liberados voluntariamente por quienes los poseen. - Condición de espera circular: Dado el conjunto de procesos P0...Pn, P0 está esperando un recurso adquirido por P1, que está esperando un recurso adquirido por P2, que...,que está esperando un recurso adquirido por Pn, que está esperando un recurso adquirido por P0. Esta condición implica la condición de retención y espera., Tipos de Bloqueos En general, los DBMS's utilizan tres tipos de bloqueos - Bloqueo compartido (shared lock): El DBMS coloca este bloqueo cuando se ejecuta una sentencia para consultar datos, sin modificarlos - Bloqueo exclusivo (exclusive lock): ): El DBMS coloca este bloqueo cuando se ejecuta una sentencia para modificar datos - Bloqueo de actualización (update lock): El DBMS coloca este tipo de bloqueo cuando la información primero tiene que ser leída para luego ser cambiada o eliminada., Diseño de aplicaciones con acceso a Bases de Datos Introducción se debe tener un dominio adecuado de los siguientes temas: - Cómo los datos son almacenados en una Base de Datos Relacional. - Cómo utilizar las sentencias SQL adecuadas para acceder a la información y modificarla. - Diferencias entre los lenguajes de programación tradicionales y SQL. - Uso de objetos de programación del DBMS: procedimientos almacenados y funciones. - Cómo optimizar los accesos a las Bases de Datos mediante el uso de índices., Deadlocks Los deadlocks se pueden prevenir asegurando que no suceda alguna de las condiciones necesarias nombradas anteriormente: - Eliminando la exclusión mutua: ningún proceso puede tener acceso de forma exclusiva a un recurso. Esto es imposible para procesos que no pueden ser encolados, aunque con colas también pueden presentase interbloqueos. - La condición de retención y espera puede ser eliminada haciendo que los procesos soliciten todos los recursos que van a necesitar antes de empezar su ejecución. Este conocimiento por adelantado muchas veces es imposible. Otra forma es requerir que los procesos liberen todos sus recursos antes de pedir todos los recursos que necesitan. Esto también es poco práctico en la realidad. - La condición de no expropiación puede ser imposible de eliminar debido que un proceso debe tener un recurso por un cierto tiempo o el procesamiento puede quedar inconsistente. - La condición de espera circular es la más fácil de controlar. Se le permite a un proceso poseer sólo un recurso en un determinado momento, o una jerarquía puede ser impuesta de modo tal que los ciclos de espera no sean posibles., Timeouts Consfigurable se considera como una buena práctica que los programas controlen el timeout para reversar las transacciones, Diseño de aplicaciones con acceso a Bases de Datos Bloqueos Timeouts, Nivel de Aislamiento El estándar ANSI SQL define cuatro niveles de aislamiento: - READ UNCOMMITTED: Permite que se produzcan Dirty Reads, Nonrepeatable Reads y PhantomReads. Esta es la opción menos restrictiva. Es recomendable si se manejan datos de solo lectura o muy pocas actualizaciones. - READ COMMITTED: Evita la presencia de Dirty Reads, pero permite que se produzcan Nonrepeatable Reads y Phantom Reads. - REPEATABLE READ: Solamente permite que se presenten Phantom Reads. - SERIALIZABLE: Evita todos los casos anteriores. Es la opción más restrictiva y costosa., Diseño de aplicaciones con acceso a Bases de Datos SQL Instrucciones DML Data Manipulation Languages, Guía para la programación de Transacciones Para el diseño de las transacciones se debe considerar - Una transacción debe ser corta en duración, porque ésta bloquea recursos compartidos para otras transacciones. - Una transacción debe estar diseñada para que no espere una decisión, para que no haya retrasos por una respuesta en medio de su ejecución., Diseño de aplicaciones con acceso a Bases de Datos Bloqueos Deadlocks, Timeouts Consfigurable El mecanismo de bloqueos de un DBMS previene que las aplicaciones esperen la liberación de un proceso indefinidamente, Diseño de aplicaciones con acceso a Bases de Datos Definición de Transacciones ACID