Está en la página 1de 61

BASES DE DATOS ACTIVAS

Asignatura: BASES DE DATOS AVANZADAS


Docentes : Lic. Pablo Bogado
Lic. Mara Emilia Llorente
A.S. Javier Besso
Facultad de Ciencia y Tecnologa - UADER

BASES DE DATOS ACTIVAS

Una Base de Datos Activa es aquella capaz


de detectar situaciones de inters y de
actuar en consecuencia.
Debe ser capaz de monitorizar y reaccionar
ante eventos de manera oportuna y
eficiente.

BASES DE DATOS ACTIVAS


COMPORTAMIENTO PASIVO

El marido sabe cmo cocinar.


La esposa solicita explcitamente al marido que lo
haga.
OBJETO FUENTE VS OBJETO RECEPTOR.

BASES DE DATOS ACTIVAS


COMPORTAMIENTO ACTIVO

El marido sabe cmo cocinar y cuando cocinar.


OBJETO OBSERVADOR VS OBJETO OBSERVADO.

BASES DE DATOS ACTIVAS


Los SGBD Activos:
Proporcionan mecanismos para definir el
cuando y el qu mediante la definicin de
Reglas Activas. (Modelo de Conocimiento).
Realizan un seguimiento del cuando y
gestionan el qu, procesamiento de las
Reglas Activas. (Modelo de Ejecucin).
Deben tener la capacidad de almacenar las
Reglas Activas.

BASES DE DATOS ACTIVAS


Comportamiento Activo = CUANDO + QU
Ejemplos: Gestin 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

BASES DE DATOS ACTIVAS


Comportamiento Activo = CUANDO + QU
Actualizar la hoja de ruta del transporte
escolar con cada incorporacin de un nuevo
alumno a la escuela
cuando se incorpora un alumno
entonces actualizar la hoja de ruta del
transporte escolar

BASES DE DATOS ACTIVAS


Una Base de Datos Activa tiene mayor
independencia de datos que una No Activa,
porque en la misma se encuentran definidas
las reglas de integridad que se deben cumplir,
de esta manera las aplicaciones son ms
independientes porque deben realizar menos
controles sobre ellos y un cambio en estas
no implica la propagacin del cambio en las
aplicaciones.

BASES DE DATOS ACTIVAS

Un sistema de bases de datos activas es un


sistema de gestin de bases de datos
(SGBD) que contiene la capacidad de
definicin, almacenamiento y gestin de
reglas activas.

BASES DE DATOS ACTIVAS


Una Regla Activa es un conjunto de acciones
que el SGBD ejecuta cuando se produce un
evento determinado. Mediante estas reglas
se pueden hacer respetar reglas de
integridad,
generar
datos
derivados,
controlar la seguridad, realizar auditoras,
implementar reglas de negocios o dar alertas
ante eventos que tienen lugar en la base de
datos que se esta monitorizando.

BASES DE DATOS ACTIVAS


Una Base de Datos Activa utiliza reglas de
Evento Condicin Accin (ECA).
La
ocurrencia
de
varios
tipos
de
acontecimientos (por ejemplo, transiciones
de la base de datos, acontecimientos del
tiempo o seales externas), acciona la
evaluacin de una condicin, y si la condicin
resulta verdadera la accin se realiza.

BASES DE DATOS ACTIVAS


Arquitectura bsica de Sistemas de
Bases de Datos Activas
Bsicamente se encuentra compuesto por:
A) EVENTOS
Eventos primitivos
-Eventos temporales
-Eventos definidos por los usuarios
-Eventos de la base de datos
Eventos compuestos

BASES DE DATOS ACTIVAS


Arquitectura bsica de Sistemas de
Bases de Datos Activas
B) CONDICIONES
C) ACCIONES
Externas
Internas
D) REGLAS ECA
E) BASE DE DATOS

BASES DE DATOS ACTIVAS


