miércoles, 29 de julio de 2015



República Bolivariana de Venezuela
Ministerio del P.P.P. la Educación Universitaria
PNF en Informática
Instituto Universitario de Tecnología de los Llanos
Calabozo estado Guárico





 Bases de Datos
Avanzadas



                                                                                        Profesor:
Ing. Euling Changir



Participantes:
Rudy Solórzano
Rutmeli Solórzano








Bases de datos deductivas.

Bases de  datos deductivas.
Es un sistema de bases de datos que define reglas con las cuales se puede inferir información adicional a partir de los hechos almacenados en las bases de datos. Es decir, es un programa lógico que realiza un mapeo de relaciones base hacia hechos, y reglas que son usadas para definir nuevas relaciones en términos de las relaciones base y el procesamiento de consultas. Consta de las siguientes características:
  • Capacidad de expresar consultas por medio de reglas lógicas.
  • Permitir consultas recursivas y algoritmos eficientes para su evaluación.
  •   Contar con negaciones estratificadas.
  • Soportar objetos y conjuntos complejos.
  • Contar con métodos de optimización que garanticen la traducción de especificaciones dentro de planes eficientes de acceso.
  • Su lenguaje de definición de datos (DDL) es dataLog.
  • En lugar de relaciones entre entidades, aparecen los predicados; y en lugar de las tulpas aparecen los hechos.
  • Modelado semántico y uniformidad en la representación.


 Necesidad  de la inferencia  en  aplicaciones.
Inferencia es una deducción o conclusión a la que se llega a partir de algo que se sabe que es cierto o falso. Los mecanismos de inferencia se aplican sobre los hechos y las reglas en una base de datos deductiva en particular, para lograr obtener más información a partir de los datos explícitos de la base. En datalog no existen instrucciones de control, Su ejecución se basa en dos conceptos: la unificación y el backtracking.


   En la unificación cada objetivo determina un subconjunto de cláusulas susceptibles de ser ejecutadas. Cada una de ellas se denomina punto de elección. Datalog selecciona el primer punto de elección y sigue ejecutando el programa hasta determinar si el objetivo es verdadero o falso. En caso de ser falso entra en juego el backtracking, que consiste en deshacer todo lo ejecutado situando el programa en el mismo estado en el que estaba justo antes de llegar al punto de elección. Entonces se toma el siguiente punto de elección que estaba pendiente y se repite todo el proceso.



Funciones de los Mecanismos de Inferencia
  • Determinación de las acciones que tendrán lugar, el orden en que lo harán y como lo harán entre las diferentes partes del sistema experto. 
  • Determinar cómo y cuándo se procesaran las reglas, y dado el caso también la elección de que reglas deberán procesarse.
  • Control de dialogo con el usuario. La decisión sobre los mecanismos de procesamiento de reglas, es decir, qué estrategias de búsqueda se implementarán, es de vital importancia para la efectividad del sistema en su conjunto.



        La inferencia en las aplicaciones nacen con el afán de ofrecer una respuesta a las necesidades planteadas por los usuarios y por las aplicaciones avanzadas, en donde se necesitan herramientas semánticamente más ricas que las provistas por las bases de datos relacionales, aparecen recientes aplicaciones de los sistemas de bases de datos que consiste en ofrecer recursos para definir reglas deductivas y activas que permitan deducir, inferir u obtener información nueva a partir de los datos almacenados o sucesos condicionados. La finalidad de estas aplicaciones es incorporar a las bases de datos relacionales los beneficios de la inferencia lógica como instrumento para la formalización integrada de los aspectos estáticos y dinámicos del modelado relacional de la base de dato en las aplicaciones.

 El  lenguaje datalog  puro. 
