Está en la página 1de 23

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 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
Gestión Matriculación
Campus Vicalvaro
SGBD
CUANDO….
ENTONCES ….. Datos Alumnos
Datos Titulaciones
Datos Autobús
APLICACIÓN ….
CUANDO….
Gestión ENTONCES …..

Campus Vicalvaro

CUANDO…. Pérdida de Modularidad


ENTONCES …..
Semántica distribuida
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

Datos Alumnos
Datos Titulaciones
Datos Autobús
….
APLICACIÓN
Gestión
Campus Vicalvaro
CUANDO…. APLICACIÓN
ENTONCES ….. SONDEO
Mejora la Modularidad
Frecuencia de Sondeo??
Comportamiento Activo

Podemos recoger ese comportamiento



en la propia BD BD Activas APLICACIÓN
APLICACIÓN Sistema
SGBD Matriculación
Gestión
Campus Vicalvaro Datos Alumnos
Datos Titulaciones
Datos Autobús
….
CUANDO….
ENTONCES …
APLICACIÓN

Gestión Mejora la Modularidad


Campus Vicalvaro
Código localizado
Reacción Inmediata
↓ Tráfico de Red
SGBD Activo

Los SGBD Activos proporcionan SGBD


mecanismos para:

Definir el cuándo y el qué


Modelo de Conocimiento

Realizar un seguimiento del cuándo y


gestionar el qué
Modelo de Ejecución
 
 Cuando se procesar las reglas
 
Cómo se gestionan eventos simultáneos

Arquitectura Física de una BD Pasiva
Arquitectura Física de una BD Activa


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
 RESTRICCIÓN
Mantenimiento de datos
 derivados (vistas) wire: voltage > any
(select max-voltage

 Administración de Copias from wire-type
 where type 5 wire.type)
 Seguridad y Auditoría

Gestión de Versiones REGLA ACTIVA
on insert into wire
Externas: reglas de negocio 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
G 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 SGBD

Sueldo >
INSERT UPDATE
Sueldo Jefe

después de insert on empleado

si new.salario > (select B.salario


from empleado B
where B.nombre = new.jefe)

do rollback
Ejemplo

SGBD SGBD

Sueldo >
INSERT UPDATE
Sueldo Jefe

después de insert on empleado

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
Modelo de Ejecución
Modos de Acoplamiento
Ningún empleado debe
¿Cuándo se evalúa la condición? ganar más que su jefe

NOMBRE TIPO SUELDO


Juan Empleado 1000
Sara Directiva 1050 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
NOMBRE TIPO SUELDO
Sara Directiva 1100
Juan Empleado 1100
NOMBRE TIPO SUELDO Sara Directiva 1155
Juan Empleado 1100 SOLUCIÓN: comprobación
diferida
Sara Directiva 1200

 INMEDIATO (INMEDIATE):
 LA CONDICIÓN SE EVALÚA INMEDIATAMENTE DESPUÉS
DEL EVENTO.

 LA ACCIÓN SE EJECUTA INMEDIATAMENTE DESPUÉS DE


LA CONDICIÓN.

 DIFERIDO (DEFERRED):
 LA CONDICIÓN SE EVALÚA AL FINAL DE LA


TRANSACCIÓN.
 LA ACCIÓN SE EJECUTA AL FINAL DE LA TRANSACCIÓN. 
Modos de Acoplamiento
Modos de Acoplamiento
SQL y las BD Activas

CONSTRAINTS: especificaciones del DDL que se aplican


a columnas y se evalúan sobre tuplas.

 UNIQUE, NOT NULL,  ALTER TABLE Empleados
REFERENCES, CHECK ADD CONSTRAINT EmpFKDept

 Conviene darles nombre 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.

También podría gustarte