AA10-Ev3 – Manejo de Transacciones, bloqueos y control de concurrencia en un motor de base de datos específico
Presentado por: MAURICIO MEJIA ESTEVEZ ALEX CAPERA TOVAR EMMANUEL RUBIO VILLAMIZAR
Tutor(a):
Desarrollo de la actividad
Al administrar bases de datos, muy a menudo se producen problemas de rendimiento en sistemas con muchos usuarios en cortos periodos de tiempo. A medida que aumenta el número de usuarios que obtienen acceso a los datos, se hace mucho más necesario que el acceso a la informacion se haga de forma óptima. SQL Server incorpora diferentes estrategias para garantizar la integridad integr idad de cada transacción y proporciona información acerca de las consultasy transacciones que están en proceso de ser ejecutadas.
Una transacción se debe comportar como una unidad de trabajo, de tal forma que permita cumplir las cuatro propiedades, tales como atomicidad, coherencia, aislamiento y durabilidad (ACID), para ser calificada como transacción. Durante el desarrollo de un sistemas de información o la administracion de bases de datos se debe garantizar que las sentencias SQL sean iniciadas y finalizadas con mucha coherencia con el objetivo de evitar consumir recursos de forma desmesurada ocasionando pérdidas del rendimiento del motor de base de datos y del servidor. SQL Server como Motor de base de datos proporciona una serie de servicios que facilitan el aislamiento de las transacciones. Por medio de una serie de registros facilita la persistencia en las transacciones, lo cual garantiza que todas las transacciones sean tenidas en cuenta para ser procesadas.
Un DBA está en condiciones de elaborar transacciones y controlar sus diferentes estados desde su inicio hasta su finalización. Estas se pueden llevar a cabo mediante instruccioens SQL o accediendo a diferentes recursos como APIs. El sistema también debe ser capaz de controlar correctamente los errores que terminan una transacción antes de que se concluya. conc luya. SQL server es un motor que permite pe rmite transacciones explicitas, implicitas y de confirmación automáticas.
Si se llega a presentar un error que impida la terminación correcta de una transacción, SQL Server revierte automáticamente la transacción y libera todos los recursos que mantiene la transacción. Si se interrumpe la conexión de red del cliente con una instancia de Motor de base de datos, las transa cciones pendientes de la conexión revierten al estado anterior cuando la red notifica la interrupción a la instancia. Si la aplicación cliente falla o si el equipo cliente se bloquea o se reinicia, también se interrumpe la conexión y la instancia de Motor de base de datos revierte las conexiones pendientes cuando la red le notifica la interrupción. Si el cliente cierra la aplicación, las transacciones pendientes se revierten y todo este este proceso se lleva a cabo de forma automática. SQL server utiliza dos estrategias para el manejo de las transacciones, los bloqueos y las transacciones de fila. Un bloqueo por ejemplo impide que otras transacciones puedan modificar los recursos de forma que esto provoca problemas para otras transacciones que solicita el bloqueo. Cada transacción libera sus bloqueos cuando ya no depende de los recursos bloqueados. Por otra parte las versiones de fila se
confirmado en la base de datos. Situaciones que se pueden presentar de forma recurrente en diferentes entidades al interior de un motor de base de datos. Muchas veces los usuarios de un sistema de informacion o un motor de bases de datos tienen acceso simultaneo a la información, o pueden desear modificar un registro de forma simmultánea. Esto es el reflejo de la posibilidad de acceder a los datos a traves de un sistema o u motor de base de d e datos para el caso de los DBAs. El acceso simultáneo a los datos hace necesario que existan estrategias que minimicen o bloqueen efectos negativos cuando varios usuarios intentan modificar recursos que otros usuarios están utilizando. Cuando un usuario o un grupo de ellos realizan modificaciones sobre un conjunto de datos pueden afectar a otros usuarios que leen o modifican los mismos datos a la vez. Se dice que estos usuarios tienen acceso a los datos de forma concurrente. Si un sistema de almacenamiento de datos no dispone de control de simultaneidad, los usuarios se pueden encontrar con problemas como, actualizaciones peridadas, lecturas desactualizadas, registros ambiguos o contradictorios y además de esto lecturas fantasma. Una estrategia usada por el motor de base de datos SQL Server se denomina, control de simultaneidad pesimista, este impide que los usuarios modifiquen los datos de forma que afecte a otros usuarios. Cuando un usuario lleve a cabo una acción que da lugar a que se aplique un bloqueo, los demás usuarios no podrán realizar acciones que crearían conflictos con el bloqueo hasta que el propietario lo libere. Este mecanismo
SQL SERVER
Inconpora diferentes estrategias para garantizar la interidad de cada tranasacción ejecutada, por medio un registro de transacciones se controlan todos los eventos que se generan al interior del motor
Servicios de Bloqueo
control optimista
control presimista
soporte y manejo de arquitectura ACID
bloqueos y transacciones transacciones de fila
Seguimiento persistencia de transacciones por medio del ingreso de registros
Las sentencias sentencias SQL deben ser iniciadas y finalizadas finalizadas con mucha coherencia con el objetivo de evitar consumir recursos de f orma desmesurada ocasionando pérdidas del rendimiento