<ul><li>BASE DE DATOS </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Sistemas Administradores de Base de Datos ...
<ul><li>tales como: manejo de usuarios, seguridad, atomicidad e independencia física y lógica de los datos, entre otros.  ...
<ul><li>adoptando y mejorando el concepto de clase pero su desarrollo se hace independiente de los DBMSs.  </li></ul><ul><...
<ul><li>Esquema de un DBMS </li></ul>
<ul><li>Lenguajes del DBMS </li></ul><ul><li>En la estructura básica de un Sistema Manejador de Base de Datos se enuncian ...
<ul><li>Usuarios de un Sistema Manejador de Base de Datos </li></ul><ul><li>  </li></ul><ul><li>Podemos definir a los usua...
<ul><li>Modelo racional (MR):  </li></ul><ul><li>  </li></ul><ul><li>Modelo de datos en que los datos están organizados en...
<ul><li>Basados en objetos:  los dos más extendidos son el modelo entidad-relación y el orientado a objetos. El modelo ent...
<ul><li>Algebra Relacional :  </li></ul><ul><li>Colecciones de normas y operadores que permiten manipular relaciones (tabl...
<ul><li>Archivos de textos (secuenciales):  </li></ul><ul><li>Un archivo de texto es un tipo estándar; como se ha comentad...
<ul><li>Operaciones con Archivos Indexados:  </li></ul><ul><li>  </li></ul><ul><li>Crear las zonas de y datos como archivo...
Diseño de una base de datos relacional
 
<ul><li>Base de Datos (Data Base):   </li></ul><ul><li>  </li></ul><ul><li>Un archivo compuesto de registros, cada uno los...
<ul><li>Inconsistencia: </li></ul><ul><li>Consiste en que no todas las copias redundantes contienen la misma información. ...
<ul><li>Atributo: </li></ul><ul><li>  </li></ul><ul><li>En un registro de base de datos, es el nombre o estructura de un c...
<ul><li>Lenguaje de manejo de datos:  </li></ul><ul><li>  </li></ul><ul><li>Una vez creados los esquemas de la base de dat...
<ul><li>Lenguaje de definición de datos  </li></ul><ul><li>  </li></ul><ul><li>Una vez finalizado el diseño de una base de...
<ul><li>Lenguaje de definición de datos  </li></ul><ul><li>  </li></ul><ul><li>Una vez finalizado el diseño de una base de...
<ul><li>Registro: </li></ul><ul><li>  </li></ul><ul><li>Es una colección de campos (elementos), cada uno con su propio nom...
<ul><li>Niveles de la arquitectura de la base de datos </li></ul><ul><li>  </li></ul>
<ul><li>Nivel Interno: </li></ul><ul><li>  </li></ul><ul><li>Es la representación del nivel inferior de una base de datos....
 
<ul><li>Componentes de un Sistema de base de datos: </li></ul><ul><li>  </li></ul><ul><li>Los sistemas de gestión de bases...
<ul><li>Lenguajes de cuarta generación </li></ul><ul><li>  </li></ul><ul><li>No existe consenso sobre lo que es un lenguaj...
<ul><li>Tendencias futuras.  </li></ul><ul><li>  </li></ul><ul><li>En el futuro la mayoría de las organizaciones cambiarán...
<ul><li>  </li></ul><ul><li>Los ODBMS proporcionan los costes de desarrollo más bajos y el mejor rendimiento cuando se usa...
<ul><li>Identificación de objetos, estructuras y constructores  </li></ul><ul><li>  </li></ul><ul><li>Los objetos de las b...
<ul><li>Persistencia por clases  El enfoque más sencillo, pero el menos conveniente, consiste en declarar que una clase es...
<ul><li>Herencia:  Es la  propiedad  que permite a los objetos crearse a partir de otros objetos. Cada subclase comparte c...
<ul><li>Tipos estructurados </li></ul><ul><li>  </li></ul><ul><li>Los tipos estructurados permiten la representación direc...
<ul><li>¿Qué es una BDOO? </li></ul><ul><li>  </li></ul><ul><li>A finales de los 80's aparecieron las primeras BDOO, es un...
<ul><li>* Gestión del almacenamiento secundario </li></ul><ul><li>  </li></ul><ul><li>Es soportada por un conjunto de meca...
<ul><li>Lenguajes de programación persistentes </li></ul><ul><li>  </li></ul><ul><li>Los lenguajes de las bases de datos t...
<ul><li>BASE DE DATOS DEDUCTIVAS – INTRODUCCIÒN  </li></ul><ul><li>  </li></ul><ul><li>Un sistema de bases de datos que te...
<ul><li>FUNDAMENTOS DE LA PROGRAMACION LOGICA </li></ul><ul><li>  </li></ul><ul><li>La mayoría de los Lenguajes de Program...
<ul><li>Programación en Datalog </li></ul><ul><li>  </li></ul><ul><li>Datalog (Database Logic)  es un lenguaje lógico que ...
<ul><li>Próxima Generación de Bases de Datos y Sistemas Gestores de Bases de Datos </li></ul><ul><li>  </li></ul><ul><li>B...
 
<ul><li>Elementos Constitutivos </li></ul><ul><li>  </li></ul><ul><li>Las Bases de Datos Activas manejan la vigilancia de ...
<ul><li>Dificultades de Bases de datos multimedia  </li></ul><ul><li>  </li></ul><ul><li>La dificultad de hacer de estos d...
<ul><li>Base de Datos Espacio- Temporales </li></ul><ul><li>  </li></ul><ul><li>Los sistemas de bases de datos espacio-tem...
<ul><li>Bases de datos espacio-temporales </li></ul><ul><li>  </li></ul><ul><li>Los sistemas de Bases de Datos Espacio- Te...
Upcoming SlideShare
Loading in...5
×

Base de datos

4,040

Published on

es una guía donde podremos descubrir mucha cosas y todo lo relacionado a base de datos y como trabajarlas y solventar las inquietudes que tengamos referentes a ellas.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,040
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
99
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Base de datos

  1. 2. <ul><li>BASE DE DATOS </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Sistemas Administradores de Base de Datos </li></ul><ul><li>  </li></ul><ul><li>Es un software que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos. Acepta pedidos de datos de un programa de aplicación y le ordena al sistema operativo transferir los datos apropiados cuando se usa un sistema de gestión de base de datos, los sistemas de información pueden ser cambiados más fácilmente a medida que cambien los requerimientos de la organización. </li></ul><ul><li>Evolución </li></ul><ul><li>Inicialmente, en los años 40s, los Sistemas de Archivos generados a través de lenguajes de programación no propietarios como Cobol y Fortran (vigentes en la actualidad), permiten almacenar los datos a través de archivos planos con funciones básicas de lectura y escritura sobre ellos. En 1964, se conciben los primeros Gestores de Base de Datos (DBMS: Database Management System), por medio de los cuales se pretende dar un viraje a los Sistemas de Archivos, los cuales se limitan a la estructuración del almacenamiento físico de los datos. Con los DBMS se crea el concepto de Administración de los datos, por medio de actividades integradas que permiten verlos físicamente en un solo almacenamiento pero lógicamente se manipulan a través de esquemas compuesto por estructuras donde se establecen vínculos de integridad, métodos de acceso y organización física sobre los datos, permitiendo así obtener valores agregados de utilización </li></ul>
  2. 3. <ul><li>tales como: manejo de usuarios, seguridad, atomicidad e independencia física y lógica de los datos, entre otros. </li></ul><ul><li>El primer gestor de bases de datos (DBMS) comercial, IDS: Integrated Data Store, se crea bajo el concepto del Modelo de Datos de Red (Bachgman, 1965); luego se desarrolla el IMS: Information Management System, sobre el concepto del Modelo de Datos Jerárquico. Estos DBMSs eran accesados normalmente por lenguajes de programación como Cobol usando interfaces de bajo nivel haciendo que las tareas de creación de aplicaciones y mantenimiento de los datos fuesen controlables, pero aún complejas. </li></ul><ul><li>A medida que evolucionaban los DBMS, los lenguajes de programación también lo hacían. En 1967 surge el primer lenguaje de programación orientado a objetos, Simula, el cual fue propuesto para simulación de actividades. En este los procedimientos podían ser asociados a un tipo para representar el comportamiento de una instancia, introduciendo así el concepto de Clase. Simula, soporta paralelismo permitiendo muchas entidades interactivas en una simulación. Además comparte objetos acoplando datos y procedimientos. </li></ul><ul><li>  </li></ul><ul><li>Luego se genera una nueva noción, donde las bases de datos deben almacenar por medio de una estructura tabular llamada relación o tabla (Codd, 1970), compuesta por filas y columnas, accesando dichas relaciones a través de un lenguaje de alto nivel no procedural (declarativo). De esta forma en los años 80s surgen varios productores de DBMS Relacionales (RDBMS) como Oracle, Informix, Ingres y DB2, además de otros lenguajes orientados a objetos como el C++, Java (antes el Oak), Eiffel, y Smalltalk </li></ul>
  3. 4. <ul><li>adoptando y mejorando el concepto de clase pero su desarrollo se hace independiente de los DBMSs. </li></ul><ul><li>Comenzando los años 80’s ya se siente la necesidad de que los DBMS actuales manipulen objetos complejos y estructuras como las usadas en sistemas CAD y CASE, entre otras. A partir de esto se da inicio a dos grandes tendencias: los ORDBMS (Object Relational Database Management System) los cuales se proyectan como una extensión de los RDBMS hacia el paradigma OO, y los OODBMS (Object Oriented Database Management System) estarían disponibles para almacenar y manipular las clases, los objetos, la asociación entre ellos y sus métodos. Así, finalizando los años 80s se crean los OODBMSs por medio de productores como O2, ObjectDesign y Objectivity, entre otros. Pero realmente se puede decir que estos no se hicieron tan comerciales como los existentes RDBMS ya que el concepto de Orientación a Objetos se seguía manejando muy a nivel del lenguaje de programación, sin que se trabajaran estructuras de almacenamiento Orientadas a Objetos dependientes de estos. Así, en 1991 surge la ODMG (Object Database Management Group) el cual estandariza los OODBMSs a partir del ODMG-93 y luego en 1992 el comité ANSI X3H2 inicia un trabajo en SQL3, del cual surgen los DBMS objeto relacional ORDBMS. Este trabajo fue programado para finalizarse en 1995, pero aún se sigue trabajando en este con un tiempo límite de terminación, en el año 1999. </li></ul><ul><li>  </li></ul>
  4. 5. <ul><li>Esquema de un DBMS </li></ul>
  5. 6. <ul><li>Lenguajes del DBMS </li></ul><ul><li>En la estructura básica de un Sistema Manejador de Base de Datos se enuncian dos lenguajes que permiten trabajar sobre la base de datos.  Estos lenguajes estándar son: </li></ul><ul><li>DDL (Data Definition language) : Lenguaje de Definición de Datos.  Por medio de este el DBMS identifica las descripciones de los elementos de los esquemas y almacena la descripción del esquema en el catálogo del DBMS. Por medio de este el DBMS especifica el esquema conceptual e interno (Base de datos Almacenada). </li></ul><ul><li>  </li></ul><ul><li>SDL (Store Definition language) : Lenguaje de definición de almacenamiento.  Es utilizado por el DBMS para especificar el esquema interno que corresponde a la Base de Datos Almacenada. </li></ul><ul><li>VDL (View Definition language) : Lenguaje de Definición de Vistas.  Es utilizado por el DBMS para especificar las vistas del usuario y sus correspondencias con el esquema conceptual. </li></ul><ul><li>En las Bases de Datos Relacionales, el SQL, representa una combinación de los anteriores. </li></ul><ul><li>  </li></ul><ul><li>DML (Data Manipulation language) : Lenguaje de Manipulación de Datos.  Permite la manipulación de las operaciones de Inserción, Eliminación y Modificación. </li></ul><ul><li>  </li></ul><ul><li>Tipos de DML's : </li></ul><ul><li>De alto Nivel o No por procedimientos: SQL. </li></ul><ul><li>De bajo Nivel o por procedimientos. </li></ul>
  6. 7. <ul><li>Usuarios de un Sistema Manejador de Base de Datos </li></ul><ul><li>  </li></ul><ul><li>Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de base de datos desde que este se diseña, elabora, termina y se usa. </li></ul><ul><li>  </li></ul><ul><li>Los usuarios de una base de datos pueden clasificarse como: </li></ul><ul><li>  </li></ul><ul><li>Programadores de aplicaciones: Los profesionales en computación que interactúan con el sistema por medio de llamadas en DML (Lenguaje de Manipulación de Datos), las cuales están incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, Pascal, C, etc.) </li></ul><ul><li>  </li></ul><ul><li>Usuarios sofisticados: Los usuarios sofisticados interactúan con el sistema sin escribir programas. En cambio escriben sus preguntas en un lenguaje de consultas de base de datos. </li></ul><ul><li>  </li></ul><ul><li>Usuarios especializados: Algunos usuarios sofisticados escriben aplicaciones de base de datos especializadas que no encajan en el marco tradicional de procesamiento de datos. </li></ul><ul><li>  </li></ul><ul><li>Usuarios ingenuos: Los usuarios no sofisticados interactúan con el sistema invocando a uno de los programas de aplicación permanentes que se han escrito anteriormente en el sistema de base de datos, podemos mencionar al usuario ingenuo como el usuario final que utiliza el sistema de base de datos sin saber nada del diseño interno del mismo por ejemplo: un cajero. </li></ul><ul><li>Transacciones: </li></ul><ul><li>  </li></ul><ul><li>Una actividad independiente de un sistema informático, como la introducción de un pedido de un cliente o actualización de un elemento del inventario. Están usualmente asociadas con sistema de gestión de base de datos de introducción de pedido y otro sistema interactivo. </li></ul>
  7. 8. <ul><li>Modelo racional (MR): </li></ul><ul><li>  </li></ul><ul><li>Modelo de datos en que los datos están organizados en relaciones (tablas). Este es el modelo implementado en la mayoría de los sistemas modernos de gestión de base de datos. </li></ul><ul><li>  </li></ul><ul><li>Modelo en red </li></ul><ul><li>  </li></ul><ul><li>Utiliza la estructura de red o de grafo, que permite definir entre todos los nodos relaciones. Mediante el establecimiento de apuntadores entre nodos se puede relacionar cualquier unidad de datos con cualquiera de las otras. </li></ul><ul><li>  </li></ul><ul><li>Modelos Jerárquicos: </li></ul><ul><li>  </li></ul><ul><li>Modelo utilizado en la gestión de base de datos en el que cada registro es el <<padre>> de uno o más registros hijo, que pueden o no tener la misma estructura que el padre; un registro no puede tener más de un padre conceptualmente, por tanto, un modelo jerárquico se describe normalmente como un árbol. Los registros individuales no tienen que estar necesariamente en el mismo archivo. </li></ul><ul><li>  </li></ul><ul><li>Modelo de datos: </li></ul><ul><li>  </li></ul><ul><li>Una colección de tipos de objeto, operadores y reglas de integridad relacionales que forman la entidad abstracta soportada por un sistema de gestión de base de datos (SGBD). Así, es posible hablar de SGBD relacional, de un SGBD de red, ect., dependiendo del tipo de modelo de datos del SGBD soporte. En general un SGBD soporta solo un modelo de datos tratándose de una restricción práctica más que teórica </li></ul>
  8. 9. <ul><li>Basados en objetos: los dos más extendidos son el modelo entidad-relación y el orientado a objetos. El modelo entidad-relación (E-R) se basa en una percepción del mundo compuesta por objetos, llamados entidades, y relaciones entre ellos. Las entidades se diferencian unas de otras a través de atributos. El orientado a objetos también se basa en objetos, los cuales contienen valores y métodos, entendidos como órdenes que actúan sobre los valores, en niveles de anidamiento. Los objetos se agrupan en clases, relacionándose mediante el envío de mensajes. Algunos autores definen estos modelos como &quot;modelos semánticos&quot; </li></ul><ul><li>Basados en registros: el más extendido es el relacional, mientras que los otros dos existentes, jerárquico y de red, se encuentran en retroceso. Estos modelos se usan para especificar la estructura lógica global de la base de datos, estructurada en registros de formato fijo de varios tipos. El modelo relacional representa los datos y sus relaciones mediante tablas bidimensionales, que contienen datos tomados de los dominios correspondientes. El modelo de red está formado por colecciones de registros, relacionados mediante punteros o ligas en grafos arbitrarios. El modelo jerárquico es similar al de red, pero los registros se organizan como colecciones de árboles. Algunos autores definen estos modelos como &quot;modelos de datos clásicos&quot;. </li></ul>
  9. 10. <ul><li>Algebra Relacional : </li></ul><ul><li>Colecciones de normas y operadores que permiten manipular relaciones (tabla). El algebra relacional se suele caracterizar mediante los siguientes operadores: SELECT, PROJECT, PRODUCT, UNION, INTERSECT, DIFFERENCE, JOIN (o INNER JOIN), y DIVIDE. En una base de datos relacional el algebra relacional se utiliza para desarrollar procedimientos que permitan construir nuevas relaciones basándose en las relaciones existentes. </li></ul><ul><li>  </li></ul><ul><li>Archivo: </li></ul><ul><li>Colección de información completa y con un nombre distintivo, como, por ejemplo, un programa, un conjunto de datos utilizados por un programa o un documento por un usuario. </li></ul><ul><li>  </li></ul><ul><li>Clasificación de archivos </li></ul><ul><li>  </li></ul><ul><li>Los archivos se clasifican de la siguiente manera: (Por su organización, por su contenido y por el medio de acceso) </li></ul><ul><li>  </li></ul><ul><li>Por su organización: </li></ul><ul><li>Se define “la forma en que los registros se disponen sobre el soporte de almacenamiento, o como la forma en que se estructuran los datos de un archivo” </li></ul>
  10. 11. <ul><li>Archivos de textos (secuenciales): </li></ul><ul><li>Un archivo de texto es un tipo estándar; como se ha comentado anteriormente. Los archivos de textos están constituidos por elementos que son caracteres de pascal (pertenecen al código ACSSI); Es una colección de registros almacenados consecutivamente sobre el soporte externo de tal modo que para acceder a un registro n dado, es obligatorio pasar por todos los n-1 artículos. </li></ul><ul><li>  </li></ul><ul><li>Archivos directos: </li></ul><ul><li>Se dice que es directo cuando cualquier registro es directamente accesible mediante la especificación de la posición del registro con relación de los datos de un archivo respecto al origen del fichero. Los archivos aleatorios o directos tienen una gran rapidez para el acceso comparados con los secuénciales; los registros son fáciles de referenciar. </li></ul><ul><li>  </li></ul><ul><li>Archivos indexados: </li></ul><ul><li>  </li></ul><ul><li>Está suplementado por una o más registros, los registros pueden ser archivos independientes aun que se carga al comenzar en la memoria del ordenador en ambos casos, formados por registros por los campos llave o clave y la posición del registro. El almacenamiento de los índices en la memoria permite encontrar los registros más rápidamente que cuando se trabaja en disco. </li></ul><ul><li>  </li></ul>
  11. 12. <ul><li>Operaciones con Archivos Indexados: </li></ul><ul><li>  </li></ul><ul><li>Crear las zonas de y datos como archivos vacíos o originales </li></ul><ul><li>Cargar el archivo en memoria antes de utilizarla </li></ul><ul><li>El archivo desde memoria después de utilizarlo </li></ul><ul><li>Añadir registros al archivo de datos </li></ul><ul><li>Borrar registros del archivo de datos </li></ul><ul><li>Actualizar registros en el archivo de datos </li></ul><ul><li>  </li></ul><ul><li>Por su contenido: se clasifican de la siguiente manera: texto y binario. </li></ul><ul><li>TEXTO: Consta de una serie de líneas que contiene palabras, símbolos, códigos, frases, y separadas por una marca fin de línea. </li></ul><ul><li>BINARIO: son registros formados por una sucesión del mismo tipo, ya sean simples o estructurados. </li></ul><ul><li>  </li></ul><ul><li>Base de Datos Relacional : </li></ul><ul><li>  </li></ul><ul><li>Base de datos o SGBD que almacena la información en tabla (filas y columnas de datos) y realiza búsquedas utilizando los datos contenidos en la columna especificada de una tabla para encontrar datos adicionales en otra tabla. En una base de datos relacional, las filas de una tabla representan registros (colecciones de informaciones sobre elementos diferenciados) y las columnas representan campos (atributos particulares de un registro). En las relaciones de búsquedas, una base de datos relacional compara la información de un campo de una tabla de un campo correspondiente de otra tabla para producir una tercera tabla que combina los datos solicitados de ambas tablas. </li></ul><ul><li>Por ejemplo, si una tabla contiene los campos ID-empleados, apellido, nombre y fecha de contratación y otra contiene los campos, departamentos, ID-empleados y salario, una base de datos relacional puede comparar los campos ID-empleados de las dos tablas para obtener informaciones tal como los nombres de todos los empleados que ganan un cierto salario o los departamentos de todos los departamentos contratados después de cierta fecha. En otras palabras, una base de datos relacional utiliza los valores coincidentes de dos tablas para relacionar la información de una con la otra. </li></ul><ul><li>  </li></ul>
  12. 13. Diseño de una base de datos relacional
  13. 15. <ul><li>Base de Datos (Data Base): </li></ul><ul><li>  </li></ul><ul><li>Un archivo compuesto de registros, cada uno los cuales contienen una serie de campos junto con una serie de operaciones para realizar búsquedas, órdenes, recombinaciones y otras operaciones. </li></ul><ul><li>  </li></ul><ul><li>Multitarea: </li></ul><ul><li>Método de procesamiento soportado por la mayoría de los sistemas operativos actuales en el que una computadora trabaja en varias tareas (es decir, separa <<en partes>> el trabajo) de forma aparentemente de forma simultánea por medio de la división del tiempo del procesador entre las diferentes tareas. </li></ul><ul><li>Multiusuario: </li></ul><ul><li>  </li></ul><ul><li>Cualquier sistema informático que puede ser utilizado por más de una persona. Aunque una microcomputadora compartida por varias personas pueda considerarse como un sistema multiusuario. </li></ul><ul><li>Multiproceso: </li></ul><ul><li>Modo de operación en el que dos o más unidades de procesamiento conectado y aparentemente iguales llevan a cabo uno o más procesos (programas o conjuntos de instrucciones) en tandem. En el multiprocesamiento, cada unidad de procesamiento trabaja sobre un conjunto de instrucciones distintas o en parte distintas del mismo proceso. </li></ul><ul><li>  </li></ul><ul><li>Integridad referencial: </li></ul><ul><li>Es un sistema de reglas que utilizan la mayoría de las bases de datos relacionales para asegurarse que los registros de tablas relacionadas son válidos y que no se borren o cambien datos relacionados de forma accidental produciendo errores de integridad. </li></ul><ul><li>  </li></ul><ul><li>Redundancia: </li></ul><ul><li>  </li></ul><ul><li>Utilización de uno o más servidores en un sitio Web para realizar tareas idénticas. Si uno de los servidores falla, otro servidor puede asumir las tareas que estuvieran encomendadas. La redundancia garantiza que el sitio Web continué funcionando si uno de los servidores deja de hacerlo. </li></ul>
  14. 16. <ul><li>Inconsistencia: </li></ul><ul><li>Consiste en que no todas las copias redundantes contienen la misma información. Así, si existen diferentes modos de obtener la misma información, y esas formas pueden conducir a datos almacenados en distintos sitios. El problema surge al modificar esa información, si lo sólo cambiamos esos valores en algunos de los lugares en que se guardan, las consultas que hagamos más tarde podrán dar como resultado respuestas inconsistentes (es decir, diferentes). Puede darse el caso de que dos aplicaciones diferentes proporcionen resultados distintos para el mismo dato. </li></ul><ul><li>  </li></ul><ul><li>Tupla: </li></ul><ul><li>En una tabla (relación) de base de datos, un conjunto de valores relacionados, uno para cada atributo (columna) una tupla se almacena como una fila de sistema de gestión de base de datos relacional. Es el análogo de un registro de un archivo no relacional. </li></ul><ul><li>  </li></ul><ul><li>Tabla: </li></ul><ul><li>Es una estructura de datos caracterizada por filas y columnas en donde los datos ocupan real o potencialmente cada celda formada por una intersección entre una fila y una columna. </li></ul><ul><li>  </li></ul><ul><li>Entidad: </li></ul><ul><li>En el diseño asistido por computadora y el diseño orientado a objetos, un elemento que puede tratarse como una unidad y, a menudo, como un miembro de una categoría o un tipo determinado. </li></ul><ul><li>Campo: </li></ul><ul><li>Posición en un registro en la que se almacena un tipo de dato concreto por ejemplo, registro-empleado, pueden contener campos para almacenar apellido, nombre, dirección, ciudad, provincia, código postal, fecha de contratación, cargo actual, salario actual y departamento, entre otros. Los campos individuales se caracterizan por su longitud máxima y por el tipo de datos (por ejemplo, alfabético, numérico o moneda) que se pueden almacenar en ella. </li></ul><ul><li>  </li></ul>
  15. 17. <ul><li>Atributo: </li></ul><ul><li>  </li></ul><ul><li>En un registro de base de datos, es el nombre o estructura de un campo por ejemplo, los archivos apellidos, nombre y teléfono serian los atributos de cada uno de los registros de una base de datos listatelefono. El tamaño de un campo o el tipo de información que contiene, también seria atributo de un registro de base de datos. </li></ul><ul><li>  </li></ul><ul><li>Ventajas de Base de Datos </li></ul><ul><li>Control de redundancia de datos </li></ul><ul><li>Coherencia y Compartición de datos </li></ul><ul><li>Mayor integración de datos </li></ul><ul><li>Mayor seguridad </li></ul><ul><li>Mejor accesibilidad de datos y capacidad de respuesta. </li></ul><ul><li>Productividad mejorada </li></ul><ul><li>Mejora de seguridad y recuperación </li></ul><ul><li>  </li></ul><ul><li>Desventajas de Base de Datos </li></ul><ul><li>Complejidad </li></ul><ul><li>Tamaño </li></ul><ul><li>Coste de SGBD </li></ul><ul><li>Coste de hardware adicional </li></ul><ul><li>Costes de conversión de hardware </li></ul><ul><li>Prestaciones </li></ul><ul><li>Mayor impacto a fallos </li></ul><ul><li>  Bases de datos Inteligentes : </li></ul><ul><li>Las bases de datos inteligentes representan la evolución e integración de las bases de datos tradicionales, las técnicas avanzadas para el almacenamiento y recuperación de la información, el enfoque orientado a objetos, la noción de hypermedia y los avances logrados en la inteligencia artificial. </li></ul><ul><li>  </li></ul><ul><li>Su principal objetivo es permitir al usuario manipular el contenido de su base de datos de manera transparente, ofreciéndole herramientas para extraer conocimientos a partir del análisis del contenido de sus datos, interrelacionar información proveniente de diversas fuentes usando medios diversos (texto, imágenes, sonidos, etc.), usar conocimientos y hacer inferencias para facilitar la recuperación y visualización de la información . </li></ul>
  16. 18. <ul><li>Lenguaje de manejo de datos: </li></ul><ul><li>  </li></ul><ul><li>Una vez creados los esquemas de la base de datos, los usuarios necesitan un lenguaje que les permita manipular los datos de la base de datos: realizar consultas, inserciones, eliminaciones y modificaciones. Este lenguaje es el que se denomina lenguaje de manejo de datos (LMD). </li></ul><ul><li>  </li></ul><ul><li>Hay dos tipos de LMD: los procedurales y los no procedurales. Con un LMD procedural el usuario (normalmente será un programador) especifica qué datos se necesitan y cómo hay que obtenerlos. Esto quiere decir que el usuario debe especificar todas las operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la información requerida. Estos lenguajes acceden a un registro, lo procesan y basándose en los resultados obtenidos, acceden a otro registro, que también deben procesar. Así se va accediendo a registros y se van procesando hasta que se obtienen los datos deseados. Las sentencias de un LMD procedural deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras (bucles, condicionales, etc.) para obtener y procesar cada registro individual. A este lenguaje se le denomina lenguaje anfitrión . Las bases de datos jerárquicas y de red utilizan LMD procedurales. </li></ul><ul><li>Un LMD no procedural se puede utilizar de manera independiente para especificar operaciones complejas sobre la base de datos de forma concisa. En muchos SGBD se pueden introducir interactivamente instrucciones del LMD desde un terminal o bien embeberlas en un lenguaje de programación de alto nivel. Los LMD no procedurales permiten especificar los datos a obtener en una consulta o los datos que se deben actualizar, mediante una sola y sencilla sentencia. El usuario o programador especifica qué datos quiere obtener sin decir cómo se debe acceder a ellos. El SGBD traduce las sentencias del LMD en uno o varios procedimientos que manipulan los conjuntos de registros necesarios. Esto libera al usuario de tener que conocer cuál es la estructura física de los datos y qué algoritmos se deben utilizar para acceder a ellos. A los LMD no procedurales también se les denomina declarativos . Las bases de datos relacionales utilizan LMD no procedurales, como SQL (Structured Query Language) o QBE (Query-By-Example). Los lenguajes no procedurales son más fáciles de aprender y de usar que los procedurales, y el usuario debe realizar menos trabajo, siendo el SGBD quien hace la mayor parte. </li></ul><ul><li>La parte de los LMD no procedurales que realiza la obtención de datos es lo que se denomina un lenguaje de consultas . En general, las órdenes tanto de obtención como de actualización de datos de un LMD no procedural se pueden utilizar interactivamente, por lo que al conjunto completo de sentencias del LMD se le denomina lenguaje de consultas, aunque es técnicamente incorrecto. </li></ul>
  17. 19. <ul><li>Lenguaje de definición de datos </li></ul><ul><li>  </li></ul><ul><li>Una vez finalizado el diseño de una base de datos y escogido un SGBD para su implementación, el primer paso consiste en especificar el esquema conceptual y el esquema interno de la base de datos, y la correspondencia entre ambos. En muchos SGBD no se mantiene una separación estricta de niveles, por lo que el administrador de la base de datos y los diseñadores utilizan el mismo lenguaje para definir ambos esquemas, es el lenguaje de definición de datos (LDD). El SGBD posee un compilador de LDD cuya función consiste en procesar las sentencias del lenguaje para identificar las descripciones de los distintos elementos de los esquemas y almacenar la descripción del esquema en el catálogo o diccionario de datos. Se dice que el diccionario contiene metadatos : describe los objetos de la base de datos. </li></ul><ul><li>Cuando en un SGBD hay una clara separación entre los niveles conceptual e interno, el LDD sólo sirve para especificar el esquema conceptual. Para especificar el esquema interno se utiliza un lenguaje de definición de almacenamiento (LDA). Las correspondencias entre ambos esquemas se pueden especificar en cualquiera de los dos lenguajes. Para tener una verdadera arquitectura de tres niveles sería necesario disponer de un tercer lenguaje, el lenguaje de definición de vistas (LDV), que se utilizaría para especificar las vistas de los usuarios y su correspondencia con el esquema conceptual. </li></ul><ul><li>Tipos de usuarios: </li></ul><ul><li>• Usuario normal: consulta información. </li></ul><ul><li>• Programador de aplicaciones: consultas más complejas (elaborar nómina de la empresa, etc). Hace programas que acceden a la BD. </li></ul><ul><li>• Administrador de la BD. </li></ul><ul><li>BD compuesta de: datos + hardware + software (SGBD) </li></ul><ul><li>  </li></ul><ul><li>Lenguaje de definición de almacenamiento </li></ul><ul><li>Este lenguaje permite especificar características físicas de la base de datos (volúmenes y archivos donde van a ser almacenados los datos, etc.). En otras palabras especifica el esquema interno de la base de datos. </li></ul><ul><li>  </li></ul><ul><li>Lenguaje de Definición de Vistas </li></ul><ul><li>Es utilizado por el SGBD para especificar las vistas del usuario y sus correspondencias con el esquema conceptual. </li></ul>
  18. 20. <ul><li>Lenguaje de definición de datos </li></ul><ul><li>  </li></ul><ul><li>Una vez finalizado el diseño de una base de datos y escogido un SGBD para su implementación, el primer paso consiste en especificar el esquema conceptual y el esquema interno de la base de datos, y la correspondencia entre ambos. En muchos SGBD no se mantiene una separación estricta de niveles, por lo que el administrador de la base de datos y los diseñadores utilizan el mismo lenguaje para definir ambos esquemas, es el lenguaje de definición de datos (LDD). El SGBD posee un compilador de LDD cuya función consiste en procesar las sentencias del lenguaje para identificar las descripciones de los distintos elementos de los esquemas y almacenar la descripción del esquema en el catálogo o diccionario de datos. Se dice que el diccionario contiene metadatos : describe los objetos de la base de datos. </li></ul><ul><li>  </li></ul><ul><li>Cuando en un SGBD hay una clara separación entre los niveles conceptual e interno, el LDD sólo sirve para especificar el esquema conceptual. Para especificar el esquema interno se utiliza un lenguaje de definición de almacenamiento (LDA). Las correspondencias entre ambos esquemas se pueden especificar en cualquiera de los dos lenguajes. Para tener una verdadera arquitectura de tres niveles sería necesario disponer de un tercer lenguaje, el lenguaje de definición de vistas (LDV), que se utilizaría para especificar las vistas de los usuarios y su correspondencia con el esquema conceptual. </li></ul><ul><li>  </li></ul><ul><li>Tipos de usuarios: </li></ul><ul><li>  </li></ul><ul><li>• Usuario normal: consulta información. </li></ul><ul><li>• Programador de aplicaciones: consultas más complejas (elaborar nómina de la empresa, etc). Hace programas que acceden a la BD. </li></ul><ul><li>• Administrador de la BD. </li></ul><ul><li>BD compuesta de: datos + hardware + software (SGBD) </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Lenguaje de definición de almacenamiento </li></ul><ul><li>  </li></ul><ul><li>Este lenguaje permite especificar características físicas de la base de datos (volúmenes y archivos donde van a ser almacenados los datos, etc.). En otras palabras especifica el esquema interno de la base de datos. </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Lenguaje de Definición de Vistas </li></ul><ul><li>  </li></ul><ul><li>Es utilizado por el SGBD para especificar las vistas del usuario y sus correspondencias con el esquema conceptual. </li></ul>
  19. 21. <ul><li>Registro: </li></ul><ul><li>  </li></ul><ul><li>Es una colección de campos (elementos), cada uno con su propio nombre y tipo. Los elementos de un registro representan diferentes tipos de información y se accede a ellos mediante su nombre. Se puede acceder a un registro como una unidad colectiva de elementos y también se puede acceder a los elementos individualmente. </li></ul><ul><li>  </li></ul><ul><li>Base de Datos distribuidas: </li></ul><ul><li>  </li></ul><ul><li>Un sistema distribuido de base de datos consiste en una colección de emplazamientos, cada uno de los cuales mantiene un sistema local de base de datos. Cada emplazamiento puede procesar las transacciones locales: las transacciones que solo tienen acceso a ese único emplazamiento. Además un emplazamiento puede participar en la ejecución de las transacciones globales. </li></ul><ul><li>  </li></ul><ul><li>Los sistemas distribuidos de base de datos consisten en emplazamientos poco acoplados que no comparten componentes físicos. Más aún los sistemas de base de datos que se ejecutan en cada emplazamiento pueden tener un grado significativo de independencia mutua. </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Arquitectura de una base de datos </li></ul><ul><li>  </li></ul><ul><li>La arquitectura de un sistema de base de datos está influenciada en gran medida por el sistema informático subyacente en el que se ejecuta el sistema de base de datos. En la arquitectura de un sistema de base de datos se reflejan aspectos como la conexión de red, el paralelismo y la distribución. </li></ul><ul><li>  </li></ul><ul><li>La conexión de red: de varias computadoras permite que algunas tareas se ejecuten en un sistema servidor y que otras se ejecuten en los sistemas clientes. Esta división de trabajo ha conducido al desarrollo de sistema de base de datos cliente – servidor. </li></ul><ul><li>  </li></ul><ul><li>El procesamiento paralelo: dentro de una computadora permite acelerar las actividades del sistema de base de datos, proporcionando a las transacciones una respuesta más rápida, así como la capacidad de ejecutar más transacciones por segundo. </li></ul><ul><li>  </li></ul><ul><li>La distribución de datos: a través de las distintas sedes o departamentos de una organización permite que estos datos residan donde han sido generados o donde son más necesarios, pero continuar siendo accesibles desde otros lugares o departamentos diferentes. </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul>
  20. 22. <ul><li>Niveles de la arquitectura de la base de datos </li></ul><ul><li>  </li></ul>
  21. 23. <ul><li>Nivel Interno: </li></ul><ul><li>  </li></ul><ul><li>Es la representación del nivel inferior de una base de datos. Mapea la base lógica hacia el almacenamiento físico y establece trayectoria de datos para el acceso aleatorio a la base de datos. Un modelo interno es modelo es descrito por el DBMS, como un esquema interno. El esquema contiene especificaciones detalladas del almacenamiento de todos los registros almacenados por la base de datos así como los descriptores del sistema: señaladores, palabras de control y trayectorias de datos necesarios para recuperación sobre claves secundarias. </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Nivel conceptual: </li></ul><ul><li>  </li></ul><ul><li>La administración de la base de datos define el modelo conceptual (database adminstrator DBA) por medio de un modelo conceptual. Este modelo representa la visión organizacional de la base que se obtiene al integrar los requerimientos de todos los usuarios en una empresa. Un esquema conceptual consta de las siguientes definiciones: </li></ul><ul><li>  </li></ul><ul><li>a) Definición de los datos </li></ul><ul><li>b) Relación entre datos </li></ul><ul><li>  </li></ul><ul><li>Un modelo conceptual se formula sin importar el almacenamiento físico de los registros correspondientes. En el nivel conceptual la base de datos aparece solo como una colección de registros lógicos, sin descriptores de almacenamiento. </li></ul><ul><li>  </li></ul><ul><li>Nivel Externo: </li></ul><ul><li>  </li></ul><ul><li>Representa la percepción individual de cada programador de la base de datos porque los programadores pueden estar trabajando en distintos subconjuntos de una base integrada. </li></ul><ul><li>  </li></ul><ul><li>Cuatro componentes principales de una base de datos: </li></ul><ul><li>  </li></ul><ul><li>Datos o información </li></ul><ul><li>Hardware </li></ul><ul><li>Software </li></ul><ul><li>Usuarios </li></ul><ul><li>En primer lugar se tiene los datos que configuran al sistema, que pueden ser de tipos muy variados. En la Figura 18 se observa cómo se integran los cuatro componentes principales de un sistema de bases de datos: datos o información, hardware, software y usuarios. </li></ul>
  22. 25. <ul><li>Componentes de un Sistema de base de datos: </li></ul><ul><li>  </li></ul><ul><li>Los sistemas de gestión de bases de datos permiten tener la información en forma Integrada (significa que, aunque la información consista en tablas distintas, el acceso y la consulta a los diferentes datos son homogéneos, evitándose en general las redundancias) y en forma Compartida (significa que los usuarios pueden acceder a las mismas partes de la base de datos para utilizarlas con propósitos diferentes). </li></ul><ul><li>  </li></ul><ul><li>Otro elemento es el Hardware donde está instalado el sistema, el cual está conformado básicamente por dos componentes fundamentales: Los dispositivos de almacenamiento donde se conservan los datos almacenados junto con los puertos de entrada y salida de datos, etc.; y el procesador o procesadores y la memoria principal, encargados de la ejecución de los programas del sistema de bases de datos. </li></ul><ul><li>Un tercer elemento, Software realizan la administración de las bases de datos, es decir, realizar las altas, bajas y modificaciones a las distintas tablas que componen la misma. Su función principal es simplificarles a los usuarios de la base de datos el proceso de creación, consulta o manipulación de los datos. </li></ul><ul><li>  </li></ul><ul><li>Por último, hay que considerar un cuarto elemento, los Usuarios. Estos pueden clasificarse en tres tipos: </li></ul><ul><li>  </li></ul><ul><li>Programadores de aplicaciones, que son quienes elaboran los programas que utilizan las bases de datos, en lenguajes de programación. </li></ul><ul><li>Administrador de las bases de datos, posee otro perfil técnico y desempeña funciones como diseño (decidir la estructura de almacenamiento de los datos y sus formas de acceso), definir la seguridad y el mantenimiento de la base, los controles de autorización, la ayuda técnica a los usuarios, etc. </li></ul><ul><li>  </li></ul><ul><li>Usuarios finales, a quienes va dirigida toda la labor de los anteriores, es decir, son quienes interactúan con el sistema desde una terminal mediante algún programa de aplicación. </li></ul><ul><li>  </li></ul><ul><li>Inconveniente de los SGBD </li></ul><ul><li>  </li></ul><ul><li>Redundancia e inconsistencia de datos : La misma información puede estar duplicada en diferentes lugares (archivos). Con esto puede ocasionar inconsistencia es decir que no coincidan los datos. </li></ul><ul><li>Dificultas en el acceso de datos : No permite que los datos sean obtenidos de una forma práctica y eficiente. </li></ul><ul><li>Aislamiento de datos : Los datos están dispersos en varios archivos y los archivos pueden estar en diferentes archivos. </li></ul><ul><li>Problemas de integridad : Los valores de los datos almacenados en la base de datos deben satisfacer ciertos tipos de ligaduras de consistencia. </li></ul><ul><li>Problemas de atomicidad : está sujeto a fallo. En muchas aplicaciones es crucial asegurar que una vez que un fallo ha ocurrido y se ha detectado, los datos se restauran al estado de consistencia que existía antes del fallo. </li></ul><ul><li>A nomalías en el acceso concurrente : muchos sistemas han ido permitiendo a múltiples usuarios actualizar los datos simultáneamente puede dar lugar a datos inconsistentes. </li></ul><ul><li>Problemas de seguridad : No todos los usuarios de un sistema de base de datos deberían poder acceder a todos los datos. </li></ul><ul><li>  </li></ul>
  23. 26. <ul><li>Lenguajes de cuarta generación </li></ul><ul><li>  </li></ul><ul><li>No existe consenso sobre lo que es un lenguaje de cuarta generación (4GL). Lo que en un lenguaje de tercera generación (3GL) como COBOL requiere cientos de líneas de código, tan solo necesita diez o veinte líneas en un 4GL. Comparado con un 3GL, que es procedural, un 4GL es un lenguaje no procedural: el usuario define qué se debe hacer, no cómo debe hacerse. Los 4GL se apoyan en unas herramientas de mucho más alto nivel denominadas herramientas de cuarta generación. El usuario no debe definir los pasos a seguir en un programa para realizar una determinada tarea, tan sólo debe definir una serie de parámetros que estas herramientas utilizarán para generar un programa de aplicación. Se dice que los 4GL pueden mejorar la productividad de los programadores en un factor de 10, aunque se limita el tipo de problemas que pueden resolver. Los 4GL abarcan: </li></ul><ul><li>  </li></ul><ul><li>Lenguajes de presentación, como lenguajes de consultas y generadores de informes. </li></ul><ul><li>Lenguajes especializados, como hojas de cálculo y lenguajes de bases de datos. </li></ul><ul><li>Generadores de aplicaciones que definen, insertan, actualizan y obtienen datos de la base de datos. </li></ul><ul><li>Lenguajes de muy alto nivel que se utilizan para generar el código de la aplicación. </li></ul><ul><li>Los lenguajes SQL y QBE son ejemplos de 4GL. Hay otros tipos de 4GL: </li></ul><ul><li>  </li></ul><ul><li>Un generador de formularios es una herramienta interactiva que permite crear rápidamente formularios de pantalla para introducir o visualizar datos. Los generadores de formularios permiten que el usuario defina el aspecto de la pantalla, qué información se debe visualizar y en qué lugar de la pantalla debe visualizarse. Algunos generadores de formularios permiten la creación de atributos derivados utilizando operadores aritméticos y también permiten especificar controles para la validación de los datos de entrada. </li></ul><ul><li>  </li></ul><ul><li>Un generador de informes es una herramienta para crear informes a partir de los datos almacenados en la base de datos. Se parece a un lenguaje de consultas en que permite al usuario hacer preguntas sobre la base de datos y obtener información de ella para un informe. Sin embargo, en el generador de informes se tiene un mayor control sobre el aspecto de la salida. Se puede dejar que el generador determine automáticamente el aspecto de la salida o se puede diseñar ésta para que tenga el aspecto que desee el usuario final. </li></ul><ul><li>  </li></ul><ul><li>Un generador de gráficos es una herramienta para obtener datos de la base de datos y visualizarlos en un gráfico mostrando tendencias y relaciones entre datos. Normalmente se pueden diseñar distintos tipos de gráficos: barras, líneas, etc. </li></ul><ul><li>Un generador de aplicaciones es una herramienta para crear programas que hagan de interface entre el usuario y la base de datos. El uso de un generador de aplicaciones puede reducir el tiempo que se necesita para diseñar un programa de aplicación. Los generadores de aplicaciones constan de procedimientos que realizan las funciones fundamentales que se utilizan en la mayoría de los programas. Estos procedimientos están escritos en un lenguaje de programación de alto nivel y forman una librería de funciones entre las que escoger. El usuario especifica qué debe hacer el programa y el generador de aplicaciones es quien determina cómo realizar la tarea. </li></ul>
  24. 27. <ul><li>Tendencias futuras. </li></ul><ul><li>  </li></ul><ul><li>En el futuro la mayoría de las organizaciones cambiarán la forma convencional de manejo de la información a la arquitectura de base de datos a las ventajas derivadas de su uso. El uso de las bases de datos distribuidas se incrementará de manera considerable en la medida en que la tecnología de comunicación de datos brinde más facilidades para ello. El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de Información para la Toma de Decisiones. </li></ul><ul><li>Base de datos orientada a objetos </li></ul><ul><li>  </li></ul><ul><li>En una base de datos orientada a objetos , la información se representa mediante objetos como los presentes en la programación orientada a objetos . Cuando se integra las características de una base de datos con las de un lenguaje de programación orientado a objetos, el resultado es un sistema gestor de base de datos orientada a objetos ( ODBMS , object database management system). Un ODBMS hace que los objetos de la base de datos aparezcan como objetos de un lenguaje de programación en uno o más lenguajes de programación a los que dé soporte. Un ODBMS extiende los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperación de datos, consultas asociativas y otras capacidades. </li></ul><ul><li>  </li></ul><ul><li>Las bases de datos orientadas a objetos se diseñan para trabajar bien en conjunción con lenguajes de programación orientados a objetos como Java, C#, Visual Basic.NET y C++. Los ODBMS usan exactamente el mismo modelo que estos lenguajes de programación. </li></ul><ul><li>  </li></ul><ul><li>Los ODBMS son una buena elección para aquellos sistemas que necesitan un buen rendimiento en la manipulación de tipos de dato complejos. </li></ul>
  25. 28. <ul><li>  </li></ul><ul><li>Los ODBMS proporcionan los costes de desarrollo más bajos y el mejor rendimiento cuando se usan objetos gracias a que almacenan objetos en disco y tienen una integración transparente con el programa escrito en un lenguaje de programación orientado a objetos, al almacenar exactamente el modelo de objeto usado a nivel aplicativo, lo que reduce los costes de desarrollo y mantenimiento. </li></ul><ul><li>  </li></ul><ul><li>Panorama Actual </li></ul><ul><li>  </li></ul><ul><li>La interoperabilidad entre diferentes sistemas de información ha sido uno de los aspectos más críticos en la operación cotidiana de muchas organizaciones. La necesidad de interoperabilidad surge a raíz de los cambios organizacionales que sufren las empresas modernas, alianzas estratégicas, compartimiento de información, y absorción de pequeñas y medianas industrias por grandes corporativos son sólo algunos de los panoramas que provocan esta situación. </li></ul><ul><li>  </li></ul><ul><li>En la última década esta preocupación se vio incrementada con la proliferación de diferentes bases de datos con diferentes modelos de datos que corren en diferentes plataformas. En estos ambientes, los usuarios están limitados en el acceso uniforme de la información. Los sistemas de bases de datos múltiples (también conocidos como bases de datos federadas o bases de datos heterogéneas) son sistemas computacionales que hacen disponible la información desde diversas fuentes, y donde esas fuentes de información pueden ser heterogéneas, distribuidas y autónomas. </li></ul><ul><li>  </li></ul><ul><li>Dentro del panorama futuro de las bases de datos múltiples hay un aspecto importante que considerar, el inusitado éxito del World Wide Web (WWW o, de forma abreviada, &quot;el Web&quot;) como medio de publicación de documentos y como medio de intercambio de información. El WWW proporciona uno de los medios más heterogéneos y retadores en el campo de la interoperabilidad. Recientemente han surgido tecnologías y estándares enfocados a hacer del Web una infraestructura escalable y manejable. Una de dichas tecnologías es XML [4] (eXtensible Markup Language), sobre la cual la comunidad científica tiene muchas expectativas. </li></ul><ul><li>Una de ellas es que XML convierta a Internet en un sistema de bases de datos, haciendo posible especificar consultas en el estilo de los manejadores de bases de datos tradicionales lo cual da muchos mejores resultados que las actuales máquinas de búsqueda. Sin embargo, XML en sí no posee mucha de la funcionalidad de sistemas de bases de datos múltiples como las indicadas en Donají. El reto es integrar esa funcionalidad en XML y aprovechar al máximo la información estratégica que podamos encontrar en el Web. </li></ul>
  26. 29. <ul><li>Identificación de objetos, estructuras y constructores </li></ul><ul><li>  </li></ul><ul><li>Los objetos de las bases de datos orientadas a objetos suelen corresponder a entidades del sistema modelado por la base de datos. Las entidades conservan su identidad aunque algunas de sus propiedades cambien con el tiempo. De manera parecida, los objetos deben conservar su identidad aunque los valores de las variables o las definiciones de los métodos cambien total o parcialmente con el tiempo. </li></ul><ul><li>  </li></ul><ul><li>Este concepto de identidad no se aplica a las tuplas de las bases de datos relacionales. En los sistemas relacionales las tuplas de una relación solo se distinguen por los valores que contienen. La identidad de los objetos es un concepto de identidad más potente que el que suele hallarse en los lenguajes de programación o en los modelos de datos no orientados a objetos. A continuación algunos ejemplos de identidad: </li></ul><ul><li>  </li></ul><ul><li>Valor Se utiliza un valor de datos como identidad. Esta forma de identidad se utiliza en los sistemas relacionales. </li></ul><ul><li>Nombre Se utiliza como identidad un nombre proporcionado por el usuario. Esta forma de identidad suele utilizarse para los archivos en los sistemas de archivos. </li></ul><ul><li>  </li></ul><ul><li>Incorporada Se incluye el concepto de identidad en el modelo de datos o en el lenguaje de programación y no hace falta que el usuario proporcione ningún identificador. Esta forma de identidad se utiliza en los sistemas orientados a objetos. Cada objeto recibe del sistema de manera automática un identificador en el momento en que se crea. </li></ul><ul><li>  </li></ul><ul><li>Los identificadores de los objetos son únicos; es decir, cada objeto tiene un solo identificador y no hay dos objetos que tengan el mismo identificador. Los identificadores de los objetos no tienen por qué estar en una forma con la que los seres humanos se encuentren cómodos; pueden ser números grandes, por ejemplo. La posibilidad de guardar el identificador de un objeto como un campo de otro objeto es más importante que tener un nombre que resulte fácil de recordar. Utilizar un identificador de un objeto como atributo de otro se denomina referenciar un objeto. </li></ul><ul><li>  </li></ul><ul><li>Encapsulamiento de operaciones, métodos y persistencia </li></ul><ul><li>  </li></ul><ul><li>Encapsulamiento: Es la ocultación de información . Significa mantener la información dentro del objeto y mantenerlo como una caja negra. Puede ser accedida por métodos. </li></ul><ul><li>  </li></ul><ul><li>Persistencia: Un objeto puede seguir existiendo tras desaparecer su antecesor. </li></ul><ul><li>  </li></ul><ul><li>En los lenguajes de programación orientados a objetos estos son transitorios, desaparecen cuando se termina el programa, Si se desea transformar uno de estos lenguajes en un lenguaje para la programación de bases de datos, el primer paso consiste en proporcionar una manera de hacer persistentes a los objetos. Se han propuesto varios enfoques </li></ul>
  27. 30. <ul><li>Persistencia por clases El enfoque más sencillo, pero el menos conveniente, consiste en declarar que una clase es persistente. Todos los objetos de la clase son, por tanto, persistentes de manera predeterminada. Todos los objetos de las clases no persistentes son transitorios. Este enfoque no es flexible, porque no permite disponer en una misma clase tanto de objetos transitorios como de objetos persistentes. En muchos sistemas de bases de datos orientados a objetos, la declaración de que una clase es persistente se debe interpretar mejor como “que pueden ser persistentes”. </li></ul><ul><li>  </li></ul><ul><li>Persistencia por creación En este enfoque se introduce una sintaxis nueva para crear los objetos persistentes mediante la extensión de la sintaxis para la creación de los objetos transitorios. Por tanto, los objetos son persistentes o transitorios en función de la manera de crearlos. Este enfoque se sigue en varios sistemas de bases de datos orientados a objetos. </li></ul><ul><li>  </li></ul><ul><li>Persistencia por marcas Una variante del enfoque anterior es marcar los objetos como persistentes después de haberlos creado. Todos los objetos se crean como transitorios, pero, si un objeto tiene que persistir más allá de la ejecución del programa, se le marca de manera explícita. A diferencia del enfoque anterior, la decisión sobre la persistencia o la transitoriedad se retrasa hasta después de la creación del objeto. </li></ul><ul><li>  </li></ul><ul><li>Persistencia por alcance Uno o varios objetos se declaran objetos persistentes (Objetos raíz) de manera explícita. Todos los demás objetos serán persistentes si (y solo si) son alcanzables desde el objeto raíz mediante una secuencia de una o más referencias. </li></ul><ul><li>  </li></ul><ul><li>Método es un código ejecutable asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena mediante un “mensaje”. </li></ul><ul><li>  </li></ul><ul><li>Jerarquía de clases y herencia </li></ul><ul><li>  </li></ul><ul><li>Jerarquía es “cualquier clasificación u ordenación de abstracciones en una estructura de árbol. Algunos tipos de Jerarquía son: Jerarquía de agregación, jerarquía de clases, jerarquía de herencia, jerarquía de partición, jerarquía de especialización, jerarquía de tipo . Éste concepto es sumamente importante ya que con ello conocemos la importancia de dividir los problemas en una jerarquía de ideas. Los dos tipos importantes de jerarquía son: la de generalización/especialización y la de todo/parte. </li></ul><ul><li>  </li></ul><ul><li>La jerarquía de generalización/especialización se basa en que las propiedades de una categoría general se transmiten a todas las categorías que se especializan o subcategorías. En la OO, la jerarquía de clases significa un conjunto de clases relacionadas por la jerarquía de generalización/especialización. </li></ul>
  28. 31. <ul><li>Herencia: Es la propiedad que permite a los objetos crearse a partir de otros objetos. Cada subclase comparte características comunes con la clase de la que deriva. La clase original la llamamos clase base y las nuevas clases creadas a partir de ella clases derivadas. Una clase derivada puede ser también clase base dando lugar a una jerarquía de clases. </li></ul><ul><li>Los miembros de la clase base deben ser protected o private protected. La clase derivada hereda todos los datos y función miembro, pero solo puede acceder a los miembros que le sean permitidos desde la clase base. Puede añadir a los miembros heredados, sus propios atributos y métodos. Para acceder a los métodos de la clase base se usa súper. La ventaja de la herencia es que permite la reutilización de código , ahorrando tiempo y dinero . </li></ul><ul><li>  </li></ul><ul><li>Relaciones Anidadas </li></ul><ul><li>  </li></ul><ul><li>El modelo relacional anidado es una extensión del modelo relacional en la que los dominios pueden ser atómicos o de relación. Por tanto, el valor de las tuplas de los atributos puede ser una relación, y las relaciones pueden guardarse en otras relaciones. Los objetos complejos, por tanto, pueden representarse mediante una única tupla de las relaciones anidadas. </li></ul><ul><li>  </li></ul><ul><li>Objetos complejos </li></ul><ul><li>  </li></ul><ul><li>Tipos de datos complejos </li></ul><ul><li>  </li></ul><ul><li>Colecciones </li></ul><ul><li>  </li></ul><ul><li>Los conjuntos son ejemplares de los tipos colección. Otros ejemplares son los arrays y los multiconjuntos (es decir, colecciones sin orden donde un elemento puede aparecer varias veces). Las siguientes definiciones de atributos ilustran la declaración de un array: array-autores varchar (20) array [10] array-autores es un array de hasta 10 nombres de autor. Se puede acceder a los elementos del array especificando el ´índice del array, por ejemplo, array-autores. </li></ul><ul><li>Objetos de gran tamaño (LOB) </li></ul><ul><li>  </li></ul><ul><li>Muchas aplicaciones actuales de bases de datos necesitan almacenar atributos grandes (del orden de varios Kbytes), tales como la fotografía de una persona, o muy grandes (del orden de varios Mbytes o incluso Gbytes), tales como imágenes medicas de alta resolución o clips de video. SQL: 1999 proporciona por tanto nuevos tipos de datos para objetos de gran tamaño para datos de caracteres (clob) y binarios (blob). Las letras “lob” en estos tipos de datos son acrónimos de “Large OBject” (objeto grande). Los objetos grandes se usan normalmente en aplicaciones externas, y tiene poco sentido extraerlos completamente en SQL. En su lugar, una aplicación conseguiría un “localizador” de un objeto grande y lo usaría para manipularlo desde el lenguaje anfitrión. </li></ul>
  29. 32. <ul><li>Tipos estructurados </li></ul><ul><li>  </li></ul><ul><li>Los tipos estructurados permiten la representación directa de atributos compuestos de los diagramas E-R. Un tipo estructurado puede tener métodos definidos sobre él. Los métodos se declaran como parte de la definición de tipos de un tipo estructurado. </li></ul><ul><li>  </li></ul><ul><li>Constructores </li></ul><ul><li>  </li></ul><ul><li>Hay que definir funciones constructoras para crear valores de tipos estructurados. En SQL-1999 y en muchos otros lenguajes se utiliza una función con el mismo nombre que un tipo estructurado como función constructora. De manera predeterminada, cada tipo estructurado tiene un constructor sin argumentos, que establece los atributos a sus valores predefinidos. Cualquiera otra función constructora tiene que crearse explícitamente. Puede haber más de una constructora para el mismo tipo estructurado; aunque tengan el mismo nombre, solo tienen que ser distinguibles por el número de argumentos y sus tipos. </li></ul><ul><li>  </li></ul><ul><li>Diseño de BDOO por transformación de EER-OO </li></ul>
  30. 33. <ul><li>¿Qué es una BDOO? </li></ul><ul><li>  </li></ul><ul><li>A finales de los 80's aparecieron las primeras BDOO, es una base de datos inteligente. Soporta el paradigma orientado a objetos almacenando datos y métodos, y no sólo datos. Está diseñada para ser eficaz, desde el punto de vista físico, para almacenar objetos complejos. Evita el acceso a los datos; esto es mediante los métodos almacenados en ella. Es más segura ya que no permite tener acceso a los datos (objetos); esto debido a que para poder entrar se tiene que hacer por los métodos que haya utilizado el programador. </li></ul><ul><li>  </li></ul><ul><li>Características de los SGBDOO </li></ul><ul><li>  </li></ul><ul><li>Un SGBDOO debe satisfacer dos criterios: Ser un sistema orientado a objetos, y ser un sistema de gestión de bases de datos. El primer criterio se traduce en ocho características generales [BOO94]: abstracción, encapsulación, modularidad, jerarquía, control de tipos, concurrencia, persistencia y generosidad. El segundo criterio se traduce en cinco características principales: persistencia, concurrencia, recuperación ante fallos del sistema, gestión del almacenamiento secundario y facilidad de consultas. </li></ul><ul><li>  </li></ul><ul><li>Características de SGBDOO </li></ul><ul><li>  </li></ul><ul><li>  La persistencia, al igual que la concurrencia es característica del SGBDOO heredadas tanto del SGBD como del modelo de objetos. La persistencia en el caso del SGBD hace referencia a la conservación de los datos después de la finalización del proceso que los creó. En el caso del modelo de objetos, se refiere no sólo a la conservación del estado de un objeto, sino también a la conservación de la clase, que debe trascender a cualquier programa individual, de forma que todos los programas interpreten de la misma manera el estado almacenado. La concurrencia heredada del SGBD se refiere a la capacidad del sistema para gestionar a múltiples usuarios interactuando concurrentemente sobre el mismo, mientras que la concurrencia heredada del modelo de objetos hace referencia a la capacidad de distinguir a un objeto activo de otro que no lo está. </li></ul><ul><li>  </li></ul><ul><li>* Persistencia </li></ul><ul><li>  </li></ul><ul><li>Es la capacidad que tiene el programador para que sus datos se conserven al finalizar la ejecución de un proceso, de forma que se puedan reutilizar en otros procesos. </li></ul><ul><li>  </li></ul><ul><li>* Concurrencia </li></ul><ul><li>  </li></ul><ul><li>Se relaciona con la existencia de muchos usuarios interactuando concurrentemente en el sistema. Este debe controlar la interacción entre las transacciones concurrentes para evitar que se destruya la consistencia de la base de datos. </li></ul><ul><li>  </li></ul><ul><li>* Recuperación </li></ul><ul><li>  </li></ul><ul><li>Proporcionar como mínimo el mismo nivel de recuperación que los sistemas de bases de datos actuales. De forma que, tanto en caso de fallo de hardware como de fallo de software, el sistema pueda retroceder hasta un estado coherente de los datos. </li></ul><ul><li>  </li></ul>
  31. 34. <ul><li>* Gestión del almacenamiento secundario </li></ul><ul><li>  </li></ul><ul><li>Es soportada por un conjunto de mecanismos que no son visibles al usuario, tales como gestión de índices, agrupación de datos, selección del camino de acceso, optimización de consultas, etc. Estos mecanismos evitan que los programadores tengan que escribir programas para mantener índices, asignar el almacenamiento en disco, o trasladar los datos entre el disco y la memoria principal, creándose de esta forma una independencia entre los niveles lógicos y físicos del sistema. </li></ul><ul><li>  </li></ul><ul><li>* Facilidad de Consultas </li></ul><ul><li>  </li></ul><ul><li>Permitir al usuario hacer cuestiones sencillas a la base de datos. Este tipo de consultas tienen como misión proporcionar la información solicitada por el usuario de una forma correcta y rápida. </li></ul><ul><li>  </li></ul><ul><li>Lenguajes orientados a objeto </li></ul><ul><li>  </li></ul><ul><li>La orientación a objetos promete mejoras de amplio alcance en la forma de diseño , desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software : la falta de portabilidad del código y reusabilidad, código que es difícil de modificar, ciclos de desarrollo largos y técnicas de codificación no intuitivas. </li></ul><ul><li>  </li></ul><ul><li>Un lenguaje orientado a objetos ataca estos problemas . Tiene tres caracter ísticas básicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La barrera más difícil de sortear es usualmente la herencia . </li></ul><ul><li>  </li></ul><ul><li>El concepto de programación orientada a objetos (OOP) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella. Dado que la OOP. Se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una caracter ística fundamental del mismo. </li></ul><ul><li>  </li></ul><ul><li>El elemento fundamental de la OOP es, como su nombre lo indica, el objeto . Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización . </li></ul>
  32. 35. <ul><li>Lenguajes de programación persistentes </li></ul><ul><li>  </li></ul><ul><li>Los lenguajes de las bases de datos trabajan directamente con datos que son persistentes, es decir, los datos siguen existiendo una vez que el programa que los creo ha concluido. Las relaciones de las bases de datos y las tuplas de las relaciones son ejemplos de datos persistentes. Por el contrario, los únicos datos persistentes con los que los lenguajes de programación tradicionales trabajan directamente son los archivos. </li></ul><ul><li>  </li></ul><ul><li>La manera tradicional de realizar las interfaces de las bases de datos con los lenguajes de programación tradicionales consiste en incorporar o embeber el código SQL dentro del lenguaje de programación. </li></ul><ul><li>  </li></ul><ul><li>Los lenguajes de programación persistente son lenguajes de programación extendidos para el tratamiento de datos persistentes. Los lenguajes de programación persistente pueden distinguirse de los lenguajes con SQL embebido de al menos dos maneras: </li></ul><ul><li>  </li></ul><ul><li>1. En los lenguajes incorporados el sistema de tipos del lenguaje anfitrión suele ser diferente del sistema de tipos del lenguaje para el tratamiento de los datos. Los programadores son responsables de las conversiones de tipos entre el lenguaje anfitrión y SQL. Exigir que los programadores ejecuten esta tarea presenta varios inconvenientes: </li></ul><ul><li>  </li></ul><ul><li>a) El código para la conversión entre objetos y tuplas opera fuera del sistema de tipos orientado a objetos y, por tanto, tiene más posibilidades de presentar errores no detectados. </li></ul><ul><li>  </li></ul><ul><li>b) La conversión entre el formato orientado a objetos y el formato relacional de las tuplas necesita gran cantidad de código. El código de conversión, junto con el código para cargar y descargar los datos de la base de datos puede suponer un porcentaje significativo del total necesario para la aplicación. </li></ul><ul><li>  </li></ul><ul><li>Por el contrario, en los lenguajes de programación persistente, el lenguaje de consulta se halla totalmente integrado con el lenguaje anfitrión y ambos comparten el mismo sistema de tipos. Los objetos se pueden crear y guardar en la base de datos sin ningún tipo explicito ni cambios de formato; los cambios necesarios se realizan de manera transparente. </li></ul><ul><li>  </li></ul><ul><li>2. Los programadores que utilizan lenguajes de consulta incorporados son responsables de la escritura de código explicito para la búsqueda de los datos de la base de datos en la memoria. Si se realizan actualizaciones, los programadores deben escribir código de manera explícita para volver a guardar los datos actualizados en la base de datos. </li></ul><ul><li>  </li></ul><ul><li>Por el contrario, en los lenguajes de programación persistentes los programadores pueden trabajar con datos persistentes sin tener que escribir de manera explícita código para buscarlos en la memoria o para volver a guardarlos en el disco. Se han propuesto versiones persistentes de los lenguajes de programación como Pascal. En los últimos años han recibido mucha atención las versiones persistentes de los lenguajes orientados a objetos como C++, Java y Smalltalk. Sin embargo, los lenguajes de programación persistentes presentan ciertos inconvenientes. Dado que los lenguajes de programación suelen ser potentes resulta relativamente sencillo cometer errores de programación que dañen las bases de datos. Además, la complejidad de los lenguajes hace que la optimización automática de alto nivel, como la reducción de E/S de disco, resulte más difícil. </li></ul><ul><li>  </li></ul>
  33. 36. <ul><li>BASE DE DATOS DEDUCTIVAS – INTRODUCCIÒN </li></ul><ul><li>  </li></ul><ul><li>Un sistema de bases de datos que tenga la capacidad de definir reglas con las cuales deducir o inferir información adicional a partir de los hechos almacenados en las bases de datos se llama Sistema de Bases de Datos Deductivas. Puesto que parte de los fundamentos teóricos de algunos sistemas de ésta especie es la lógica matemática, a menudo se les denomina Bases de Datos Lógicas. Una base de datos deductiva es, en esencia, un programa lógico; 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. </li></ul><ul><li>  </li></ul><ul><li>Los sistemas Bases de Datos Deductivas intentan modificar el hecho de que los datos requeridos residan en la memoria principal (por lo que la gestión de almacenamiento secundario no viene al caso) de modo que un SGBD se amplíe para manejar datos que residen en almacenamiento secundario. </li></ul><ul><li>  </li></ul><ul><li>En un sistema de Bases de Datos Deductivas por lo regular se usa un lenguaje declarativo para especificar reglas. Con lenguaje declarativo se quiere decir un lenguaje que define lo que un programa desea lograr, en vez de especificar los detalles de cómo lograrlo. Una máquina de inferencia (o mecanismo de deducción) dentro del sistema puede deducir hechos nuevos a partir de la base de datos interpretando dichas reglas </li></ul><ul><li>  </li></ul><ul><li>Notación Prolog/Datalog </li></ul><ul><li>  </li></ul><ul><li>El lenguaje DATALOG </li></ul><ul><li>El lenguaje DATALOG se deriva de la lógica de primer orden. Es a la vez un lenguaje de descripción y de manipulación de bases de datos. </li></ul><ul><li>• El modelo de descripción de datos sostenido por DATALOG es esencialmente relacional, viéndose una relación como un predicado de la lógica. </li></ul><ul><li>• El lenguaje de manipulación es un lenguaje de reglas construido a partir de las cláusulas de Horn. El nombre Datalog significa “lógica para los datos”. Ha sido inventado para sugerir una versión de Prolog utilizable por los datos. </li></ul><ul><li>  </li></ul><ul><li>Mecanismos básicos de inferencia para programación lógica </li></ul><ul><li>  </li></ul><ul><li>La Programación Lógica estudia el uso de la lógica para el planteamiento de problemas y el control sobre las reglas de inferencia para alcanzar la solución automática. </li></ul><ul><li>  </li></ul><ul><li>La Programación Lógica, junto con la funcional, forma parte de lo que se conoce como Programación Declarativa, es decir la programación consiste en indicar como resolver un problema mediante sentencias, en la Programación Lógica, se trabaja en una forma descriptiva, estableciendo relaciones entre entidades, indicando no como, sino que hacer, entonces se dice que la idea esencial de la Programación Lógica es </li></ul><ul><li>Programa = lógica + control </li></ul><ul><li>Lógica (programador): hechos y reglas para representar conocimiento Control (interprete): deducción lógica para dar respuestas (soluciones) </li></ul>
  34. 37. <ul><li>FUNDAMENTOS DE LA PROGRAMACION LOGICA </li></ul><ul><li>  </li></ul><ul><li>La mayoría de los Lenguajes de Programación se basan en la Teoría Lógica de Primer Orden, aunque también incorporan algunos comportamientos de orden superior, en este sentido, destacan los lenguajes funcionales ya que se basan en el Cálculo Lambda, es la única teoría lógica de orden superior. </li></ul><ul><li>La Teoría Lógica de Primer Orden o también llamada lógica de predicados: es un sistema deductivo basado en un Lenguaje Lógico Matemático formal de gran utilidad para las Matemáticas, Filosofía, Lingüística y Computacional. Incluye proposiciones lógicas, predicados y cuantificadores. </li></ul><ul><li>  </li></ul><ul><li>CARACTERISTICAS DE LA PROGRAMACION LOGICA </li></ul><ul><li>  </li></ul><ul><li>Unificación de términos </li></ul><ul><li>Mecanismos de inferencia automática </li></ul><ul><li>Recursión como estructura de control básica </li></ul><ul><li>Visión lógica de la computación </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Lenguajes de programación lógica </li></ul><ul><li>Un lenguaje es el CLP pero el lenguaje de programación lógica por excelencia es el PROLOG. </li></ul><ul><li>Prolog: es un Lenguaje de Programación diseñado para representar y utilizar el conocimiento que se tiene sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del cual tienes conocimiento. </li></ul><ul><li>La popularidad del lenguaje se debe a su capacidad de deducción y además es un lenguaje fácil de usar por su semántica y sintaxis. Solo busca relaciones entre los objetos creados, las variables y las listas, que son su estructura básica. </li></ul><ul><li>Escribir un programa en Prolog consiste en declarar el conocimiento disponible acerca de objetos, además de sus relaciones y sus reglas, en lugar de correr un programa para obtener una solución, se hace una pregunta, el programa revisa la base de datos para encontrar la solución a la pregunta, si existe más de una solución, Prolog hace un barrido para encontrar soluciones distintas. El propio sistema es el que deduce las respuestas a las preguntas que se le plantean, dichas respuestas las deduce del conocimiento obtenido por el conjunto de reglas dadas. </li></ul><ul><li>  </li></ul><ul><li>Campos de aplicación </li></ul><ul><li>  </li></ul><ul><li>Sistemas Expertos, donde un Sistema de información mita las recomendaciones de un experto sobre algún dominio de conocimiento. </li></ul><ul><li>Demostración automática de teoremas, donde un programa genera nuevos teoremas sobre una teoría existente. </li></ul><ul><li>Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la información contenida en una expresión lingüística humana. </li></ul><ul><li>Inteligencia artificial </li></ul><ul><li>Sistemas de información </li></ul>
  35. 38. <ul><li>Programación en Datalog </li></ul><ul><li>  </li></ul><ul><li>Datalog (Database Logic) es un lenguaje lógico que es la forma más simple de lógica desarrollada para el modelo relacional. Datalog sin recursión tiene el mismo poder expresivo que el álgebra relacional. Datalog recursivo permite expresar consultas que no se pueden satisfacer en SQL2. Sin embargo, SQL: 1999 ha usado la solución para la recursión en Datalog para el desarrollo de consultas recursivas. Datalog es similar a Prolog en su sintaxis, pero su semántica operacional es diferente. Una regla o cláusula en Datalog tiene la forma: cabeza ← cuerpo. </li></ul><ul><li>  </li></ul><ul><li>Donde cabeza es un átomo y cuerpo es una lista de átomos que puede ser vacía; en este caso se habla de un hecho. Los hechos se escriben: cabeza. Un átomo es de la forma: P (t1,..., tn) Donde P es un símbolo de predicado y ti son variables o constantes. No se admiten símbolos de función en ti, a diferencia de Prolog. </li></ul><ul><li>  </li></ul><ul><li>Significado de las reglas lógicas </li></ul><ul><li>  </li></ul><ul><li>Una regla se escribe: P ← Q1,..., Qn. Y se lee: &quot;Si Q1, Q2,... y Qn son ciertos, entonces P es cierto&quot;. Si n=0, &quot;P es cierto&quot;, y se escribe: P. Hay formas alternativas de definir el significado de las reglas: </li></ul><ul><li>  </li></ul><ul><li>Interpretación de la teoría de pruebas </li></ul><ul><li>  </li></ul><ul><li>Es el conjunto de todos los hechos que se pueden probar a partir de las reglas del programa usándolas de todas las formas posibles. Por ejemplo, en la BD bíblica, para el predicado antepasado y los hechos padre y madre, el significado de las reglas que definen a antepasado es el conjunto de hechos antepasado(X,Y) tales que X es antepasado de Y. </li></ul><ul><li>  </li></ul><ul><li>Predicados intencionales y extensionales </li></ul><ul><li>  </li></ul><ul><li>Es otra diferencia entre Datalog y las bases de datos relacionales. Un predicado cuya relación se almacena explícitamente en la base de datos se denomina extensional. Un predicado que se define en términos de reglas se denomina intencional. Por ejemplo, en la base de datos genealógica: madre, padre, mujer, hombre: extensional madre (ana, Pedro). Madre (ana, Juan). ... padre (José, julia). Padre (luís, José). ... progenitor, antepasado: intencional progenitor(X, Y):- madre(X, Y). Progenitor(X, Y):- padre(X, Y). Antepasado(X, Y):- progenitor(X, Y). Antepasado(X, Y):- progenitor(X, Z), antepasado (Z, Y). </li></ul><ul><li>  </li></ul><ul><li>En el modelo relacional, todas las relaciones se definen extensionalmente. Las vistas permiten una forma limitada de definición intencional, más pobre que en Datalog.. </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul>
  36. 39. <ul><li>Próxima Generación de Bases de Datos y Sistemas Gestores de Bases de Datos </li></ul><ul><li>  </li></ul><ul><li>Bases de Datos Activas (BDA) </li></ul><ul><li>  </li></ul><ul><li>Tradicionalmente, los SGBD han sido pasivos; ejecutan consultas o transacciones sólo cuando un usuario o un programa de aplicación le solicitan explícitamente que lo hagan. Sin embargo, muchas aplicaciones como el control de procesos, las redes de generación / distribución de energía eléctrica, el control automatizado del flujo de trabajo de una oficina, el intercambio de programas, la gestión de batallas y la vigilancia de pacientes hospitalarios no reciben un servicio adecuado de estos SGBD &quot;pasivos&quot;. En estas aplicaciones restringidas por el tiempo, es preciso vigilar la ocurrencia de condiciones definidas sobre estados de la base de datos y, en caso de ocurrir, invocar acciones específicas, quizá sujetas a ciertas restricciones de tiempo. Una posible situación en la fabricación automatizada consistiría en vigilar la ocurrencia de un suceso, evaluar una condición y emprender una o más acciones. En todo esto puede caber el acceso a bases de datos compartidas que varios usuarios estén actualizando constantemente y que deban mantenerse en un estado. </li></ul><ul><li>  </li></ul><ul><li>Básicamente se han adoptado dos enfoques para resolver las necesidades de las aplicaciones restringidas por el tiempo. El primero consiste en escribir un programa que consulte periódicamente la BD para determinar si ha ocurrido la situación que se espera. Es difícil de implementar porque no es fácil determinar la frecuencia de sondeo óptima. </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>El segundo consiste en incorporar código en cada uno de los programas que actualizan la BD de modo que verifiquen si se ha presentado la situación que se vigila. Pone en peligro la modularidad y la reutilización del código. (Elmasri R. y Navathe  S.B.) </li></ul>
  37. 41. <ul><li>Elementos Constitutivos </li></ul><ul><li>  </li></ul><ul><li>Las Bases de Datos Activas manejan la vigilancia de condiciones (con disparadores y alertas). Un SGBD activo vigila continuamente el estado de la BD y reacciona espontáneamente cuando ocurren sucesos predefinidos. Desde el punto de vista funcional, un Sistema de Gestión de Bases de Datos Activas vigila condiciones disparadas por sucesos que representan acciones de bases de datos.  Esto es: La evaluación de la condición resulta verdadera, se ejecuta la acción, ofreciendo modularidad y respuesta oportuna en la acción. </li></ul><ul><li>  </li></ul><ul><li>Bases de Datos Multimedia </li></ul><ul><li>  </li></ul><ul><li>Una base de datos multimedia es una base de datos que alberga uno o más tipos de archivos de los medios de comunicación principales como. Txt (documentos), Jpg (imágenes), Swf (vídeos),. Mp3 (audio), etc., y poco se dividen en tres categorías principales: </li></ul><ul><li>  </li></ul><ul><li>Los medios de comunicación (independientes del tiempo, es decir, imágenes y escritura) </li></ul><ul><li>  </li></ul><ul><li>Medios dinámicos (en función del tiempo, es decir, video y sonido bytes) </li></ul><ul><li>  </li></ul><ul><li>Dimensional medios de comunicación (es decir, los juegos 3D o con ayuda de computadoras, elaboración de programas de CAD). Todos los principales medios de comunicación se guardan en los archivos de cadenas binarias de ceros y unos, y se codifican de acuerdo con el tipo de archivo. </li></ul><ul><li>  </li></ul><ul><li>El término &quot;datos&quot; suele ser referenciados desde el punto de vista del equipo, mientras que el término &quot;multimedia&quot; se hace referencia en el punto de vista del usuario. </li></ul><ul><li>  </li></ul><ul><li>Tipos de bases de datos multimedia </li></ul><ul><li>  </li></ul><ul><li>Existen numerosos tipos diferentes de bases de datos multimedia, incluyendo: </li></ul><ul><li>La autenticación de bases de datos multimedia (también conocido como uno de Verificación de la base de datos multimedia, es decir, escaneo de retina), es una comparación de datos 1:1 </li></ul><ul><li>La identificación de bases de datos multimedia es una comparación de los datos de uno-a-muchos (es decir, contraseñas y números de identificación personal. </li></ul><ul><li>Un emergente tipo de base de datos multimedia, es la base de datos de biometría multimedia, que se especializa en la verificación automática humana sobre la base de los algoritmos de su perfil de conducta o fisiológica. </li></ul><ul><li>  </li></ul><ul><li>Este método de identificación es superior a la tradicional base de datos multimedia que requieren los típicos métodos de entrada de números de identificación personal y contraseñas. </li></ul><ul><li>  </li></ul><ul><li>Debido al hecho de que la persona identificada no necesita estar físicamente presente, donde la identificación de verificación se está llevando a cabo. Esto elimina la necesidad de que la persona que está siendo explorada para recordar un PIN o contraseña. Tecnología de identificación de huellas dactilares también se basa en este tipo de base de datos multimedia. </li></ul><ul><li>  </li></ul>
  38. 42. <ul><li>Dificultades de Bases de datos multimedia </li></ul><ul><li>  </li></ul><ul><li>La dificultad de hacer de estos diferentes tipos de bases de datos multimedia de fácil acceso para los seres humanos es la siguiente: La enorme cantidad de ancho de banda que consumen; </li></ul><ul><li>  </li></ul><ul><li>Mundialmente aceptado la creación de tratamiento de datos de plataformas, como Joomla, y las consideraciones especiales que estas nuevas estructuras de base de datos multimedia requieren. A nivel mundial la creación de una aceptación del sistema operativo, incluyendo el almacenamiento y gestión de los recursos necesario para dar cabida a programas de la gran hambre mundial de información multimedia. Bases de datos multimedia es necesario tener en cuenta diferentes interfaces humanas para manejar objetos en 3D interactivo, en una lógica percibido por el modo (es decir, SecondLife.com). La gran acogida de los recursos necesarios para utilizar la inteligencia artificial a su máximo potencial, incluido el ordenador de vista y métodos de análisis de sonido. El histórico de datos relacionales (es decir, los objetos binarios - BLOB desarrollado para bases de datos SQL para almacenar datos multimedia) no convenientemente apoyo basado en el contenido de las búsquedas de contenidos multimedia. </li></ul><ul><li>  </li></ul><ul><li>Esto se debe a la base de datos relacional no es capaz de reconocer la estructura interna de un objeto binario y por lo tanto los componentes internos de datos no se puede recuperar... </li></ul><ul><li>  </li></ul><ul><li>Básicamente, una base de datos relacional es un &quot;todo o nada&quot;, con estructura de archivos recuperados y almacenados en su conjunto, lo que hace que una base de datos relacional totalmente ineficaz para datos multimedia de fácil acceso para los seres humanos. A fin de acomodar los datos multimedia, un sistema de gestión de bases de datos, tales como una base de datos orientada a objetos (OODB) Objeto o Sistema de Gestión de Base de Datos Relacional (ORDBMS). </li></ul><ul><li>  </li></ul><ul><li>Ejemplos de objetos de Sistemas de Gestión de Base de Datos Relacional incluir Odaptor (HP): UniSQL, ODB-II, y las ilustraciones. La tapa del lado de la moneda, es que a diferencia de no datos multimedia almacenados en bases de datos relacionales, datos multimedia no puede ser fácilmente indexado, recuperados o clasificados, excepto por medio de marcadores sociales y el ranking de clasificación, por los seres humanos reales. Esto es posible gracias a los métodos de recuperación de metadatos, que se conocen como etiquetas y etiquetado. Esta es la razón por la que usted puede buscar para perros, como ejemplo, y una imagen aparece sobre la base de su texto los términos de búsqueda. Esto también se hace referencia a un modo esquemático. Mientras que haciendo una búsqueda con una imagen de un perro a otro perro localizar las imágenes que se denomina modo paradigmático. </li></ul><ul><li>  </li></ul><ul><li>Sin embargo, los metadatos de recuperación, búsqueda, e identificar los métodos gravemente en falta la posibilidad de definir adecuadamente el espacio y la textura uniforme de las descripciones, como las relaciones espaciales entre objetos 3D, etc. Basado en el contenido multimedia de recuperación de base de datos de búsqueda (CBR), sin embargo, se basa específicamente en este tipo de búsquedas. En otras palabras, si usted fuera a buscar una imagen o sub.-imagen, que a continuación se muestran otras imágenes o sub. Imágenes que de alguna manera relacionados con su búsqueda de la particular, por medio del color o patrón de relación, etc. </li></ul><ul><li>  </li></ul>
  39. 43. <ul><li>Base de Datos Espacio- Temporales </li></ul><ul><li>  </li></ul><ul><li>Los sistemas de bases de datos espacio-temporales integran características de las bases de datos espaciales o multidimensionales, con características de las bases de datos temporales, para permitir de manera eficiente, consultas que involucran ambos aspectos. Una aplicación común soportada por este modelo es la que realiza el seguimiento de objetos en movimientos que reportan su ubicación mediante dispositivos GPS. En otras aplicaciones, en lugar de cambiar de ubicación, los objetos pueden cambiar de forma, e incluso de identidad. Los DBMS tradicionales no tienen incorporadas las dimensiones de tiempo y espacio, por lo cual es difícil especificar consultas que combinan estos aspectos. Inicialmente se desarrollaron los sistemas de bases de datos espaciales, y los sistemas de bases de datos temporales, por separado. Comenzaremos viendo una introducción a cada una de ellas, para luego describir los sistemas de bases de datos espacio-temporales. </li></ul><ul><li>  </li></ul><ul><li>Bases de Datos Temporales </li></ul><ul><li>  </li></ul><ul><li>Estas bases de datos soportan algún tipo de dominio de tiempo manejado internamente por el sistema administrador de la base de datos. Existen tres clases de bases de datos temporales, en función de la forma en que manejan el tiempo: </li></ul><ul><li>  </li></ul><ul><li>De tiempo transaccional (transaction time): registran el tiempo de acuerdo al momento en que se almacena un hecho, es decir, en el orden en que se procesan las transacciones. Hay que notar, que este registro no necesariamente coincide con el orden real en que se produjeron los eventos. Más bien, es acorde al tiempo en que la base tomo conocimiento del evento. Debido a que se mantiene la historia de todos los estados consistentes de la base de datos, se puede realizar un rollback hacia cualquiera de estos estados anteriores. Las bases de datos de tiempo transaccional no permiten modificar el pasado. De tiempo vigente o valido (valid time): soportan el tiempo en que el hecho ocurrido en la realidad, que puede no coincidir con el momento de su registro. El orden de ocurrencia de los eventos puede diferir del orden de su registro. Este sistema permite realizar correcciones sobre los datos registrados, es decir que los estados anteriores se pueden modificar. En dicho caso, solo se mantiene la última versión de cada estado. </li></ul><ul><li>  </li></ul><ul><li>Bitemporales: integran la dimensión transaccional y la dimensión vigente, a través del versionado de los estados, es decir, cada estado se puede modificar para actualizar el conocimiento de la realidad pasada, presente o futura, pero esas modificaciones se realizan generando nuevas versiones de los mismos estados. </li></ul><ul><li>  </li></ul><ul><li>Bases de datos espaciales </li></ul><ul><li>  </li></ul><ul><li>Las bases de datos espaciales o multidimensionales ofrecen tipos de datos espaciales en su modelo de datos y un lenguaje de consulta para manipularlos. En un sistema informático estos datos espaciales se representan por puntos, líneas, polígonos, regiones, etc., que se les conoce con el nombre de objetos espaciales. Para responder a consultas relacionadas con propiedades espaciales, se implementan algoritmos eficientes sobre índices espaciales creados a partir de esos objetos. </li></ul>
  40. 44. <ul><li>Bases de datos espacio-temporales </li></ul><ul><li>  </li></ul><ul><li>Los sistemas de Bases de Datos Espacio- Temporales mantienen datos sobre el pasado y el presente y pueden, en algunos casos, realizar predicciones sobre el futuro. Las consultas típicas son de dos clases: time slice queries y time interval (o Windows) queries. Las primeras consultas se realizan sobre un momento dado, como por ejemplo buscar todos los objetos que estén en un área en un instante determinado, mientras que las segundas consultan un intervalo de tiempo, buscar todos los objetos que crucen un área entre el momento t1 y el momento t2. Algunas consultas solo tienen sentido sobre el pasado, otras solo sobre el presente, otras sobre el futuro, y otras sobre cualquiera de los tres. Los métodos de acceso en bases de datos espacios temporales se pueden clasificar en tres grupos, de acuerdo al tipo de consulta hacia el cual están orientados: </li></ul><ul><li>  </li></ul><ul><li>Recuperación de información histórica: estos métodos permiten responder a las consultas time slice query e interval query, sobre el pasado. </li></ul><ul><li>  </li></ul><ul><li>Recuperación de trayectoria: en este caso se quiere mantener la trayectoria que siguen objetos en movimiento. </li></ul><ul><li>  </li></ul><ul><li>Predicción de localización: estos métodos permiten calcular la posición futura de los objetos, en base a su posición actual y su patrón de movimiento. </li></ul><ul><li>  </li></ul><ul><li>Otra clasificación de los métodos de acceso es según la estrategia de implementación que utilizan: </li></ul><ul><li>  </li></ul><ul><li>Métodos que tratan el tiempo como otra dimensión . Son métodos que incorporan información sobre el tiempo en el índice Métodos que utilizan superposición (overlapping) de la estructura, para representar la secuencia de estados en función del tiempo </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×