• No se han encontrado resultados

2. Estado de la Cuestión

2.2 Conceptos Sobre Tecnología Activa Aplicada a BD

2.2.2 BD Pasiva Versus BD Activa

En general, se pueden distinguir distintas arquitecturas de BD según donde se desarrolle el control de restricciones, cada una de ellas con sus ventajas y desventajas como se resume en la tabla 2.1. La arquitectura tradicional (Cliente-Servidor) garantiza la integridad de los datos a través de incorporar procedimientos de control dentro de las aplicaciones que acceden a la BD. En este caso, la semántica se repite en todas las aplicaciones que actualizan los datos y se produce un problema de descentralización semántica que lleva consigo redundancia, distribución y dificultad en el mantenimiento de la BD. Una aproximación para garantizar las restricciones en la arquitectura tradicional consiste en incorporar aplicaciones especiales que realicen un sondeo (polling) periódico para comprobar el estado de la BD. Los inconvenientes de esta solución son que el sondeo puede no realizarse en el momento adecuado y la realización del mismo afecta a la eficiencia de la BD, especialmente cuando se realizan muchas consultas sobre los datos.

La arquitectura a tres capas es una solución a la limitación presentada por la arquitectura tradicional, pero además de la complejidad asociada a esta

aproximación, las restricciones de integridad son gestionadas fuera de la BD, lo que provoca que sean más difíciles de entender y de implementar.

Por el contrario, la utilización de la tecnología activa ha sido considerada ampliamente en la literatura desde que esta tecnología ha sido introducida en Los SGBDs. En estos sistemas se puede definir y transformar una restricción de integridad a una regla activa [Widom y Finkelstein, 1990] [Gertz y Lipeck, 1993]. Esta tecnología permite a los desarrolladores ejecutar códigos de programas de una manera autónoma, para verificar las restricciones lo que ayuda a mejorar el funcionamiento de la BD, centralizando la semántica en la misma, además de facilitar el mantenimiento y la reutilización de las restricciones.

Arquitectura Ventajas Desventajas En los clientes

(BD pasiva)

Mejor rendimiento, tradicional y muy conocida, etc.

Redundancia, distribución, y difícil mantenimiento, etc. En una capa

intermedia (Tres capas)

El cliente se comunica con la

capa media

independientemente del SGBD utilizado.

Mejora el rendimiento si existe gran cantidad de usuarios, etc.

Complejidad para desarrollar. Carencia en la portabilidad de aplicaciones, etc. Dentro de la BD (BD activa) Reutilización, Nivel de automatización, Semántica centralizada, Mantenimiento más sencillo, etc.

Hay que garantizar la terminación y la confluencia. Complejidad de implementación, etc.

Tabla 2.1. Comparación entre distintas arquitecturas de BD.

Los SGBDs soportan entre otros aspectos, concurrencia, control del acceso, recuperación de errores, y distribución de datos. Sin embargo, los sistemas de información necesitan otros componentes para (1) manejar la interfaz con los usuarios finales, (2) realizar operaciones complejas sobre los datos, y (3) controlar la ejecución de las operaciones [Berghe, 2000]. Por ello, normalmente, estas tareas se realizan a través de los programas de aplicaciones como reglas activas o disparadores

(active rules, triggers) que son los mecanismos fundamentales que nos proporciona esta tecnología para conservar la consistencia de la BD.

Así pues, una BD activa puede aceptar ciertas actualizaciones deseadas e impedir otras indeseadas que violen las restricciones de integridad de sus datos. Una vez que la BD activa detecta la aparición de un evento determinado, dispara autónomamente unas reglas preestablecidas que examinan primero el estado de la BD por unas condiciones predefinidas en estas reglas. Si estas condiciones son ciertas, las reglas realizan ciertas operaciones definidas por los desarrolladores para proteger la consistencia de los datos. A estas reglas se les denominan reglas ECA (Evento, Condición y Acción).

La fuerza del sistema activo es su capacidad de llevar una parte de las funcionalidades de las aplicaciones. En la figura 2.1 se muestra como una acción ai

debe realizarse dentro de varios programas en la BD pasiva, mientras la misma acción puede mantenerse en una sola regla activa compartida entre las aplicaciones de la BD activa. Los beneficios del sistema activo son los siguientes:

• Esta técnica simplifica la implementación de las aplicaciones y permite la reutilización de acciones implementadas en las reglas activas.

• Permite un nivel más alto de automatización para controlar dominios donde se pueden activar muchas operaciones sin las intervenciones directas del usuario. • Proporciona una independencia que permite reducir el coste del desarrollo y el

esfuerzo del mantenimiento, al actualizar la semántica cambiando unas reglas en lugar de actualizar el conjunto de aplicaciones.

• Garantiza una política de seguridad que no permite acceder a la BD sin obedecer las autorizaciones descritas por las reglas responsables de estas políticas.

BD Pasiva

Tablas de datos y Objetos

Programa1 ai Programa2 ai Programa3 ai

Programa1 Programa2 Programa3

BD Activa

Tablas de datos y Objetos

Base de Reglas ri(ai)

Programa2

BD Pasiva

Tablas de datos y Objetos

Programa1 ai Programa2 ai Programa3 ai

Programa1 Programa2 Programa3

BD Activa

Tablas de datos y Objetos

Base de Reglas ri(ai)

Programa2

Figura 2.1. La diferencia entre una BD pasiva y una BD activa.

El uso del sistema activo puede mejorar el proceso de modular las aplicaciones ya que muchos aspectos del comportamiento de las aplicaciones pueden expresarse como políticas “causa y efecto”. Después de definir estas políticas dentro de un UD (por ejemplo, una organización determinada), la transformación de estas políticas a reglas ECA será una tarea sencilla [Ceri et al., 2000]. De esta manera, el proceso de diseñar aplicaciones activas puede facilitarse hasta cierto punto. Aparte de esto, hay que tener en cuenta las consecuencias negativas que pueden aparecer por utilizar estos sistemas.

El primer problema en estos sistemas es cómo se puede garantizar que las aplicaciones activas correspondan completamente a las expectativas y necesidades del usuario. En las aplicaciones pasivas la responsabilidad de reforzar la integridad de los datos se realiza a través de ejecutar de manera planteada los procedimientos almacenados o por las interfaces de aplicación. Mientras, en las aplicaciones activas, esta responsabilidad se realiza de forma totalmente automática e independiente, a través de reglas que monitorizan el proceso de ejecutar acciones apropiadas. Desgraciadamente, estas reglas pueden actuar de una manera muy complicada y sus interacciones son a menudo escasamente visibles, sobre todo cuando el número de reglas especificadas es grande.

El segundo problema con el uso del sistema activo es el diseño de la aplicación, donde todavía existe poca experiencia con respecto a la representación de la semántica dentro de las reglas activas [Vaduva, 1998].