BASES de DATOS ÁCTIVAS Bibliografía Piattini & Díaz (2000). Advanced Database Technology and Design. Capt. 3 Elmasri & Navathe (2000). Fundamentals of DBS, Capt. 23.1 Garcia-Molina, Ullman & Widom 2002. DBS, Capt. 7.4
Motivación A día de hoy, los SGBD son el corazón de los Sistemas de Información. Nuevas tendencias en BD: GIS, BD Multimedia, BD XML BD Activas BD convencionales se consideran muertas o pasivas y no pueden manejar ciertas situaciones Ejemplo: actualizar las rutas del autobús con cada incorporación de nuevos alumnos a una escuela 1. Monitorizar cada titulación 2. Comprobar periódicamente las direcciones de los alumnos matriculados Bases de Datos Activas
Comportamiento Pasivo El marido sabe cómo cocinar La esposa solicita explícitamente al marido que lo haga Roles: objeto fuente VS objeto receptor (petición)
Comportamiento Activo El marido sabe cómo cocinar y cuando cocinar Roles: objeto observador VS objeto observado
Comportamiento Activo Comportamiento Activo = CUANDO + QUÉ Ejemplos: Gestión de Stocks: cuando ITEM < 10 entonces solicitar nuevo ITEM al proveedor Productos Perecederos Cuando fecha_caducidad - fecha_actual < 7 entonces reducir el precio del producto
Comportamiento Activo Podemos recoger ese comportamiento en las aplicaciones que acceden a la BD APLICACIÓN CUANDO. ENTONCES.. Gestión Campus Vicalvaro APLICACIÓN Gestión Campus Vicalvaro SGBD Datos Alumnos Datos Titulaciones Datos Autobús. APLICACIÓN Sistema Matriculación CUANDO. ENTONCES.. CUANDO. ENTONCES.. Perdida de Modularidad Semántica distribuida
Comportamiento Activo Podemos recoger ese comportamiento en las aplicaciones que acceden a la BD APLICACIÓN Gestión Campus Vicalvaro SGBD APLICACIÓN Sistema Matriculación APLICACIÓN Datos Alumnos Datos Titulaciones Datos Autobús. Gestión Campus Vicalvaro Mejora la Modularidad Frecuencia de Sondeo?? CUANDO. ENTONCES.. APLICACIÓN SONDEO
Comportamiento Activo Podemos recoger ese comportamiento en la propia BD BD Activas APLICACIÓN Gestión Campus Vicalvaro APLICACIÓN Gestión Campus Vicalvaro SGBD Datos Alumnos Datos Titulaciones Datos Autobús. CUANDO. ENTONCES APLICACIÓN Sistema Matriculación Mejora la Modularidad Código localizado Reacción Inmediata Tráfico de Red
SGBD Activo Los SGBD Activos proporcionan mecanismos para: Definir el cuando y el qué Modelo de Conocimiento SGBD Realizar un seguimiento del cuando y gestionar el qué Modelo de Ejecución Cuando se procesar las reglas Cómo se gestionan eventos simultáneos
SGBD Activo Un sistema de bases de datos activas es un sistema de gestión de bases de datos (SGBD) que contiene un subsistema que permite la definición y la gestión de reglas de producción (reglas activas).
Aplicaciones de los SGBD activos Internas: clásicas de la utilización o administración de BD Control de Integridad Mantenimiento de datos derivados (vistas) Administración de Copias Seguridad y Auditoría Gestión de Versiones Externas: reglas de negocio RESTRICCIÓN wire:voltage > any (select max-voltage from wire-type where type 5 wire.type) REGLA ACTIVA on insert into wire if insert.voltage > any (select max-voltage from wire-type where type 5 insert.type) do (action)
Modelo de Conocimiento Reglas ECA Evento Condición Acción Evento: Causa qué dispara la acción / Suceso al que debe responder el sistema Condición: Estado que debe darse Determina si la acción asociada a la regla se debe ejecutar Acción: Acciones que debe ejecutar el sistema cuando se produce el evento y la condición es cierta
Evento FUENTE: Qué ocasiona la ocurrencia de un evento? una instrucción del LMD (antes o después): Insert, Delete, Select una instrucción para la gestión de transacciones: Commit, Abort una excepción: violación de autorizaciones, bloqueos, etc. el reloj: el 28 de Marzo a las 19:30h. la aplicación GRANULARIDAD: Qué cambios considera UNA ocurrencia del evento? cambios en sólo una tupla (disparadores a nivel de fila) 1 tupla : 1 evento cambios en todas las tuplas (disparadores a nivel de sentencia) n tuplas : 1 evento
Condición y Acción CONDICIÓN: Un predicado sobre la BD: consulta ACCIÓN: Qué se puede incluir en la reacción? comandos de SQL comandos de SQL extendido (p.e. PL/SQL) llamadas externas abortar la transacción
Ejemplo INSERT SGBD Sueldo > Sueldo Jefe UPDATE SGBD Temporalidad después de insert on empleado Evento Condición si new.salario > (select B.salario from empleado B where B.nombre = new.jefe) do rollback Acción
Ejemplo INSERT SGBD Sueldo > Sueldo Jefe UPDATE SGBD Temporalidad después de insert on empleado Evento Condición si new.salario > (select B.salario from empleado B where B.nombre = new.jefe) do update empleado set salario = new.salario where nombre = new.jefe Acción
Modelo de Ejecución Ocurrencia de Eventos Fuente de Eventos Señalar Disparar Reglas Disparadas Reglas Evaluadas Reglas Seleccionadas
Modos de Acoplamiento Cuándo se evalúa la condición? NOMBRE TIPO SUELDO Juan Empleado 1000 Sara Directiva 1050 Ningún empleado debe ganar más que su jefe Jefa de Juan UPDATE EMPLEADO SET SUELDO = SUELDO * 1.10 NOMBRE TIPO SUELDO Juan Empleado 1100 Sara Directiva 1050 NOMBRE TIPO SUELDO Juan Empleado 1100 Sara Directiva 1100 NOMBRE TIPO SUELDO Juan Empleado 1100 Sara Directiva 1200 NOMBRE TIPO SUELDO Juan Empleado 1000 Sara Directiva 1155 NOMBRE TIPO SUELDO Juan Empleado 1100 Sara Directiva 1155 SOLUCIÓN: comprobación diferida
Modos de Acoplamiento Modelo de Acoplamiento Inmediato INICIO de TRANSACCIÓN EVENTO EVLUACIÓN CONDICIÓN EJECUCIÓN ACCIÓN FIN de TRANSACCIÓN
Modos de Acoplamiento Modelo de Acoplamiento Diferido INICIO de TRANSACCIÓN EVENTO Se evalúa al terminar la transacción donde se ha activado (tras la sentencia COMMIT) EVLUACIÓN CONDICIÓN EJECUCIÓN ACCIÓN FIN de TRANSACCIÓN
SQL y las BD Activas CONSTRAINTS: especificaciones del DDL que se aplican a columnas y se evalúan sobre tuplas. UNIQUE, NOT NULL, REFERENCES, CHECK Conviene darles nombre ALTER TABLE Empleados ADD CONSTRAINT EmpFKDept FOREIGN KEY (dept) REFERENCES Departamento (ID); ASERCIONES (ASSERTIONS): restricción que no tiene por qué estar asociada a una única tabla. CREATE ASSERTION un_presidente CHECK( (SELECT COUNT(*) FROM emp WHERE puesto='presidente') < 2); TRIGGERS (DISPARADORES): aserciones con acciones asociadas.
BASES de DATOS ÁCTIVAS Bibliografía Piattini & Díaz (2000). Advanced Database Technology and Design. Capt. 3 Elmasri & Navathe (2000). Fundamentals of DBS, Capt. 23.1 Garcia-Molina, Ullman & Widom 2002. DBS, Capt. 7.4