Descripción: vista general de una despulpadora de frutas blandas
Descripción: Ductos
Descripción completa
Manual ACHSDescripción completa
Operación y mantenibilidad UNIDAD 4
OBJETIVOS •
•
Crear bitácoras de operación para el diagnóstico del rendimiento del DBMS. Crear y mantener índices.
BITÁCORAS DE TRABAJO DEL DBMS
•
•
•
BITÁCORA 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.
IMPORTANCIA DE UNA BITÁCORA •
•
•
•
•
Recuperar información ante incidentes Detección de comportamiento inusual Información para resolver problemas Evidencia Legal Computo Forense
TIPOS DE BITÁCORAS •
Alertas •
•
Transacciones •
•
•
Archivo alert_orcl.log Redo: bitácora de toda transacción. La operación ROLLBACK está basada en el uso de una bitácora. ARCHIVELOG
Auditorias (seguimiento de intentos de inicio de sesión, accesos a objetos y acciones de la base de datos)
•
DISPARADORES
FUNCIONES ESPECÍFICAS DE LAS BITÁCORAS •
•
•
•
Las bitácoras graban las modificaciones de la base de datos en registros. Cada registro de la bitácora escribe una única escritura de base de datos y tiene las siguientes características: Nombre de la Transacción Valor antiguo Valor nuevo
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 automáticamente el total de gastos de la empresa.
La acción 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 transacción. Realizar cambios en la base de datos de forma transparente al usuario. Generar automáticamente valores de columnas en base a un valor proporcionado por una sentencia INSERT ó UPDATE. Sincronizar el mantenimiento de tablas duplicadas que están localizadas en nodos distintos de una base de datos distribuida.
Desventajas de un Disparador/ Trigger •
•
Crean complejidad en la planeación lógica de la BD Las reglas ocultas hacen que programas aparentemente sencillos generen una enorme cantidad de actividad
1 2
1 Data Manipulation Language 2 Data Definition Language
DEFINICION DE LOS TRIGGERS CREATE OR REPLACE TRIGGER 1. Comando: Se especifica el comando SQL que dispara el Trigger (Delete, Insert ó Update), y la tabla asociada. Se puede especificar cuándo se dispara el Trigger: • BEFORE, antes de ejecutar el comando. • AFTER, después de ejecutar el comando.
2. Restricción: Se define la condición que tiene que verificar cada fila de la tabla para que se ejecute la acción del trigger 3. Acción: Se define mediante comandos y sentencias SQL la tarea específica que realiza el Trigger.
Expresiones •
•
:OLD y :NEW Prefijos para referirse al valor nuevo y al antiguo de una columna de una fila de la tabla. UPDATE •
•
•
INSERT •
•
Valor antes de ser modificado (:OLD) Valor después de la modificación (:NEW) Podemos referenciar sólo el valor nuevo (:NEW)
DELETE •
Podemos referenciar sólo el valor antiguo (:OLD)
Ej. :NEW.salario > (:OLD.salario*1.25) Compara si el salario ha aumentado en más del 25% de salario antiguo •
Estado de triggers •
TRIGGER habilitado •
•
•
TRIGGER deshabilitado •
•
•
ALTER TRIGGER nombre_trigger ENABLE; ALTER TABLE nombre_tabla ENABLE ALL TRIGGERS;
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 ESTÁN ACTIVOS.
Borrado de triggers •
DROP TRIGGER nombre_trigger;
Documentación de triggers Se pueden consultar las vistas: •
•
•
USER_TRIGGERS ALL_TRIGGERS DBA_TRIGGERS
SELECT TRIGGER_NAME USER_TRIGGERS;
,
STATUS
FROM
OTRAS FUNCIONES •
Ver errores en la sintaxis •
•
Ver el cuerpo de un disparador SELECT TRIGGER_BODY FROM USER_TRIGGERS WHERE TRIGGER_NAME=‘ nombre_disparador ’; Ver la descripción de un disparador SELECT DESCRIPTION FROM USER_TRIGGERS WHERE TRIGGER_NAME= ‘ nombre_disparador ’; •
•
show errors trigger ‘nombre_disparador ’;
•
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 condición (sólo para disparadores a nivel de fila) Operadores relacionales: < <= > >= = <> Operadores lógicos 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 CONDICIÓN IF DELETING THEN Acciones asociadas al borrado ACCIÓN ELSIF INSERTING THEN Acciones asociadas a la inserción ELSE Acciones asociadas a la modificación END IF; END ejemplo; /
FUNCIONES DEL CUERPO DEL DISPARADOR RAISE_ERROR_APPLICATION (nro_error, mensaje); Error definido por el usuario [-20000 y -20999] CREATE OR REPLACE TRIGGER ejemplo BEFORE DELETE ON tabla FOR EACH ROW BEGIN IF tabla.columna= valor_no_borrable THEN
RAISE_APPLICATION_ERROR(-20000 ,‘La fila no se puede borrar’); END IF; END;
DECLARACIÓN DE VARIABLES Dentro de un disparador se pueden declarar variables que se utilizarán dentro del cuerpo del mismo. CREATE... BEFORE... [FOR EACH ROW ...]
DECLARE Nombre CONSTANT NUMBER:=valor; nombre TIPO; BEGIN
...
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; /
RECUPERACIÓN (ROLLBACK)
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 BD, ya que significan que la BD 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 caídas de un servidor de base de datos.
PERMANENCIA (COMMIT) Marca el final de una transacción correcta, implícita o explícita.
COMMIT Una sentencia COMMIT en SQL finaliza una transacción 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 más 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.
DEFINICIÓN DE LOS MODOS DE OPERACIÓN DE UN DBMS. (ALTA, BAJA, RECOVERY)
Referencias •
•
•
•
•
•
•
•
•
Base de Datos Oracle 10 g Taller de Administración I Volumen I • Guía del Alumno