En el modelo ECA una regla tiene tres
componentes:
El evento (o eventos) que dispara la regla.
Estos eventos pueden ser operaciones de
consulta o actualizacin que se aplican
explcitamente sobre la base de datos.
Tambin pueden ser eventos temporales (por
ejemplo, que sea una determinada hora del
da) u otro tipo de eventos externos
(definidos por el usuario).

BASES DE DATOS ACTIVAS


En el modelo ECA una regla tiene tres
componentes:
La condicin que determina si la accin de
la regla se debe ejecutar. Una vez que ocurre
el evento disparador, se puede evaluar una
condicin (es opcional). Si no se especifica
condicin, la accin se ejecutar cuando
suceda el evento. Si se especifica condicin,
la accin se ejecutar slo si la condicin se
evala a verdadero.

BASES DE DATOS ACTIVAS


En el modelo ECA una regla tiene tres
componentes:
La accin a realizar puede ser una o ms
operaciones sobre la base de datos
(transaccin) o un programa externo que se
ejecutar automticamente.

BASES DE DATOS ACTIVAS


Los sistemas relacionales incorporan reglas
activas simples denominadas disparadores
(triggers), que estn basados en el modelo
ECA:
Los eventos son sentencias SQL de manejo
de datos (INSERT, DELETE, UPDATE).
La condicin (que es opcional) es un
predicado booleano expresado en SQL.
La accin es un secuencia de sentencias
SQL.

BASES DE DATOS ACTIVAS


Eventos
Un evento se concibe como una pareja
{<Tipo de evento>, <Toc>}, donde el tipo
de evento es la descripcin o especificacin
del evento a detectar y toc (tiempo de
ocurrencia) corresponde al punto en el
tiempo cuando ocurre dicho tipo de evento.

BASES DE DATOS ACTIVAS


Eventos
Los tipos de eventos pueden ser situaciones
dentro de la base de datos o sucesos en el
ambiente. En el caso de bases de datos
relacionales, las operaciones insert, delete o
update pueden ser consideradas como tipos
de eventos, mientras que en bases de datos
orientadas a objeto, stos corresponden a la
creacin o borrado de objetos as como el
llamado a mtodos.

BASES DE DATOS ACTIVAS


Eventos
El tiempo tambin puede ser considerado un
tipo de evento interesante tal como un punto
absoluto en el tiempo (9 de julio de 2013'')
o puntos relativos o peridicos en el tiempo
(cada viernes a las 14:30 hs.'').

BASES DE DATOS ACTIVAS


Eventos
Generalmente, un evento posee parmetros
adicionales a su tiempo de ocurrencia tales
como el identificador de la transaccin que lo
ocasion, el identificador del usuario que
inici la transaccin o por ejemplo el nombre
del mtodo, identificador del objeto y
argumentos en el llamado a un mtodo en
bases de datos orientadas a objetos. Estos
parmetros pueden ser referenciados
tanto en la condicin como en la accin
de la regla.

BASES DE DATOS ACTIVAS


Eventos
Se denomina historia de eventos al conjunto
de todos los eventos sucedidos en el tiempo.
La historia inicia desde el momento en que
se define el primer tipo de evento en la base
de datos.

BASES DE DATOS ACTIVAS


Clasificacin de los Eventos
Eventos
primitivos:
Corresponden
a
ocurrencias de tipos de eventos que pueden
ser detectados directamente por la base de
datos.
Eventos compuestos: se definen como
expresiones de eventos utilizando un
conjunto de operadores de eventos tales
como: disyuncin |, conjuncin & el
operador secuencia ;.

BASES DE DATOS ACTIVAS


Clasificacin de los Eventos
Suponiendo dos eventos primitivos A y B,
A & B ocurre cuando A y B ocurren,
A | B ocurre cuando A o B ocurren y
A ; B ocurre cuando ocurre A y luego B.

BASES DE DATOS ACTIVAS


Clasificacin de los Eventos
Los eventos primitivos se clasifican en:
- Eventos de la base de datos,
- Temporales y
- Explcitos.

