You are on page 1of 17

TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM

AUTORES Flix Antonio Cspedes Giraldo Jazmn Castillo Ortegn Stephanny Padilla Duque

UNIVERSIDAD DE MANIZALES FACULTAD DE INGENIERA PROGRAMA INGENIERA DE SISTEMAS Y TELECOMUNICACIONES MANIZALES, 6 DE MAYO DE 2011

COMMIT
Informa al sistema de que se aceptan los cambios hechos dentro de la transaccin y de que deberan aplicarse a la base de datos o ejecutarse. termina una unidad de recuperacin y confirma los cambios de base de datos relacional que se hicieron en esa unidad de recuperacin. Si las bases de datos relacionales son los nicos recursos de reembolso utilizada por el proceso de solicitud, COMMIT tambin termina la unidad de trabajo.

TRANSACCIONES

Restricciones en el uso de COMMIT


La sentencia COMMIT no se pueden utilizar en el IMS o el medio ambiente CICS. Para que una operacin de confirmacin en estos ambientes, los programas de SQL debe utilizar la llamada prescrito por su gestor de transacciones. El efecto de estas operaciones de confirmacin en los datos de DB2 es el mismo que el de la sentencia SQL COMMIT. La sentencia COMMIT no se pueden utilizar en un procedimiento almacenado si el procedimiento est en la cadena de llamadas de una funcin definida por el usuario o un desencadenador o DB2 no es el coordinador de cometer.

Commit work
Termina una transaccin, y hace que los intentos de cambios sean aplicados a la base de datos y sean permanentes.
{Punto sync anterior} DELETE FROM MATRICULAS WHERE CNO = XXX DELETE FROM CLASE WHERE CON = XXX DELETE FROM CURSO WHERE CON = XXX COMMIT WORK

Las tres tablas fueron actualizadas para reflejar la eliminacin de filas con un valor CNO de XXX

ROLLBACK
Informa al sistema de que se a localizado una situacin inaceptable y que deben ignorarse todos los cambios realizados desde el principio de la transaccin se puede utilizar para cualquiera:

Finalizacin de una unidad de recuperacin y de vuelta todos los cambios de base de datos relacional que se hicieron por esa unidad de recuperacin. Si las bases de datos relacionales son los nicos recursos de reembolso utilizada por el proceso de solicitud, ROLLBACK termina tambin la unidad de trabajo. Volver a cabo slo los cambios realizados despus de un punto de retorno se cre dentro de la unidad de recuperacin sin finalizar la unidad de recuperacin. Hacer retroceder a un punto de retorno permite seleccionar los cambios que se deshagan.

ROLLBACK WORK
Permite deshacer cualquier cambio que no ha sido confirmado posteriormente con commit. Las filas que referencias al curso c11 permanecen en las tablas podemos ejecutar esto ejecutando una sentencia select que confirme su presencia
{Punto sync anterior}

DELETE FROM MATRICULAS WHERE CNO = C11


DELETE FROM CLASE WHERE CNO = C11

ROLLBACK WORK

TRIGGERS
EJEMPLO

TRIGGERS
EXPLICACIN El disparador default_class_end sera disparado antes de que la sentencia INSERT se efecte en la tabla cl_sched. La variable n en la definicin del trigger representa el nuevo valor en un INSERT, esto es, el valor que esta siendo insertado. El disparador verificar la validez de lo que est siendo insertado a la tabla. Si la columna ending no tiene un valor durante la insercin, el disparador asegurar que tenga el valor de la columna starting mas 1 hora. NOTA DB2 maneja tres tipos de disparadores: before o antes, after o despus e insteado en lugar de.

TRIGGERS
OTRO EJEMPLO CREATE TRIGGER audit_emp_sal AFTER UPDATE OF salary ON employee REFERENCING OLD AS o NEW AS n FOR EACH ROW MODE DB2SQL INSERT INTO audit VALUES ( CURRENT TIMESTAMP, ' Employee ' || o.empno || ' salary changed from ' || CHAR(o.salary) || ' to ' || CHAR(n.salary) || ' by ' || USER)

