1.¿Qué es una transacción?
Es una
unidad de la ejecución de un programa que lee y escribe datos a y desde la Base
de Datos. Puede consistir en varias operaciones de acceso a la base de datos.
Una Transacción está delimitada por instrucciones de inicio transacción y fin transacción (la
transacción consiste en todas las operaciones que se ejecutan entre inicio
transacción y fin transacción).
Es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
2.¿Qué significa ACID? y defina cada una de las palabras que forman las
siglas
En concreto ACID es un acrónimo de Atomicity, Consistency, Isolation and
Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español. Son características necesarias para que una serie de instrucciones puedan ser consideradas como una transaccion.
Así pues, si un sgbd es ACID compliant quiere decir que el mismo cuenta
con las funcionalidades necesarias para que sus transacciones tengan
las características ACID.
- Atomicidad: es la propiedad que asegura que la operación se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.
- Consistencia: Integridad. Es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos. La propiedad de consistencia sostiene que cualquier transacción llevará a la base de datos desde un estado válido a otro también válido.
- Aislamiento: es la propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información sean independientes y no generen ningún tipo de error.
- Durabilidad: es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.
3.¿Para que nos sirve el Rollback?
nos sirve para volver al inicio a un procedimiento si este falla
por medio de una sentencia simple en SQL. Por ejemplo tengamos la siguiente
sentencia:
UPDATE Productos SET Precio=20 WHERE Nombre =’Cereales’ (esta es una sentencia simple o autocommit "que significa autocompletada" o sentencia directa ).
Un 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.
UPDATE Productos SET Precio=20 WHERE Nombre =’Cereales’ (esta es una sentencia simple o autocommit "que significa autocompletada" o sentencia directa ).
Un 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.
Siempre cuando
ejecutemos o depuramos cualquier SQL estos siempre se guardan en un fichero de
Log y despues se hacen las modificacion en la DB, en este punto sirve la
utilidad de ROLLBACK TRAN que nos ayuda a volver a reinicar el procedidmiento a
su estado actual sin modificar los datos y perder la informacion de la sentencia
si esta falla al momento de ejecutarse; mas que todo estas sentecias se
utilizan en la creacion de procedimientos almacenados y no directamente en una
consulta simple de vista en SQL ya que forma parte de las funciones TRANSACT
SQL.
4.Defina Integridad de datos
Se refiere a la corrección y completitud de los datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes. Pueden añadirse datos no válidos a la base de datos, tales como un pedido que especifica un producto no existente.
Pueden modificarse datos existentes tomando un valor incorrecto, como por ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la base de datos pueden perderse debido a un error del sistema o a un fallo en el suministro de energía. Los cambios pueden ser aplicados parcialmente, como por ejemplo si se añade un pedido de un producto sin ajustar la cantidad disponible para vender.
- Activa. El estado inicial , la transacción permanece en este estado durante su ejecución.
- Parcialmente comprometida. Después de ejecutarse la ultima instrucción.
- Fallida. Tras descubrir que no puede continuar la ejecución normal.
- Abortada. Después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción.
- Comprometida. Tras completarse con éxito.
- Lectura sucia. Las sentencias SELECT son ejecutadas sin realizar bloqueos, pero podría usarse una versión anterior de un registro. Por lo tanto, las lecturas no son consistentes al usar este nivel de aislamiento.
- Lectura norepetible. Una transacción vuelve a leer datos que previamente había leído y encuentra que han sido modificados o eliminados por una transacción cursada.
- Lectura
fantasma. Una transacción vuelve a ejecutar una consulta, devolviendo un
conjuto de registros que satisfacen una condición de búsqueda y encuentra que
otros registro que satisfacen la condición han sido insertadas por otra
transacción cursada.
5.Defina concurrenciase refiere al hecho de que los DBMS(SISTEMAS DE ADMINISTRACION DE BD) permiten que muchas transacciones puedan accesar a una misma base de datos a la vez.
Defina Grado de consistencia
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.
El control de transacciones concurrentes en una base de datos brinda un
eficiente desempeño del Sistema de Base de datos, ya que permite controlar la ejecución de
transacciones que operan en paralelo, accesando a información compartida y, por lo tanto,
interfiriendo potencialmente unas con otras.
Mencione aspectos relacionados al procesamiento de transacciones
Los siguientes son
los aspectos más importantes relacionados con el procesamiento de
transacciones:
* Algoritmos de control de concurrencia
Defina los estados de una transacción:
Deben
sincronizar la ejecución de transacciones concurrentes bajo el criterio
de correctitud. La consistencia entre transacciones se garantiza
mediante el aislamiento de las mismas.
* Protocolos de control de replicas
Se refiere a como garantizar la consistencia mutua de datos replicados. El procesamiento de transacciones básicamente consiste
en una serie de modificaciones (transacciones) a un determinado recurso
del sistema (por ejemplo una base de datos) y en donde se define un
punto de inicio y un punto de terminación que define un bloque entre el
conjunto de operaciones que son realizadas.
* Modelo de estructura de transacciones
Es importante considerar si las transacciones son planas o anidadas.
* Consistencia de la base de datos interna
Los
algoritmos de control de datos tienen que satisfacer las restricciones
de integridad cuando una transacción pretende hacer un compromiso.
* Protocolos de confiabilidad
En
transacciones distribuidas es necesario introducir medios de
comunicación entre los diferentes nodos de una red para garantizar la
atomicidad de las transacciones.
Defina los estados de una transacción:
- Activa (Active): estado inicial, la transaccion permanece en este estado durante su ejecucion.
- Parcialmente comprometida (Uncommited): despues de ejecutarse la ultima instruccion.
- Fallida (Failed): tras descubrir que no puede continuar la ejecucion normal
- Abortada (Rolled Back): despues de haber retrocedido la transaccion y restablecido la base de datos a su estado anterior al comienzo de la transaccion.
- Comprometida (Commited): tras completarse con exito
El
estándar ANSI/ISO SQL define cuatro niveles de aislamiento
transaccional en función de tres eventos que son permitidos o no
dependiendo del nivel de aislamiento. Estos eventos son:
Lectura
fantasma. Una transacción vuelve a ejecutar una consulta, devolviendo un
conjuto de registros que satisfacen una condición de búsqueda y encuentra que
otros registro que satisfacen la condición han sido insertadas por otra
transacción cursada.
Lectura sucia. Las sentencias SELECT son
ejecutadas sin realizar bloqueos, pero podría usarse una versión anterior de un
registro. Por lo tanto, las lecturas no son consistentes al usar este
nivel de aislamiento.
Lectura no repetible. Una transacción vuelve a leer datos que
previamente había leído y encuentra que han sido modificados o eliminados por
una transacción cursada.
No hay comentarios:
Publicar un comentario