Bases de Datos Activas

BASES DE DATOS ACTIVAS Asignatura: BASES DE DATOS AVANZADAS Docentes : Lic. Pablo Bogado Lic. María Emilia Llorente A.S.

Views 282 Downloads 21 File size 265KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

BASES DE DATOS ACTIVAS Asignatura: BASES DE DATOS AVANZADAS Docentes : Lic. Pablo Bogado Lic. María Emilia Llorente A.S. Javier Besso Facultad de Ciencia y Tecnología - UADER

BASES DE DATOS ACTIVAS

Una Base de Datos Activa es aquella capaz de detectar situaciones de interés 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 cómo cocinar. La esposa solicita explícitamente al marido que lo haga. OBJETO FUENTE VS OBJETO RECEPTOR.

BASES DE DATOS ACTIVAS COMPORTAMIENTO ACTIVO

El marido sabe cómo 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 definición de Reglas Activas. (Modelo de Conocimiento). Realizan un seguimiento del cuando y gestionan el qué, procesamiento de las Reglas Activas. (Modelo de Ejecución). Deben tener la capacidad de almacenar las Reglas Activas.

BASES DE DATOS ACTIVAS 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

BASES DE DATOS ACTIVAS Comportamiento Activo = CUANDO + QUÉ “Actualizar la hoja de ruta del transporte escolar con cada incorporación 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 más independientes porque deben realizar menos “controles” sobre ellos y un cambio en estas no implica la propagación del cambio en las aplicaciones.

BASES DE DATOS ACTIVAS

Un sistema de bases de datos activas es un sistema de gestión de bases de datos (SGBD) que contiene la capacidad de definición, almacenamiento y gestión 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 auditorías, 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 – Condición – Acción (ECA). La ocurrencia de varios tipos de acontecimientos (por ejemplo, transiciones de la base de datos, acontecimientos del tiempo o señales externas), acciona la evaluación de una condición, y si la condición resulta verdadera la acción se realiza.

BASES DE DATOS ACTIVAS Arquitectura básica de Sistemas de Bases de Datos Activas Básicamente 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 básica 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 actualización que se aplican explícitamente sobre la base de datos. También pueden ser eventos temporales (por ejemplo, que sea una determinada hora del día) u otro tipo de eventos externos (definidos por el usuario).

BASES DE DATOS ACTIVAS En el modelo ECA una regla tiene tres componentes: La condición que determina si la acción de la regla se debe ejecutar. Una vez que ocurre el evento disparador, se puede evaluar una condición (es opcional). Si no se especifica condición, la acción se ejecutará cuando suceda el evento. Si se especifica condición, la acción se ejecutará sólo si la condición se evalúa a verdadero.

BASES DE DATOS ACTIVAS En el modelo ECA una regla tiene tres componentes: La acción a realizar puede ser una o más operaciones sobre la base de datos (transacción) o un programa externo que se ejecutará automáticamente.

BASES DE DATOS ACTIVAS Los sistemas relacionales incorporan reglas activas simples denominadas disparadores (triggers), que están basados en el modelo ECA: Los eventos son sentencias SQL de manejo de datos (INSERT, DELETE, UPDATE). La condición (que es opcional) es un predicado booleano expresado en SQL. La acción es un secuencia de sentencias SQL.

BASES DE DATOS ACTIVAS Eventos Un evento se concibe como una pareja {, }, donde el tipo de evento es la descripción o especificación 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 creación o borrado de objetos así como el llamado a métodos.

BASES DE DATOS ACTIVAS Eventos El tiempo también 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 periódicos en el tiempo (“cada viernes a las 14:30 hs.'').

BASES DE DATOS ACTIVAS Eventos Generalmente, un evento posee parámetros adicionales a su tiempo de ocurrencia tales como el identificador de la transacción que lo ocasionó, el identificador del usuario que inició la transacción o por ejemplo el nombre del método, identificador del objeto y argumentos en el llamado a un método en bases de datos orientadas a objetos. Estos parámetros pueden ser referenciados tanto en la condición como en la acción 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 Clasificación 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: disyunción “|”, conjunción “&” el operador secuencia “;”.

BASES DE DATOS ACTIVAS Clasificación 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 Clasificación de los Eventos Los eventos primitivos se clasifican en: - Eventos de la base de datos, - Temporales y - Explícitos.

BASES DE DATOS ACTIVAS Clasificación 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 métodos (en el modelo orientado a objetos).

BASES DE DATOS ACTIVAS Clasificación 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 Clasificación de los Eventos Los eventos explícitos (definidos por el usuario) son esos eventos que son detectados junto con sus parámetros por programas de aplicación (es decir, fuera del DBMS) y manejados por el DBMS.

BASES DE DATOS ACTIVAS Condición Una condición puede ser un predicado sobre los parámetros del evento que disparó la regla, puede ser una consulta sobre la base de datos (si retorna filas la condición se cumple), o el llamado a un procedimiento o método que debe retornar verdadero o falso o una combinación de los anteriores. La condición no debe modificar la base de datos ni causar efectos colaterales.

BASES DE DATOS ACTIVAS Condición Se trata de una expresión que debe ser satisfecha para que se pueda proceder al disparo de la acción. En el caso que las reglas son disparadas por modificaciones en los datos, se permite referenciar tanto en la condición como en la acción a los valores previos (old) y posteriores a la modificación (new). Estos mecanismos se denominan condiciones de transición.

