ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Concurrencia En Base De Datos


Enviado por   •  2 de Septiembre de 2012  •  4.051 Palabras (17 Páginas)  •  1.182 Visitas

Página 1 de 17

1.2 INTRODUCCIÓN A LAS TRANSACCIONES Y BLOQUEOS

Transacciones

Las transacciones aseguran que varias modificaciones a los datos se procesan como una unidad; esto se conoce como atomicidad. Por ejemplo, una transacción bancaria podría abonar en una cuenta y cargar en otra. Los dos pasos se deben completar al mismo tiempo. SQL Server acepta que el proceso de transacciones administre varias transacciones.

Bloqueos

Los bloqueos impiden los conflictos de actualización. Los usuarios no pueden leer o modificar los datos que están en proceso de modificación por parte de otros usuarios. Por ejemplo, si desea calcular una función de agregado y asegurarse de que otra transacción no modifique el conjunto de datos que se utiliza para calcular la función de agregado, puede solicitar que el sistema establezca bloqueos en los datos. Tenga en cuenta los siguientes hechos acerca de los bloqueos:

Los bloqueos hacen posible la serialización de transacciones de forma que sólo una persona a la vez pueda modificar un elemento de datos. Por ejemplo, en un sistema de reservas de una línea aérea los bloqueos aseguran que sólo se asigne un asiento concreto a una persona.

1.2.1 ADMINISTRADOR DE TRANSACCIONES

Garantiza las propiedades ACID para todos los programas bajo su protección.

Los monitores se especializan en la administración de transacciones desde su punto de origen (por lo general en el cliente), ya través de uno o más servidores, para luego volver al cliente originario. Cuando una T llega a su fin, el monitor de TP debe cerciorarse de que todos los sistemas involucrados en ella queden en estado consistente. De esta forma un monitor de TP sabe cómo correr T, enrutarlas entre diferentes sistemas, equilibrar las cargas de ejecución y ponerlas nuevamente en marcha después de una falla. Todo esto sin importar los sistemas, ni los administradores de recursos.

Surgen de la necesidad de correr aplicaciones capaces de atender a cientos o miles de clientes, ya que los monitores permiten conectar en tiempo real a miles de clientes que esperan un servicio, sin necesidad de consumir tantos recursos.

1.2.2 BLOQUEOS Y TRANSACCIONES CON SQL

SQL Server establece y ajusta dinámicamente el nivel de bloqueo apropiado durante una transacción. También se puede controlar manualmente cómo se utilizan algunos de los bloqueos.

Los bloqueos son necesarios para que las transacciones simultáneas permitan que los usuarios tengan acceso y actualicen los datos al mismo tiempo. La alta simultaneidad significa que hay varios usuarios que consiguen un buen tiempo de respuesta con pocos conflictos. Desde la perspectiva del administrador del sistema, los problemas principales son el número de usuarios, el número de transacciones y el rendimiento. Desde la perspectiva del usuario, la preocupación principal es el tiempo de respuesta.

La norma SQL especifica que una transacción comienza implícitamente cuando se ejecuta una instrucción SQL. Una de las siguientes instrucciones SQL debe finalizar la transacción:

Commit work compromete la transacción actual; es decir, hace que los cambios realizados por la transacción sean permanentes en la base de datos. Después de que se comprometa la transacción se inicia una nueva transacción automáticamente.

Rollback work causa el retroceso de la transacción actual; es decir, deshace todas las actualizaciones realizadas por las instrucciones SQL de la transacción; así, el estado de la base de datos se restaura al que existía previo a la ejecución de la transacción.

1.2.3 ADMINISTRACIÓN DE LOS BLOQUEOS

Los bloqueos se administran internamente mediante el Database Engine (Motor de base de datos) de Microsoft SQL Server. Los bloqueos se adquieren y liberan automáticamente en función de las acciones llevadas a cabo por el usuario.

Si no se utiliza el bloqueo y varios usuarios actualizan los mismos datos a la vez, es posible que la información de la base de datos deje de ser correcta desde un punto de vista lógico. En este caso, puede que las consultas ejecutadas en esos datos generen resultados inesperados.

Una aplicación nunca realiza una solicitud directa de un bloqueo. En lugar de ello, cuando se inicia una transacción y se ejecutan comandos del lenguaje de consulta, lenguaje de manipulación de datos (DML) o lenguaje de definición de datos (DDL) en la transacción, SQL Server Compact Edition bloquea los recursos necesarios para ayudar a protegerlos con el nivel de aislamiento SQL Server Compact Edition determina de forma automática cuándo deben concederse y liberarse los bloqueos para todos los recursos. De manera predeterminada, el bloqueo de filas se utiliza para las páginas de datos y el de páginas para las páginas de índice. Para preservar los recursos del sistema, el administrador de bloqueos realiza automáticamente las extensiones de bloqueo cuando se supera un umbral configurable en el número de bloqueos de filas. El número máximo de bloqueos que puede asignarse por sesión en el administrador de bloqueos es de 262.143

1.3 CONCEPTO DE CONTROL DE CONCURRENCIA

Es la actividad de coordinar accesos concurrentes a la base de datos, permite a los usuarios acceder a la base de datos de una forma multiprogramada mientras se mantiene la imagen de que cada usuario está utilizándola solo en sistema dedicado. Asegura que transacciones múltiples sometidas por usuarios diferentes no interfieran unas con otras de forma que se produzcan resultados incorrectos. El control de concurrencia en base de datos distribuidas es más compleja que en sistemas centralizados. Un aspecto interesante del control de concurrencia es el manejo de interbloqueos, el sistema no debe permitir que dos o más transacciones se bloqueen entre ellas.

1.4 CONCURRENCIA

DEFINICION

La concurrencia es un fenómeno que se presenta en varios contextos. Uno de ellos es la multiprogramación ya que el tiempo del procesador es compartido dinámicamente por varios procesos. Otro caso son las aplicaciones estructuradas, donde la programación estructurada se implementa como un conjunto de procesos concurrentes. Y por último se tiene que la misma estructuración recién mencionada es utilizada en el diseño de los sistemas operativos, los cuales se implementan como un conjunto de procesos.

El termino concurrencia

...

Descargar como (para miembros actualizados)  txt (26.3 Kb)  
Leer 16 páginas más »
Disponible sólo en Clubensayos.com