Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD 4
OBJETIVOS
Crear bitcoras de operacin para el diagnstico del rendimiento del DBMS.
Crear y mantener ndices.
BITCORA
Herramienta que permite registrar, analizar, detectar y notificar eventos que sucedan en un momento determinado.
Es una estructura usada para grabar las modificaciones de la base de datos.
TIPOS DE BITCORAS
Alertas
Archivo alert_orcl.log
Transacciones
Redo: bitcora de toda transaccin. La operacin ROLLBACK est basada en el uso de una bitcora. ARCHIVELOG
DISPARADORES
DISPARADOR / TRIGGER
BITACORA
Disparador/ Trigger Un disparador (trigger) es un procedimiento que se ejecuta en respuesta a un evento INSERT, DELETE o UPDATE sobre filas de una tabla.
Ej. Al aumentar el sueldo de un empleado, que se aumente automticamente el total de gastos de la empresa.
La accin disparada por un evento se especifica mediante una secuencia de sentencias SQL.
Aplicaciones de un Disparador/ Trigger Se obliga a el cumplimiento de las reglas comerciales que debe cumplir una BD en cada transaccin. Realizar cambios en la base de datos de forma transparente al usuario. Generar automticamente valores de columnas en base a un valor proporcionado por una sentencia INSERT UPDATE. Sincronizar el mantenimiento de tablas duplicadas que estn localizadas en nodos distintos de una base de datos distribuida.
Desventajas de un Disparador/ Trigger Crean complejidad en la planeacin lgica de la BD Las reglas ocultas hacen que programas aparentemente sencillos generen una enorme cantidad de actividad
1 2
Expresiones
:OLD y :NEW Prefijos para referirse al valor nuevo y al antiguo de una columna de una fila de la tabla. UPDATE
Valor antes de ser modificado (:OLD) Valor despus de la modificacin (:NEW)
INSERT
Podemos referenciar slo el valor nuevo (:NEW)
DELETE
Podemos referenciar slo el valor antiguo (:OLD)
Ej. :NEW.salario > (:OLD.salario*1.25) Compara si el salario ha aumentado en ms del 25% de salario antiguo
Estado de triggers
TRIGGER habilitado
ALTER TRIGGER nombre_trigger ENABLE; ALTER TABLE nombre_tabla ENABLE ALL TRIGGERS;
TRIGGER deshabilitado
ALTER TRIGGER nombre_trigger DISABLE; ALTER TABLE nombre_tabla DISABLE TRIGGERS; ALL
Es conveniente desactivar los triggers sobre una tabla cuando se hace una carga masiva de datos.
CUANDO SE CREAN ESTN ACTIVOS.
Borrado de triggers
DROP TRIGGER nombre_trigger;
GRANULARIDAD DEL EVENTO FOR EACH ROW. El disparador es a nivel de fila. El cuerpo del disparador se debe aplicar fila a fila a la tabla afectada.
WHEN condicin (slo para disparadores a nivel de fila) Operadores relacionales: < <= > >= = <> Operadores lgicos AND, OR, NOT
FOR EACH STATEMENT. El disparador es a nivel de orden. El cuerpo del disparador se debe aplicar a toda la tabla a la vez.
FUNCIONES DEL CUERPO DEL DISPARADOR CREATE OR REPLACE TRIGGER ejemplo EVENTO BEFORE INSERT OR UPDATE OR DELETE ON tabla BEGIN CONDICIN IF DELETING THEN Acciones asociadas al borrado ACCIN ELSIF INSERTING THEN Acciones asociadas a la insercin ELSE Acciones asociadas a la modificacin END IF; END ejemplo; /
END;
DECLARACIN DE VARIABLES
Dentro de un disparador se pueden declarar variables que se utilizarn dentro del cuerpo del mismo.
CREATE... BEFORE... [FOR EACH ROW ...]
...
EJEMPLO
CREATE OR REPLACE TRIGGER jefes BEFORE INSERT ON empresa.empleados FOR EACH ROW DECLARE supervisa INTEGER; BEGIN SELECT count(*) INTO supervisa FROM empresa.empleados WHERE jefe = :new.jefe; IF supervisa > 4 THEN raise_application_error (-20600,:new.jefe||'no se puede supervisar mas de 5'); END IF; END; /
RECUPERACIN (ROLLBACK)
ROLLBACK Es una operacin que devuelve a la base de datos a algn estado previo. Los Rollbacks son importantes para la integridad de la BD, ya que significan que la BD puede ser restaurada a una copia limpia incluso despus de que se han realizado operaciones errneas. Son cruciales para la recuperacin de cadas de un servidor de base de datos.
PERMANENCIA (COMMIT)
Marca el final de una transaccin correcta, implcita o explcita.
COMMIT Una sentencia COMMIT en SQL finaliza una transaccin de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS).
Pone visibles todos los cambios a otros usuarios. El formato general es emitir una sentencia BEGIN WORK, una o ms sentencias SQL, y entonces la sentencia COMMIT. Alternativamente, una sentencia ROLLBACK se puede emitir, la cual deshace todo el trabajo realizado desde que se emiti BEGIN WORK.
Referencias
Base de Datos Oracle 10g Taller de Administracin I Volumen I Gua del Alumno Edicin 3.0
Operacin y mantenibilidad
UNIDAD 4