BASES DE DATOS ACTIVAS Acción La acción 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 más procedimientos o métodos arbitrarios. Debido a que la acción 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 Acción Las acciones se dividen en: -Acciones Externas: Se dan cuando son especificadas por aplicaciones, por ejemplo enviar un correo electrónico (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 Condición y Acción El modo de acoplamiento o ensamble hace referencia al momento en que es evaluada la condición y ejecutada la acción con respecto a la transacción.

BASES DE DATOS ACTIVAS Acoplamiento entre Evento Condición y Acción Las alternativas son: -Inmediato: ejecución inmediata de transacción de la regla cuando el evento es detectado. -Diferido: la transacción de la regla es ejecutada al final de la transacción que detecta el evento (justo antes del commit). -Desacoplado: la transacción de la regla es ejecutada en una transacción separada.

BASES DE DATOS ACTIVAS Selección de Reglas - Conflicto Cuando dos o más 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 ejecución de reglas pueden ocasionar estados distintos en la base de datos, el ADBMS debe ofrecer un mecanismo de resolución de conflictos. Un mecanismo puede ser el uso de prioridades en reglas, según el cual, la prioridad indica el orden en que deben ser ejecutadas. La resolución de conflictos es parte del modelo de ejecución de reglas.

BASES DE DATOS ACTIVAS El Modelo de Conocimiento es el que permite mantener algún mecanismo para que los usuarios describan la conducta reactiva de la base de datos, a través de las reglas ECA. El Modelo de ejecución es el que supervisa y reacciona frente a las circunstancias pertinentes mediante una conducta proactiva, señalando qué pasos se ejecutan desde que se recibe la señal del evento hasta la ejecución de la acción.

BASES DE DATOS ACTIVAS MODOS DE ACOPLAMIENTO

FUENTE DE EVENTOS

OCURRENCIA DE EVENTOS

señalar

REGLAS DISPARADAS

disparar

Modo de acoplamiento evento-condición

evaluar

REGLAS EVALUADAS

REGLAS SELECCIONADAS

planificar

ejecutar

Modo de acoplamiento condición-acción

BASES DE DATOS ACTIVAS MODELO DE EJECUCION Se realiza un seguimiento de la situación y gestiona el comportamiento activo. Especifica cómo un conjunto de reglas es tratado en tiempo de ejecución, se encarga de realizar el seguimiento de la situación, gestionando el comportamiento activo.

BASES DE DATOS ACTIVAS MODELO DE EJECUCION - Señalización: En la señalización ocurre la aparición de las ocurrencias en el evento. - Activación: en la activación se toman los eventos producidos y se dispara las reglas correspondientes. - Evaluación: Se selecciona una regla activada y se evalúa su condición. - Planificación: en la planificación se indica cómo se procesa el conjunto de reglas. - Ejecución: la ejecución 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 condición (acción) es evaluada (ejecutada) inmediatamente después del evento(condición). 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 condición (acción) se evalúa (ejecuta) dentro de la misma transacción que el evento (condición) de la regla, pero no necesariamente en la primera oportunidad.

BASES DE DATOS ACTIVAS MODELO DE ACOPLAMIENTO DESACOPLADO Independiente: este se produce cuando la condición (Acción), se evalúa (Ejecuta), en una transacción diferente en la que se evalúa el evento (Condición). Dependiente: se produce cuando la condición(Acción), se evalúa(Ejecuta), en una transacción diferente en la que se evalúa el evento (Condición); pero en este caso la ejecución es dependiente de la grabación (commit) de la transacción en la que el evento tiene lugar o en la que se evalúa la condición.

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 Características 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 gestión de reglas. debe gestionar la historia de eventos. debe implementar resolución de conflictos.

Características de ejecución de reglas ECA Un SGBDA tiene un modelo de ejecución. 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

gestión eventos

reglas

BASES DE DATOS ACTIVAS En la figura anterior se muestran las partes esenciales de un sistema de administración de bases de datos activa. En la parte inferior vemos una representación del lugar donde se guardan los datos y las reglas almacenadas. -Aplicación: sistema con las necesidades particulares del negocio, el cuál se complementa con la BDA. -Procesador de consulta: se encarga de convertir una consulta o manipulación 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 ejecución apropiada requiere que las propiedades ACID, abreviatura de los cuatro requisitos principales de la ejecución: 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

-Programación de Reglas: se encarga de la programación 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 detección de los eventos (ej. Insert, Update, Delete).

BASES DE DATOS ACTIVAS VENTAJAS DE UNA BD ACTIVA Centralización de la Información: esto permite un mejor mantenimiento, ya que las reglas son almacenadas dentro de la Base de Datos, si es necesaria alguna modificación se hace sólo una vez en la BD en lugar de hacerlo en cada Programa. También 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 común de cierta lógica de los programas que se almacena una sola vez de forma centralizada. Permite la reutilización del código, ya que esta disponible cada vez que se necesite.

BASES DE DATOS ACTIVAS APLICACIONES DE UNA BD ACTIVA INTERNAS • Comprobación de la integridad • Notificación de condiciones. • Generación de datos derivados (materialización de vistas). • Control de la seguridad (accesos permitidos y auditoria). EXTERNAS • Definición de las reglas de funcionamiento interno de la organización.

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 físicamente 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 utilización de vistas materializadas logramos aumentar el rendimiento de las consultas SQL además de ser un método de optimización a nivel físico 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 actualización 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 ejecución de la misma de acuerdo al usuario, además la posibilidad de saber el usuario nos permite mantener información 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 ejecución de transacciones de usuario que modifican un estado generando otro que representa la nueva situación. Este nuevo estado puede violar las restricciones de integridad del esquema, restricciones que representan las propiedades de ese mundo. La reacción más frecuente de los sistemas de bases de datos ante la violación de la integridad consiste en rechazar la transacción que la ha provocado, devolviendo la base de datos al estado anterior a su ejecución. Esta solución 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 violación provocada por la transacción 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 restauración de la consistencia utilizan las reglas activas. Estas reglas se han denominado reglas restauradoras.

BASES DE DATOS ACTIVAS

FIN