Es el lenguaje utilizado para la manipulación de las bases de datos deductivas y es sintácticamente un subconjunto del lenguaje Prolog. Hay dos tipos de Datalog: con recursión y sin recursión. Datalog sin recursión tiene el mismo poder expresivo que el álgebra relacional, mientras que  datalog con recursión permite expresar consultas que no se pueden satisfacer en SQL2.

     Datalog es similar a prolog en su sintaxis, pero en su semántica operacional es diferente. La interpretación de una colección de predicados asigna cierto o falso a cada posible instancia de los predicados, donde los argumentos se escogen de un conjunto infinito de constantes. La interpretación se representa habitualmente por el conjunto de instancias verdaderas. Evalúa las consultas mediante la evaluación de cada regla y cada regla es evaluada examinando todos los hechos, ya sean hechos almacenados o hechos derivados, que unifican cada predicado en el cuerpo de una regla. Si alguna colección de hechos unifica con cada predicado en el cuerpo de una regla, se produce un nuevo hecho que corresponderá al encabezado de la regla.

Reglas en datalog
Un átomo es de la forma: p(t1,...,tn) Donde p es un símbolo de predicado y cada ti es una variable o una constante. Un literal es bien un átomo o un átomo negado.  Una regla o cláusula en tiene la forma: 
               cabeza ← cuerpo.
Donde cabeza es un átomo y cuerpo es una lista de literales que puede ser vacía; en este caso se habla de un hecho. Los hechos se escriben:
cabeza.
que equivale a escribir:
cabeza ← true.
El significado de una regla
                      P ← Q1, ..., Qn.
es: "Si Q1, Q2, ... y Qn son ciertos, entonces P es cierto". 

El modelo de datos de Datalog
  • No admite símbolos de función en los argumentos.
  • El significado de los programas sigue el punto de vista de teoría de modelos.
  • Una relación se representa por un predicado.

Ventajas de datalog
  • Almacenamiento de pocos datos.
  • Ofrecen reglas que permiten crear combinaciones de datos.
  • Soportan objetos y conjuntos complejos.
  • Ofrecen la capacidad de expresar consultas por medio de reglas lógicas.
  •  Permiten consultas recursivas y algoritmos eficientes para su evaluación.
  •   Cuentan con métodos de optimización que garantizan la traducción de especificaciones dentro de planes eficientes de acceso.
  •  Cuentan con negaciones estratificadas.


Inconvenientes de datalog
  • Poder encontrar criterios de interpretación para las reglas deductivas. Es complicado poder encontrar buenos criterios de evaluación para las reglas lógicas por lo que es muy difícil sacar todo su potencial.
  • Replantear correctamente, en un contexto deductivo, las convenciones habituales en una base de datos.
  • Desarrollar procedimientos eficaces de deducción.


  Facilidades  de  la  negación  estratificada. Del modelaje conceptual al diseño de una base de datos deductiva.
Contar con negación estratificada permite la capacidad de modelado natural de objetos del mundo real, encapsulando su estructura y comportamiento, que proporcionan los modelos orientados a objetos; la capacidad de derivación de nuevos conocimiento a partir de datos existentes, suministrando vínculos del mundo real en forma de reglas, que proporcionan los modelos de datos deductivos; y además, la capacidad de almacenamiento persistente que proporcionan los sistemas administradores de bases de datos

BASES DE DATOS ACTIVAS



BASES DE DATOS ACTIVAS COMO PROVEEDORAS DE MECANISMOS DE APOYO A: REGLAS  DE  INTEGRIDAD, MANTENIMIENTO  DE  DATOS  DERIVADOS,  "TRIGGERS", ALERTAS,  CONTROL  DE  VERSIONES,  ENTRE OTROS.

Base de datos activa
            Son aquellas bases de datos capaces de detectar situaciones de interés y de actuar en consecuencia. El mecanismo que se utiliza se parece a las reglas de producción utilizadas en el área de inteligencia artificial.   El poder especificar reglas con una serie de acciones que se ejecutan automáticamente cuando se producen ciertos eventos, es una de las mejoras de los sistemas de gestión de bases de datos que se consideran de gran importancia. Mediante estas reglas se puede hacer respetar reglas de integridad, generar datos derivados, controlar la seguridad o implementar reglas de negocio.

            El concepto de Bases de Datos Activas (SGBDA) se define en la capacidad del motor de manejar eventos al momento en que los datos sufren cambios como modificación, eliminación o actualización, es decir, cuando se producen ciertas condiciones ejecuta de forma automática ciertas acciones, además el motor de base de datos debe ser capaz de monitorizar y reaccionar ante eventos de manera oportuna y eficiente.