TRIGGERS
EXPLICACIN En este ejemplo, el disparador audit_emp_sal es utilizado para realizar auditoria en la columna salary de la tabla employee. Cuando alguien hace un cambio en esta columna, el disparador ser lanzado para escribir informacin acerca del cambio hecho en el salario en otra tabla llamada audit. La lnea OLD as o NEW as n indica que el prefijo o ser utilizado para representar el valor anterior o el existente en la tabla, y el prefijo n ser utilizado para representar el nuevo valor que viene de la operacin UPDATE. Por lo que o.salary representa el valor anterior o el actual del salario y n.salary representa el valor actualizado para la columna salario.

PROCEDIMIENTOS ALMACENADOS
ESTRUCTURA La sintaxis bsica de un procedimiento almacenado se muestra aqu. CREATE PROCEDURE proc_name [( {parametros opcionales} )] [atributos opcionales del procedimiento] <statement> Donde <statement> es una sentencia individual, o un conjunto de sentencias agrupadas por BEGIN [ATOMIC] END

PROCEDIMIENTOS ALMACENADOS
ATRIBUTOS OPCIONALES A continuacin se describen algunos de los atributos del procedimiento almacenado: LANGUAGE SQL (Lenguaje SQL) Este atributo indica el idioma del procedimiento almacenado que se va a utilizar. LANGUAGE SQL es el valor por defecto. Para otros idiomas, tales como Java o C utilizar un LANGUAGE JAVA o LANGUAGE C, respectivamente. RESULT SETS <n> (Conjunto de Resultados <n>) Esto es necesario si el procedimiento almacenado devuelve un conjunto n de resultados.

PROCEDIMIENTOS ALMACENADOS
ATRIBUTOS OPCIONALES SPECIFIC my_unique_name (Especificar mi_unico_nombre) Este es un nombre nico que se le puede dar a un procedimiento. Un procedimiento almacenado puede estar sobrecargado, es decir, varios procedimientos almacenados pueden tener el mismo nombre, pero con diferente nmero de parmetros. Mediante el uso de la palabra clave especfica puede proporcionar un nombre nico para cada uno de estos procedimientos almacenados, y esto puede facilitar la administracin de procedimientos almacenados. Por ejemplo, para eliminar un procedimiento almacenado utilizando la palabra clave especfica, puede utilizar esta declaracin: DROP SPECIFIC (procedimiento especfico). Si la palabra clave SPECIFIC (especfica) no se hubiera utilizado, usted tendra que utilizar un procedimiento de declaracin DROP y poner el nombre del procedimiento con todos los parmetros a fin de que DB2 sepa cual procedimiento almacenado sobrecargado quera eliminar.

PROCEDIMIENTOS ALMACENADOS
PARAMETROS Existen tres tipos de parmetros en un procedimiento almacenado SQL PL: IN parmetro de entrada OUT parmetro de salida INOUT parmetro de entrada y salida

PROCEDIMIENTOS ALMACENADOS
EJEMPLO CREATE PROCEDURE P2 ( IN v_p1 INT, INOUT v_p2 INT, OUT v_p3 INT) LANGUAGE SQL SPECIFIC myP2 BEGIN SET v_p2 = v_p2 + v_p1; SET v_p3 = v_p1; END Para llamar al procedimiento desde el comando Editor, use: call P2 (3, 4, ?) El signo de interrogacin (?) Se utiliza para los parmetros de salida en la declaracin de llamada.

BIBLIOGRAFA

C O N O C I E N D O E L DB2 Express-C. Disponibilidad y acceso: ftp://ftp.software.ibm.com/software/data/db2/expressc/wiki/Conociendo_DB2_Express_v9.5.pdf

You might also like