domingo, 11 de noviembre de 2012

Actividad Miércoles 7 de Noviembre


1. ¿Cuándo  debemos usar cursores?
Cuando una consulta retorna más de una fila.

2. ¿Cómo crear y  llamar un proceso en mysql?
CREATE PROCEDURE procedure1 (IN parameter1 INTEGER)
     BEGIN
            DECLARE variable1 CHAR(10);
            IF parameter1 = 17 THEN
                    SET variable1 = 'birds';
            ELSE
                    SET variable1 = 'beasts';
            END IF;
            INSERT INTO table1 VALUES (variable1);
     END

3. ¿Cómo crear una función en mysql?
CREATE FUNCTION `saldo_30_dias`(par_poli_id INTEGER(11))
RETURNS decimal(10,2)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ”
Begin
Declare saldo decimal(10,2);
select sum(pole_monto-pole_abono) into saldo
from polizas_letras a
where a.poli_id=par_poli_id
and pole_fecha_letra>=adddate(now(), interval -30 DAY)
and pole_fecha_letra<now()
and pole_estatus=0;
return saldo;
end;

Transacciones


1. ¿Qué es una transacción?
Una Transacción es un unidad de la ejecución de un programa que accede y, posiblemente, actualiza varios elementos de datos.

2. ¿Qué significa ACID?  y defina cada una de las palabras que forman las siglas:

·        Atomicidad: O se realizan adecuadamente, en la base de datos, todas las operaciones de la transacción o no se realiza ninguna de ellas.

Consistencia: La ejecución aislada de la transacción (es decir, sin otra transacción que se ejecute concurrentemente) conserva la consistencia de la base de datos.

Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza cada transacción ignora al resto de transacciones.

Durabilidad: Tras la finalización con éxito de una transacción, los cambios realizados en la base de datos permanecen, incluso si hay fallos en el sistema.

3. ¿Qué significa Tx?
Transacción

4. ¿Para qué nos sirve el Rollback?
Para devolver  a la base de datos a algún estado previo.

5. Defina Integridad de datos.
Hace referencia a que todas las características de los datos (reglas, definiciones, fechas, etc) deben ser correctos para que los datos estén completos.

6. Defina concurrencia.
Se refiere al hecho de que los DBMS(Sistema de Admon. de BD) permiten que muchas Tx puedan acceder a una misma base de datos a la vez.

7. Defina Grado de consistencia

8. Mencione aspectos relacionados al procesamiento de transacciones:

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.

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 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.

9. Defina los estados de una transacción:

Activa (estado inicial): la transacción permanece en este estado durante su ejecución.

 Parcialmente Comprometida: la transacción pasa a este estado cuando acaba de realizar la última instrucción.

Fallida: la transacción pasa a este estado tras descubrir que no puede continuar la ejecución normal.

Abortada: la transacción pasa a este estado después de haber restablecido la base de datos a su estado anterior.

 Comprometida: la transacción pasa a este estado tras completarse con éxito.


10. 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 conjunto 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.