Estas características de reaccionar ante condiciones son definidas en el esquema de base de datos, de manera que, se elimina la responsabilidad de la aplicación que hace uso de la misma a gestionar tales eventos; la manera más común de definirlos en el esquema es a través de triggers, característica que maneja la gran mayoría de los motores de BD más conocidos en el mercado. La característica que se viene utilizando para especificar bases de datos activas es el modelo evento–condición–acción

Ejemplo.
 Tras la modificación de la tabla persona, se chequea su fecha de nacimiento y se procede a actualizar el campo edad, de todos los registros.

Sistema Gestor de Bases de Datos Activo (SGBDA)
 Es capaz de monitorizar y reaccionar ante eventos de manera oportuna y eficiente, caracterizándose por su reacción ante ciertas condiciones que ejecutan de forma automática las siguientes  acciones:

  • Mayor productividad, mejor mantenimiento, reutilización de código. 
  •  Posibilidad de optimización semántica. 
  •   Mayor independencia de datos. 
  •   Integración de distintos subsistemas. 
  •   Extensión del ámbito de aplicación.


Características de las bases de datos activas.

  • Un SGBDA no deja de ser un SGBD (Sistema de Gestión de Base de Datos). 
  • Un SGBDA tiene un modelo de reglas ECA (Evento-Condición-Acción). 
  • Un SGBDA debe soportar la gestión de reglas y la evolución de la base de reglas, esto significa, que el SGBD debe soportar la definición mediante reglas.


Características de ejecución de reglas ECA
  • Un SGBDA tiene un modelo de ejecución. 
  •  Un SGBDA debe ofrecer diferentes modelos de acoplamiento. 
  •  Un SGBDA debe implementar modos de consumo. 
  •  Un SGBDA debe gestionar la historia de eventos. 
  •  Un SGBDA debe implementar resolución de conflictos.

Características de aplicación y usabilidad.
  • Un SGBDA debería poseer un entorno de programación. 
  •  Un SGBD A debería ser ajustable.
 Ventajas
  • Mayor productividad. 
  •  Mejor mantenimiento. 
  •  Reutilización de código. 
  • Reducción del tráfico de mensajes. 
  • Posibilidad de optimización semántica. 
  •  Facilitar el acceso a la BD a usuarios finales.

Desventajas.
            Uno de los problemas que ha limitado el uso extensivo de reglas activas, a pesar de su potencial para simplificar el desarrollo de bases de datos y de aplicaciones, es el hecho de que no hay técnicas fáciles de usar para diseñar, escribir y verificar reglas. También es difícil garantizar la terminación de un conjunto de reglas bajo cualquier circunstancia. Para que las reglas activas alcancen todo su potencial, es necesario desarrollar herramientas para diseñar, depurar y monitorear reglas activas que puedan ayudar a los usuarios en el diseño y depuración de sus reglas.


Aplicación de las bases de datos activas.
Las aplicaciones clásicas de las reglas activas son internas a la base de datos: el gestor de reglas activas trabaja como un subsistema del SGBD implementando algunas de sus funciones. En este caso, los disparadores son generados por el implementando algunas de sus funciones. En este caso, los disparadores son generados por el sistema y no son visibles por parte de los usuarios. La característica típica de las aplicaciones internas es la posibilidad de dar una especificación declarativa de las funciones, a partir de la que derivar las reglas activas.

Bases de datos orientadas por objeto

Bases de datos orientadas por objeto.
Es una base de datos donde los elementos son objetos. Estos pueden ser bases de datos multimedia (videos, imágenes y sonidos), donde la herencia permita una mejor representación de la información, estas bases de datos tienen una identidad de ser un todo. El objetivo de una base de datos orientada a objetos son los mismos que los de las bases de datos tradicionales, pero con la ventaja de representar las modelos de datos con un marco mucho más eficiente, manteniendo la integridad y relación entre ellos.