BASES DE DATOS ACTIVAS


Clasificacin de los Eventos
Los
eventos
de
la
base
de
datos
corresponden a las operaciones de la base de
datos, por ejemplo insert, update, delete (en
el modelo relacional) y los mtodos (en el
modelo orientado a objetos).

BASES DE DATOS ACTIVAS


Clasificacin de los Eventos
Los eventos temporales se clasifican en
absoluto y relativo.
Temporal Absoluto: se definen como eventos
de tiempo que estipulan una fecha fija. El
evento sucede cuando dicha fecha suceda.
Temporal Relativo: Evento de tiempo que
estipula la ocurrencia de un lapso de tiempo
con respecto a la ocurrencia de otro evento.

BASES DE DATOS ACTIVAS


Clasificacin de los Eventos
Los eventos explcitos (definidos por el
usuario) son esos eventos que son
detectados junto con sus parmetros por
programas de aplicacin (es decir, fuera del
DBMS) y manejados por el DBMS.

BASES DE DATOS ACTIVAS


Condicin
Una condicin puede ser un predicado sobre
los parmetros del evento que dispar la
regla, puede ser una consulta sobre la base
de datos (si retorna filas la condicin se
cumple), o el llamado a un procedimiento o
mtodo que debe retornar verdadero o falso
o una combinacin de los anteriores. La
condicin no debe modificar la base de datos
ni causar efectos colaterales.

BASES DE DATOS ACTIVAS


Condicin
Se trata de una expresin que debe ser
satisfecha para que se pueda proceder al
disparo de la accin.
En el caso que las reglas son disparadas por
modificaciones en los datos, se permite
referenciar tanto en la condicin como en la
accin a los valores previos (old) y
posteriores a la modificacin (new). Estos
mecanismos se denominan condiciones de
transicin.

BASES DE DATOS ACTIVAS


Accin
La accin puede realizar consultas o
modificaciones sobre la base de datos
(select, insert, update, delete), operaciones
de control sobre las transacciones (Rollback,
Commit), o llamar uno o ms procedimientos
o mtodos arbitrarios. Debido a que la accin
puede realizar modificaciones sobre la base
de datos, sta puede ocasionar la ocurrencia
de nuevos eventos y por tanto provocar el
disparo en cascada de nuevas reglas.

BASES DE DATOS ACTIVAS


Accin
Las acciones se dividen en:
-Acciones Externas: Se dan cuando son
especificadas por aplicaciones, por ejemplo
enviar un correo electrnico (email), imprimir
una orden de compra.
- Acciones Internas: Son acciones de la base
de datos, como un insert, update, select.

BASES DE DATOS ACTIVAS


Acoplamiento entre Evento Condicin y
Accin
El modo de acoplamiento o ensamble hace
referencia al momento en que es evaluada la
condicin y ejecutada la accin con respecto
a la transaccin.

BASES DE DATOS ACTIVAS


Acoplamiento entre Evento Condicin y
Accin
Las alternativas son:
-Inmediato:
ejecucin
inmediata
de
transaccin de la regla cuando el evento es
detectado.
-Diferido: la transaccin de la regla es
ejecutada al final de la transaccin que
detecta el evento (justo antes del commit).
-Desacoplado: la transaccin de la regla es
ejecutada en una transaccin separada.

BASES DE DATOS ACTIVAS


Seleccin de Reglas - Conflicto
Cuando dos o ms reglas se disparan al mismo
punto en el tiempo se dice que existe un
conjunto de reglas en conflicto. Debido a que
distintas rdenes de ejecucin de reglas pueden
ocasionar estados distintos en la base de datos,
el ADBMS debe ofrecer un mecanismo de
resolucin de conflictos. Un mecanismo puede ser
el uso de prioridades en reglas, segn el cual, la
prioridad indica el orden en que deben ser
ejecutadas. La resolucin de conflictos es parte
del modelo de ejecucin de reglas.

BASES DE DATOS ACTIVAS


