bases de datos activas

61
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

Upload: mateo988

Post on 21-Nov-2015

11 views

Category:

Documents


5 download

DESCRIPTION

Base de datos Activas

TRANSCRIPT

  • BASES DE DATOS ACTIVASAsignatura: BASES DE DATOS AVANZADAS

    Docentes : Lic. Pablo BogadoLic. Mara Emilia LlorenteA.S. Javier Besso

    Facultad de Ciencia y Tecnologa - UADER

  • BASES DE DATOS ACTIVASUna 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 ACTIVASCOMPORTAMIENTO PASIVOEl marido sabe cmo cocinar.La esposa solicita explcitamente al marido que lo haga.OBJETO FUENTE VS OBJETO RECEPTOR.

  • BASES DE DATOS ACTIVASCOMPORTAMIENTO ACTIVOEl marido sabe cmo cocinar y cuando cocinar.OBJETO OBSERVADOR VS OBJETO OBSERVADO.

  • BASES DE DATOS ACTIVASLos 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 ACTIVASComportamiento 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 ACTIVASComportamiento 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 ACTIVASUna 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.

  • 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 compuestosBASES DE DATOS ACTIVAS

  • Arquitectura bsica de Sistemas de Bases de Datos Activas

    B) CONDICIONES

    C) ACCIONES Externas Internas

    D) REGLAS ECA

    E) BASE DE DATOSBASES 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 {, }, 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 dedatos, 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

  • BASES DE DATOS ACTIVAS

  • BASES DE DATOS ACTIVASSe 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. MODELO DE EJECUCION

  • BASES DE DATOS ACTIVAS- 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.MODELO DE EJECUCION

  • MODELO DE ACOPLAMIENTO INMEDIATOBASES DE DATOS ACTIVAS

  • MODELO DE ACOPLAMIENTO INMEDIATOBASES DE DATOS ACTIVASEn 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.

  • MODELO DE ACOPLAMIENTO DIFERIDOBASES DE DATOS ACTIVAS

  • MODELO DE ACOPLAMIENTO DIFERIDOBASES DE DATOS ACTIVASEn 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.

  • MODELO DE ACOPLAMIENTO DESACOPLADOBASES DE DATOS ACTIVASIndependiente: 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.

  • MODELO DE ACOPLAMIENTO DESACOPLADO BASES DE DATOS ACTIVASINDEPENDIENTE

  • BASES DE DATOS ACTIVASMODELO DE ACOPLAMIENTO DESACOPLADO DEPENDIENTE

  • MANIFIESTO DE LOS SGBDACaractersticas de los SGBDAUn SGBDA es un SGBD.Un SGBDA tiene un modelo de reglas ECA.Un SGBDA debe soportar la gestin de reglas.Un SGBDA debe gestionar la historia de eventos.Un SGBDA debe implementar resolucin de conflictos.Caractersticas de ejecucin de reglas ECAUn SGBDA tiene un modelo de ejecucin.Un SGBDA debe ofrecer diferentes modelos de acoplamiento.BASES DE DATOS ACTIVAS

  • sentencias SQLoptimizadorconsultasprocesadorconsultasdatosresultadoUSUARIOOAPLICACIONSGBD PASIVOBASES DE DATOS ACTIVAS

  • BASES DE DATOS ACTIVAS

  • BASES DE DATOS ACTIVASEn 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 ACTIVASVENTAJAS 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 ACTIVASVENTAJAS 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 ACTIVASAPLICACIONES 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 ACTIVASEj.: COMPROBACION DE LA INTEGRIDAD

    CREATE TRIGGER CompruebaSalarioBEFORE INSERT OR UPDATE OF Salario, Puesto ON EmpleadoFOR EACH ROWDECLARE 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 ACTIVASGENERACION 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 ACTIVASCONTROL 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 ClientesBEFORE INSERT ASBEGIN New.Cliente_Usuario = CURRENT_USER; New.Cliente_Fecha = CURRENT_DATE;END

  • BASES DE DATOS ACTIVASEj.: FUNCIONAMIENTO INTERNO

    CREATE TRIGGER Ordenar_ProduccionAFTER UPDATE OF Cantidad ON InventarioFOR EACH ROWWHEN NEW.Cantidad < NEW.Cantidad_MinimaDECLARE 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 ACTIVASREGLAS 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 ACTIVASFIN

    *******************************