Primera y segunda generación de bdoo.  omg  y  corba.
La primera generación de Sistemas Gestores de Bases de Datos Orientadas a Objetos (SGBDOO) data de 1986 cuando la compañia Graphael lanza G-Base, en 1987 Servio Corp introdujo GemStone, luego en 1988 Ontologic lanza su sistema VBase y la empresa Simbolics lanza Statice. Todos ellos con la finalidad de apoyar lenguajes persistentes como los usados para la inteligencia artificial.

La segunda generación se caracterizó por emplear una arquitectura cliente-servidor, y puede considerarse a partir del lanzamiento de Ontos en 1989, así como de Objet Design, Objectivity y de Versant Objet Technology,

Experiencias,  promesas,  realidad  Y  futuro
Las bases de datos orientadas a objetos fueron creadas para tener una interfaz limpia con un lenguaje de programación orientado a objetos, donde la aplicación requiere la flexibilidad  de una base de datos relacional que no tiene un rendimiento adecuado. Las BDOO pueden ser 100 veces más rápidas para ciertos tipos de aplicaciones. La vía orientada a objetos requiere una larga fase inicial de análisis, la mayoría de los proyectos de desarrollo de software son más cortos y requieren menos personas. La cantidad de código es significativamente menor.


             Los sistemas de bases de datos relacionales ofrecen lenguajes de acceso no basados en procedimientos, es decir declarativos (por ejemplo: select * from clientes; indica específicamente qué, de dónde y cómo se obtienen los datos ). En cambio los sistemas orientados a objetos son principalmente basados en procedimientos y no declarativos, lo que requieren menos optimizaciones pero más eficiente para consultas de objetos complejos.


 Estándares
  • Carencia de un modelo de datos universal.
  • No hay ningún modelo de datos que esté universalmente aceptado para los SGBDOO y la mayoría de los modelos carecen una base teórica.
  • Carencia de experiencia. Todavía no se dispone del nivel de experiencia del que se dispone para los sistemas tradicionales.
  •  Carencia de estándares. No Existe una carencia de estándares general para los SGBDOO.

Bases de datos temporales

Bases  de  datos  temporales
Es un sistema de gestión de base de datos (DBMS) el cual implementa y trata con especial énfasis aspectos temporales, teniendo un modelo de datos temporal y una versión temporal del lenguaje de consulta estructurado, (SQL). Los aspectos temporales normalmente incluyen tiempo de validez y tiempo de transacción, la combinación de estos dos atributos forman un dato bitemporal.
  • Tiempo de validez indica el período en el cual un hecho es verdad en el mundo real.
  • Tiempo de transacción indica el período en el cual un hecho está guardado en la base de datos.
  • Dato bitemporal es la combinación del tiempo de validez y el tiempo transaccional.


Tipos de bases de datos temporales


  • Bases de datos temporales de tiempo transaccional: Registran el tiempo de acuerdo al momento en el que se almacena un hecho.

  • Bases de datos temporales de tiempo valido: Registran el tiempo en el cual un hecho ocurrió en la realidad, este sistema permite realizar correcciones sobre los datos registrados, en dicho caso solo se almacena la última versión de cada estado.

  • Bases de datos Bitemporales: Cada estado se puede modificar para actualizar el conocimiento de la realidad pasada, presente o futura, pero estas modificaciones se actualizan generando nuevas versiones de los mismos estados.

En las bases de datos temporales cada hecho registrado tiene asociada una marca de tiempo: válido  y de transacción.
  • ·   Tiempo válido: Conjunto de intervalos de tiempo durante los que el hecho es verdadero.
  • Tiempo de transacción: Intervalo de tiempo durante el cual ese hecho es cierto en el sistema de base de datos.


Tipos de Datos en una Base de Datos Temporal.

Existen tres tipos de datos, que son las más comunes: temporal, estático, instantáneo. 



  • Dato Temporal: Es la unión finita de intervalos, este tipo de dato es la base para la construcción de una base de datos temporal.

  • Dato Estático: Es definido como una constante sobre todo el universo del tiempo, este tipo de dato es definido como eterno, en contraste el tipo de dato temporal es válido para un periodo o intervalo especifico de tiempo.

 
  • Dato Instantáneo: Un valor de tipo de dato instantáneo es solo valido para el instante actual.