El Modelo de Conocimiento es el que
permite mantener algn mecanismo para que
los usuarios describan la conducta reactiva
de la base de datos, a travs de las reglas
ECA.
El Modelo de ejecucin es el que supervisa
y reacciona frente a las circunstancias
pertinentes
mediante
una
conducta
proactiva, sealando qu pasos se ejecutan
desde que se recibe la seal del evento hasta
la ejecucin de la accin.

BASES DE DATOS ACTIVAS


MODOS DE ACOPLAMIENTO

FUENTE
DE
EVENTOS

OCURRENCIA
DE
EVENTOS

sealar

REGLAS
DISPARADAS

disparar

Modo de acoplamiento
evento-condicin

evaluar

REGLAS
EVALUADAS

REGLAS
SELECCIONADAS

planificar

ejecutar

Modo de acoplamiento
condicin-accin

BASES DE DATOS ACTIVAS


MODELO DE EJECUCION
Se realiza un seguimiento de la situacin y
gestiona el comportamiento activo. Especifica
cmo un conjunto de reglas es tratado en tiempo
de ejecucin, se encarga de realizar el
seguimiento de la situacin, gestionando el
comportamiento activo.

BASES DE DATOS ACTIVAS


MODELO DE EJECUCION
- Sealizacin: En la sealizacin ocurre la
aparicin de las ocurrencias en el evento.
- Activacin: en la activacin se toman los
eventos producidos y se dispara las reglas
correspondientes.
- Evaluacin: Se selecciona una regla activada y
se evala su condicin.
- Planificacin: en la planificacin se indica
cmo se procesa el conjunto de reglas.
- Ejecucin: la ejecucin es la que lleva a cabo
las acciones de las reglas escogidas.

BASES DE DATOS ACTIVAS


MODELO DE ACOPLAMIENTO INMEDIATO
INICIO DE TRANSACCION

EVENTO

FIN DE TRANSACCION

EVALU. CONDICI.

EJEC. ACCION

BASES DE DATOS ACTIVAS


MODELO DE ACOPLAMIENTO INMEDIATO
En este caso la condicin (accin) es
evaluada
(ejecutada)
inmediatamente
despus del evento(condicin). Los modos
inmediatos del acoplador se pueden utilizar,
por ejemplo, para hacer cumplir apremios de
la seguridad o propagos de actualizaciones.

BASES DE DATOS ACTIVAS


MODELO DE ACOPLAMIENTO DIFERIDO
INICIO DE TRANSACCION

EVENTO

EVALU. CONDICI.
FIN DE TRANSACCION

EJEC. ACCION

BASES DE DATOS ACTIVAS


MODELO DE ACOPLAMIENTO DIFERIDO
En este caso la condicin (accin) se evala
(ejecuta) dentro de la misma transaccin que
el evento (condicin) de la regla, pero no
necesariamente en la primera oportunidad.

BASES DE DATOS ACTIVAS


MODELO DE ACOPLAMIENTO DESACOPLADO
Independiente: este se produce cuando la
condicin (Accin), se evala (Ejecuta), en una
transaccin diferente en la que se evala el
evento (Condicin).
Dependiente:
se
produce
cuando
la
condicin(Accin), se evala(Ejecuta), en una
transaccin diferente en la que se evala el
evento (Condicin); pero en este caso la
ejecucin es dependiente de la grabacin
(commit) de la transaccin en la que el evento
tiene lugar o en la que se evala la condicin.

BASES DE DATOS ACTIVAS


MODELO DE ACOPLAMIENTO DESACOPLADO
INDEPENDIENTE
INICIO DE TRANSACCION T1
INICIO DE TRANSACCION T2

EVENTO

EVALU. CONDICI.

EJEC. ACCION

FIN DE TRANSACCION T1
FIN DE TRANSACCION T2

BASES DE DATOS ACTIVAS


MODELO DE ACOPLAMIENTO DESACOPLADO
DEPENDIENTE
INICIO DE TRANSACCION T1
INICIO DE TRANSACCION T2

