miércoles, 23 de octubre de 2013

Cuestionario

  1. ¿Qué es una transacción?
Una colección de operaciones que forman una unidad lógica de trabajo en una BD realizada por una o más sentencias SQL estrechamente relacionadas.
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).

     2. ¿Qué significa ACID? y defina cada una de las palabras que forman las siglas
Una unidad lógica de trabajo debe exhibir cuatro propiedades.
  • Atomicidad
  • Coherencia
  • Aislamiento 
  • Durabilidad
  • Atomicity : Una Transacción (Tx) se ejecuta completamente ó de otra manera se eliminan los cambios parciales realizados.
    Begin Transaction - Programa - End Transaction
    Responsable: El método de recuperación, de no completar todas las operaciones, devuelve la BD a su estado anterior a empezar esa Tx (rollback).
  • Coherencia: Asegura que los datos queobservamos no cambian (por otros usuarios) hasta que acabemos la Transacción.
    Después de terminar una Transacción la Base de datos no viola ninguna de sus reglas: valores obligatorios, claves únicas,etc.
    Responsable: los programadores mediante la definición adecuada de la integridad referencial: check, triggers, primary key, foreign key,…
  • Aislamiento: Los efectos de una Tx no son visibles a otros usuarios mientras no se confirmen.
    Una Transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar.
    Más aun, si varias transacciones, se ejecutan concurrentemente, los resultados deben ser los mismos que si ellas se hubieran ejecutado secuencialmente. Esto se conoce como seriabilidad debido a que su resultado es la capacidad de volver a cargar los datos iniciales y reproducir una serie de transacciones para finalizar con los datos en el mismo estado en que estaban después de realizar transacciones originales.d
    Responsable: el método de concurrencia: mecanismos, reglas, protocolos
  • Durabilidad: Si el sistema falla no debe permitir que se pierdan las operaciones realizadas por Tx ya confirmadas.
    Responsable: el método o gestor de recuperación.

  •       3. Qué significa Tx?

          Es una Transaccion Abreviacion

          4.¿Para que nos sirve el Rollback?
     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. Son cruciales para la recuperación de crashes de un servidor de base de datos; realizando rollback(devuelto) cualquier transacción que estuviera activa en el tiempo del crash, la base de datos es restaurada a un estado consistente.
    En SQL, ROLLBACK es un comando que causa que todos los cambios de datos desde la última sentencia BEGIN WORK, o START TRANSACTION sean descartados por el sistema de gestión de base de datos relacional (RDBMS), para que el estado de los datos sea "rolled back"(devuelto) a la forma en que estaba antes de que aquellos cambios tuvieran lugar.


         5.   Defina Integridad de datos
    La creación de un modelo de las entidades del espacio del problema y las asociaciones entre ellas es sólo una parte del proceso de modelización de los datos. También se deben captar las reglas que utilizará el sistema de base de datos para asegurar que los datos físicos que realmente mantiene son, si no correctos, al menos plausibles. En otras palabras, se debe modelar la integridad de los datos.
    No puede garantizarse que los datos sean fidedignos; por ejemplo, que un pedido sea de 16 unidades o de 8 unidades depende de el usuario introductor de datos, con lo que para el sistema las dos posibles entradas serían validas aunque claro esta solo es una de ellas. Pero sí se puede garantizar mediante el diseño de la base de datos que los datos son conformes a las restricciones de integridad definidas para ellos.

    Integridad de transiciones

    Las restricciones de integridad de transiciones definen los estados por los que una tupla puede pasar válidamente. Por ejemplo solo se permitirá que el saldo de un cliente cambie a de“Normal” a “Preferente” si el límite de crédito del cliente supera un determinado valor o si lleva al menos un año comerciando con la empresa. El requisito del límite de crédito seguramente estará controlado por un atributo de la relación Clientes, pero puede que el tiempo que lleva el cliente trabajando con la empresa no esté explícitamente guardado en ningún sitio. Será necesario calcular el valor de acuerdo con el registro más antiguo en el que figure el cliente en la relación Pedidos.


            6. Defina concurrencia
    CONTROL DE CONCURRENCIA EN BASES DE DATOS
    El control de transacciones concurrentes en una base de datos brinda un eficiente desempeño del Sistema de Base de Datos, puesto 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.
    El hecho de reservar un asiento en una avión mediante un sistema basado en aplicaciones web, cuando decenas de personas en el mundo pueden reservarlo también, nos da una idea de lo importante y crucial que es el control de concurrencia en un sistema de base de datos a mediana o gran escala.

    Otro ejemplo en el que podemos observar la incidencia del control de concurrencia en el siguiente: en una Base de Datos bancaria podría ocurrir que se paguen dos cheques en forma simultánea sobre una cuenta que no tiene saldo suficiente para cubrirlos en su totalidad, esto es posible evitarlo si se tiene un control de concurrencia.


           7.Defina Grado de consistencia

    Consistencia es un término más amplio que el de integridad. 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.
    Una transacción finalizada (confirmada parcialmente) puede no confirmarse definitivamente (consistencia).
    • Si se confirma definitivamente el sistema asegura la persistencia de los cambios que ha efectuado en la base de datos.
    • Si se anula los cambios que ha efectuado son deshechos.
    La ejecución de una transacción debe conducir a un estado de la base de datos consistente (que cumple todas las restricciones de integridad definidas).
    • Si se confirma definitivamente el sistema asegura la persistencia de los cambios que ha efectuado en la base de datos.
    • Si se anula los cambios que ha efectuado son deshechos.
    Una transacción que termina con éxito se dice que está comprometida (commited), una transacción que haya sido comprometida llevará a la base de datos a un nuevo estado consistente que debe permanecer incluso si hay un fallo en el sistema. En cualquier momento una transacción sólo puede estar en uno de los siguientes estados.
    • Activa (Active): el estado inicial; la transacción permanece en este estado durante su ejecución.
    • Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima transacción.
    • Fallida (Failed): tras descubrir que no se puede continuar la ejecución normal.
    • Abortada (Rolled Back): 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 (Commited): tras completarse con éxito.
    Aspectos relacionados al procesamiento de transacciones
    Los siguientes son los aspectos más importantes relacionados con el procesamiento de transacciones:
    • Modelo de estructura de transacciones. Es importante considerar si las transacciones son planas o pueden estar anidadas.
    • Consistencia de la base de datos interna. Los algoritmos de control de datos semántico tienen que satisfacer siempre las restricciones de integridad cuando una transacción pretende hacer un commit.
    • Protocolos de confiabilidad. En transacciones distribuidas es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad y durabilidad de las transacciones. Así también, se requieren protocolos para la recuperación local y para efectuar los compromisos (commit) globales.
    • Algoritmos de control de concurrencia. Los algoritmos de control de concurrencia 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 réplicas. El control de réplicas se refiere a cómo garantizar la consistencia mutua de datos replicados. Por ejemplo se puede seguir la estrategia read-one-write-all (ROWA).


           8.Mencione aspectos relacionados al procesamiento de transacciones
    • Modelo de estructura de transacciones. Es importante considerar si las transacciones son planas o pueden estar anidadas.
    • Consistencia de la base de datos interna. Los algoritmos de control de datos semántico tienen que satisfacer siempre las restricciones de integridad cuando una transacción pretende hacer un commit.
    • Protocolos de confiabilidad. En transacciones distribuidas es necesario introducir medios de comunicación entre los diferentes nodos de una red para garantizar la atomicidad y durabilidad de las transacciones. Así también, se requieren protocolos para la recuperación local y para efectuar los compromisos (commit) globales.
    • Algoritmos de control de concurrencia. Los algoritmos de control de concurrencia 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 réplicas. El control de réplicas se refiere a cómo garantizar la consistencia mutua de datos replicados. Por ejemplo se puede seguir la estrategia read-one-write-all (ROWA).


           9. Defina los estados de una transacción:
    Activa (Active): el estado inicial; la transacción permanece en este estado durante su ejecución.
    Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima transacción.
    Fallida (Failed): tras descubrir que no se puede continuar la ejecución normal.
    Abortada (Rolled Back): 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 (Commited): tras completarse con éxito.
  •  
  • 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 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.

    No hay comentarios:

    Publicar un comentario