BASES de DATOS ÁCTIVAS

Anuncio
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
APLICACIÓN
Sistema
Matriculación
Gestión
Campus Vicalvaro
SGBD
CUANDO ….
ENTONCES …..
APLICACIÓN
Datos Alumnos
Datos Titulaciones
Datos Autobús
….
Gestión
Campus Vicalvaro
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
Sistema
Matriculación
APLICACIÓN
Gestión
Campus Vicalvaro
SGBD
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
APLICACIÓN
Gestión
Campus Vicalvaro
SGBD
Sistema
Matriculación
Datos Alumnos
Datos Titulaciones
Datos Autobús
….
CUANDO ….
ENTONCES …
APLICACIÓN
Gestión
Campus Vicalvaro
Mejora la Modularidad
Código localizado
Reacción Inmediata
↓ Tráfico de Red
SGBD Activo
Los SGBD Activos proporcionan
mecanismos para:
SGBD
Definir el cuando y el qué
 Modelo de Conocimiento
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
SGBD
Sueldo >
Sueldo Jefe
INSERT
Temporalidad
Condición
SGBD
UPDATE
después de insert on empleado
Evento
si new.salario > (select B.salario
from empleado B
where B.nombre = new.jefe)
do rollback
Acción
Ejemplo
SGBD
INSERT
Temporalidad
Condición
SGBD
Sueldo >
Sueldo Jefe
UPDATE
después de insert on empleado
Evento
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
NOMBRE
TIPO
SUELDO
Sara
Directiva
1050
Juan
Empleado
1000
NOMBRE
TIPO
SUELDO
Sara
Directiva
1155
Juan
Empleado
1100
Sara
Directiva
1100
NOMBRE
TIPO
SUELDO
Juan
Empleado
1100
NOMBRE
TIPO
SUELDO
Sara
Directiva
1155
Juan
Empleado
1100
Sara
Directiva
1200
SOLUCIÓN: comprobación diferida
Modos de Acoplamiento
Modelo de Acoplamiento Inmediato
INICIO
de
TRANSACCIÓN
EVLUACIÓN
CONDICIÓN
EVENTO
FIN
de
TRANSACCIÓN
EJECUCIÓN
ACCIÓ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
FIN
de
TRANSACCIÓN
EJECUCIÓN
ACCIÓ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
Descargar