EVENTO

EVALU. CONDICI.

EJEC. ACCION
FIN DE TRANSACCION T1
FIN DE TRANSACCION T2

BASES DE DATOS ACTIVAS


MANIFIESTO DE LOS SGBDA
Caractersticas de los SGBDA
Un
Un
Un
Un
Un

SGBDA
SGBDA
SGBDA
SGBDA
SGBDA

es un SGBD.
tiene un modelo de reglas ECA.
debe soportar la gestin de reglas.
debe gestionar la historia de eventos.
debe implementar resolucin de conflictos.

Caractersticas de ejecucin de reglas ECA


Un SGBDA tiene un modelo de ejecucin.
Un SGBDA debe ofrecer diferentes modelos de
acoplamiento.

BASES DE DATOS ACTIVAS


SGBD PASIVO

sentencias SQL

optimizador
consultas
procesador
consultas

datos

resultado

USUARIO
O
APLICACION

BASES DE DATOS ACTIVAS


SGBD ACTIVO
optimizador
reglas

optimizador
consultas
prog.
de
reglas

procesador
consultas

datos

APLICACION

gestin
eventos

reglas

BASES DE DATOS ACTIVAS


En la figura anterior se muestran las partes esenciales de
un sistema de administracin de bases de datos activa. En
la parte inferior vemos una representacin del lugar donde
se guardan los datos y las reglas almacenadas.
-Aplicacin: sistema con las necesidades particulares del
negocio, el cul se complementa con la BDA.
-Procesador de consulta: se encarga de convertir una
consulta o manipulacin de la base de datos, que puede
estar expresada en un nivel muy alto (ejemplo, como
consulta en SQL), en un serie de peticiones de datos
almacenados.

BASES DE DATOS ACTIVAS


-Optimizador de Reglas: se encarga de que todas las
operaciones se realicen de la manera apropiada. En
concreto, la ejecucin apropiada requiere que las
propiedades ACID, abreviatura de los cuatro requisitos
principales de la ejecucin: Atomicidad, Consistencia,
Aislamiento, Durabilidad.
-Optimizador de Consultas: es el encargado de
seleccionar un buen plan de consulta o sea una serie de
peticiones al sistema de almacenamiento que las atender.

BASES DE DATOS ACTIVAS

-Programacin de Reglas: se encarga de la programacin


de las reglas de la base de datos. Estas reglas son
programadas en la base de datos para mantener la
consistencia y la integridad de los datos.
-Gestor de Eventos: encargado de la deteccin de los
eventos (ej. Insert, Update, Delete).

BASES DE DATOS ACTIVAS


VENTAJAS DE UNA BD ACTIVA
Centralizacin de la Informacin: esto
permite un mejor mantenimiento, ya que las
reglas son almacenadas dentro de la Base de
Datos, si es necesaria alguna modificacin se
hace slo una vez en la BD en lugar de
hacerlo en cada Programa. Tambin permite
una mayor Productividad, ya que los
programas se simplifican.

BASES DE DATOS ACTIVAS


VENTAJAS DE UNA BD ACTIVA
Encapsulamiento de Procedimientos: esto
permite una mayor productividad ya que se
pueden normalizar los procesos, sacando
factor comn de cierta lgica de los
programas que se almacena una sola vez de
forma centralizada. Permite la reutilizacin del
cdigo, ya que esta disponible cada vez que
se necesite.

BASES DE DATOS ACTIVAS


APLICACIONES DE UNA BD ACTIVA
INTERNAS
Comprobacin de la integridad
Notificacin de condiciones.
Generacin de datos derivados
(materializacin de vistas).
Control de la seguridad (accesos permitidos y
auditoria).
EXTERNAS
Definicin de las reglas de funcionamiento
interno de la organizacin.

BASES DE DATOS ACTIVAS


Ej.: COMPROBACION DE LA INTEGRIDAD
CREATE TRIGGER CompruebaSalario
BEFORE INSERT OR UPDATE OF Salario, Puesto ON Empleado
FOR EACH ROW
DECLARE
minsal NUMBRER;
maxsal NUMBER;
Salario_Fuera_Rango EXCEPTION;
BEGIN
SELECT minsal, maxsal INTO minsal, maxsal
FROM Salarios
WHERE Puesto = :NEW.Puesto;
IF (:NEW.Salario < minsal OR :NEW.Salario > maxsal)
THEN RAISE Salario_Fuera_Rango;
END IF;

BASES DE DATOS ACTIVAS


GENERACION DE DATOS DERIVADOS
A diferencia de las vistas "normales" una vista materializada
almacena fsicamente los datos resultantes de ejecutar la
consulta definida en la vista. Este tipo de vistas materializadas
realizan una carga inicial de los datos cuando se definen y
posteriormente con una frecuencia establecida se actualizan los
datos de la misma. Con la utilizacin de vistas materializadas
logramos aumentar el rendimiento de las consultas SQL adems
de ser un mtodo de optimizacin a nivel fsico en modelos de
datos muy complejos y/o con muchos datos. Una vez definida
una vista materializada uno de los problemas que nos
encontramos es el de la actualizacin de los datos. Para
resolver este problema podemos hacer uso de las Reglas
Activas.

BASES DE DATOS ACTIVAS


CONTROL DE LA SEGURIDAD
ACCESO PERMITIDOS Y AUDITORIA
Las transacciones activas en el SGBD tiene asociado el usuario
que disparo la misma, por lo que es posible controlar la
ejecucin de la misma de acuerdo al usuario, adems la
posibilidad de saber el usuario nos permite mantener
informacin necesaria para auditorias.
Ej. Incorporar el Usuario y la Fecha Actual al momento de
realizar un INSERT.
CREATE TRIGGER Actualizo_Clientes FOR Clientes
BEFORE INSERT AS
BEGIN
New.Cliente_Usuario = CURRENT_USER;
New.Cliente_Fecha = CURRENT_DATE;
END

BASES DE DATOS ACTIVAS


Ej.: FUNCIONAMIENTO INTERNO
CREATE TRIGGER Ordenar_Produccion
AFTER UPDATE OF Cantidad ON Inventario
FOR EACH ROW
WHEN NEW.Cantidad < NEW.Cantidad_Minima
DECLARE
X NUMBER;
Y NUMBER;
BEGIN
SELECT SUM(Cantidad) INTO X FROM Orden_Produccion
WHERE Nro_Pieza = NEW.Nro_PIEZA;
Y:= NEW.Cant_Minima (X + NEW.Cantidad);
INSERT INTO Orden_Produccion(Nro_Pieza, Cantidad,
Fecha)
VALUES(NEW.Nro_Pieza,Y,SYSDATE)
END

BASES DE DATOS ACTIVAS


REGLAS RESTAURADORAS DE LA CONSISTENCIA
En un sistema de base de datos, el cambio en el mundo real se modela
mediante la ejecucin de transacciones de usuario que modifican un estado
generando otro que representa la nueva situacin. Este nuevo estado
puede violar las restricciones de integridad del esquema, restricciones que
representan las propiedades de ese mundo. La reaccin ms frecuente de
los sistemas de bases de datos ante la violacin de la integridad consiste
en rechazar la transaccin que la ha provocado, devolviendo la base de
datos al estado anterior a su ejecucin. Esta solucin tan simple es, sin
embargo, usualmente poco satisfactoria para sistemas reales. Una
alternativa a este comportamiento consiste en que el sistema modifique el
estado inconsistente de forma que se repare la violacin provocada por la
transaccin de usuario respetando los cambios propuestos por sta. Se
dice entonces que el sistema ha restaurado la consistencia de la base de
datos. Para la restauracin de la consistencia utilizan las reglas activas.
Estas reglas se han denominado reglas restauradoras.

BASES DE DATOS ACTIVAS

FIN