Trabajo Base de Datos

Republica Bolivariana de Venezuela Ministerio del Poder Popular para la Educacion Instituto Universitario de Tecnologua

Views 136 Downloads 4 File size 290KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Republica Bolivariana de Venezuela Ministerio del Poder Popular para la Educacion Instituto Universitario de Tecnologua ͞Juan Pablo Perez Alfonzo͟

VVV V

Prof:

Integrantes:

Yelmin Perez

Joshua Sanchez. C.I.20.664.002 Rafael Ojeda. C.I. 21.030.958

21/01/201

 V V  V V  V V  Los sistemas de gestión de bases de datos , son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización. V 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 tales como: manejo de usuarios, seguridad, atomicidad e independencia física y lógica de los datos, entre otros.

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 interfases de bajo nivel haciendo que las tareas de creación de aplicaciones y mantenimiento de los datos fuesen controlables, pero aún complejas.

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.

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 adoptando y mejorando el concepto de clase pero su desarrollo se hace independiente de los DBMSs.

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. V V V V V V V V V V V V V V V V V

 V VV V

V V V V V V

'   V V V 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 estandar son:

ÖV

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 esquma conceptual e interno (Base de datos Almacenada).

ÖV

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.

ÖV

VDL (View Definition language): Lenguaje de Definición de Vistas. Es utilizado por el DBMS para especificar las vistas del usuario y sus correspondiencias con el esquema conceptual.

En las Bases de Datos Relacionales, el SQL, representa una combinación de los anteriores. ÖV

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. „V Tipos de DML's: ƒV De alto Nivel o No por procedimientos: SQL. ƒV De bajo Nivel o por procedimientos.

á V VV V   V V  V V V ÖV ÖV ÖV ÖV

V V V V V V V

Personal del DBA Usuarios Exporádicos Programadores de Aplicaciones Usuarios paramétricos

   Una transacción es una unidad lógica de trabajo, la cual no necesariamente consta de una sola operación en la base de datos; más bien, es en general una secuencia de varias de esas operaciones mediante la cual un estado consistente de la base de datos se transforma en otro estado consistente, sin conservar por fuerza la consistencia en todos los puntos intermedios. El punto importante aquí es asegurar que la base de datos regresa a un estado consistente al fin de la ejecución de una transacción. Una transacción es también la invocación a un procedimiento remoto (RPC) que ejecuta un conjunto de operaciones sobre una base de datos bajo el principio de todo o nada.

 V   V El  V    para la gestión de una base de datos es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de «relaciones». Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados «tuplas». Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar, esto es, pensando en cada    como si fuese una  que está compuesta por à à (cada fila de la tabla sería un registro o  ), y   (también llamadas ).

 V V

V El modelo de red es un Modelo de base de datos concebido como un modo flexible de representar objetos y su relación

Ejemplo de un Modelo de red. El inventor original del modelo de red fue Charles Bachman, y con ello fue desarrollado en una especificación estándar publicada en 1969 por el consorcio CODASYL.

 V V V  V Una   V V V  es un tipo de sistema de gestión de bases de datos que, como su nombre indica, almacenan la información en una estructura jerárquica que enlaza los registros en forma de estructura de árbol (similar a un árbol visto al revés), en donde un   à de información puede tener varios nodos . Esta relación jerárquica no es estrictamente obligatoria, de manera que pueden establecerse relaciones entre nodos  à . En este caso la estructura en forma de árbol se convierte en una estructura en forma de grafo dirigido. Esta variante se denomina  V V V V

.

 V V V Un modelo de datos es un lenguaje orientado a describir una Base de Datos. Típicamente un modelo de datos permite describir: Las estructuras de datos de la base: El tipo de los datos que hay en la base y la forma en que se relacionan. ƒV Las restricciones de integridad: Un conjunto de condiciones que deben cumplir los datos para reflejar correctamente la realidad deseada. ƒV Operaciones de manipulación de los datos: típicamente, operaciones de agregado, borrado, modificación y recuperación de los datos de la base. ƒV

Otro enfoque es pensar que un modelo de datos permite describir los elementos de la realidad que intervienen en un problema dado y la forma en que se relacionan esos elementos entre sí. No hay que perder de vista que una Base de Datos siempre está orientada a resolver un problema determinado, por lo que los dos enfoques propuestos son necesarios en cualquier desarrollo de software.

 VV  V V  Los modelos lógicos basados en objetos se usan para describir datos en el nivel conceptual y el externo. Se caracterizan porque proporcionan capacidad de estructuración bastante flexible y permiten especificar restricciones de datos. Los modelos más conocidos son el modelo entidad-relación y el orientado a objetos. V V

 VV  V V   Los modelos lógicos basados en registros se utilizan para describir los datos en los modelos conceptual y físico. A diferencia de los modelos lógicos basados en objetos, se usan para especificar la estructura lógica global de la BD y para proporcionar una descripción a nivel más alto de la implementación. Los modelos basados en registros se llaman así porque la BD está estructurada en registros de formato fijo de varios tipos. Cada tipo de registro define un número fijo de campos, o atributos, y cada campo normalmente es de longitud fija. La estructura más rica de estas BBDD a menudo lleva a registros de longitud variable en el nivel físico. Los modelos basados en registros no incluyen un mecanismo para la representación directa de código de la BD, en cambio, hay lenguajes separados que se asocian con el modelo para expresar consultas y actualizaciones. Los tres modelos de datos más aceptados son los modelos relacional, de red y jerárquico. El modelo relacional ha ganado aceptación por encima de los otros; representa los datos y las relaciones entre los datos mediante una colección de tablas, cuyas columnas tienen nombres únicos, las filas (tuplas) representan a los registros y las columnas representan las características (atributos) de cada registro. Este modelo se estudiará en la siguiente Unidad.

  V   V El álgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Cálculo relacional que es de tipo declarativo. Describe el aspecto de la manipulación de datos. Estas operaciones se usan como una representación intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta.

V V Un archivo es un elemento de información conformado por un conjunto de registros. Estos registros a su vez están compuestos por una serie de caracteres o bytes. Actualmente las organizaciones están utilizando bases de datos para generar resultados o para compartir dicha información con otros sistemas. Sin embargo, los principales componentes de las bases de datos son los archivos. Las formas en las cuales pueden organizarse los archivos, son archivos secuenciales o archivos directos. En los archivos secuenciales los registros están almacenados en una secuencia que dependen de algún criterio definido.

°   V VV V V !V

Clasificación por las funciones que ejecutan en un sistema de información. - Archivo Maestro.- Representa una vista estática de algún aspecto de una organización en algún punto en el tiempo. Contiene datos relativamente permanentes o datos de estado histórico. - Archivo de Transacciones.- Contiene los cambios a realizar en el archivo maestro y datos que añaden un nuevo registro; remueve o modifica un registro existente. - Archivo Reporte.- Contiene datos que son formateados para la presentación a un usuario. Este archivo puede ser enviado directamente a la impresora o a la pantalla. - Archivo de Trabajo.- Es un archivo temporal en un sistema y un medio para el paso de datos de un programa a otro. Normalmente estos archivos son transparentes para el usuario ya que se eliminan una vez realizada su función. - Archivo Programa.- También llamado archivo fuente, contiene instrucciones para el procesamiento da datos. Estas instrucciones están escritas en lenguaje de alto nivel. - Archivo de Respaldo o Protección.- Se trata de archivos de todas clases que no están en uso, y son conservados en un lugar adecuado para utilizarlos como referencia cuando haya necesidad de reconstruir un archivo maestro destruido por cualquier causa. Clasificación por el modo de acceso. Hay 3 formas de procesar los archivos: - Entrada.- Los datos del archivo se alimentan al procesador y se opera con ellos. - Salida.- Después de procesar los datos se graban en un archivo. - Entrada/Salida.- Un registro se lee del archivo, se actualiza con su nuevo valor y se pasar a su ubicación original; los datos originales se pierden. Clasificación conforme a la organización de los archivos. La técnica usada para representar y almacenar los registros en un archivo es llamada ͞Organización de Archivos͟. Existen cuatro técnicas fundamentales y son las siguientes. - Organización secuencial - Organización directa o relativa. - Organización secuencial con índice. - Organización multillave.

 V V V   V Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya planificadas. Permiten establecer interconexiones (relaciones) entre los datos (que están guardados en tablas), y a través de dichas conexiones relacionar los datos de ambas tablas, de ahí proviene su nombre:"Modelo Relacional". Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos  "V V V  V V V    V

El primer paso para crear una base de datos, es planificar el tipo de información que se quiere almacenar en la misma, teniendo en cuenta dos aspectos: la información disponible y la información que necesitamos. La planificación de la estructura de la base de datos, en particular de las tablas, es vital para la gestión efectiva de la misma. El diseño de la estructura de una tabla consiste en una descripción de cada uno de los campos que componen el registro y los valores o datos que contendrá cada uno de esos campos. Los campos son los distintos tipos de datos que componen la tabla, por ejemplo: nombre, apellido, domicilio. La definición de un campo requiere: el nombre del campo, el tipo de campo, el ancho del campo, etc. Los registros constituyen la información que va contenida en los campos de la tabla, por ejemplo: el nombre del paciente, el apellido del paciente y la dirección de este. Generalmente los diferentes tipos de campos que se pueden almacenar son los siguientes: Texto (caracteres), Numérico (números), Fecha / Hora, Lógico (informaciones lógicas si/no, verdadero/falso, etc.), imágenes. En resumen, el principal aspecto a tener en cuenta durante el diseño de una tabla es determinar claramente los campos necesarios, definirlos en forma adecuada con un nombre especificando su tipo y su longitud. V  V VV V V  V V V Los objetivos principales de un sistema de base de datos es disminuir los siguientes aspectos: ÖV

Redundancia e inconsistencia de datos:

Puesto que los archivos que mantienen almacenada la información son creados por diferentes tipos de programas de aplicación existe la posibilidad de que si no se controla detalladamente el almacenamiento, se pueda originar un duplicado de información, es decir que la misma información sea más de una vez en un dispositivo de almacenamiento. Esto aumenta los costos de almacenamiento y acceso a los datos, además de que puede originar la inconsistencia de los datos - es decir diversas copias de un mismo dato no concuerdan entre si

-, por ejemplo: que se actualiza la dirección de un cliente en un archivo y que en otros archivos permanezca la anterior. ÖV

Dificultad para tener acceso a los datos:

Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de los mismos. Supóngase un banco, y que uno de los gerentes necesita averiguar los nombres de todos los clientes que viven dentro del código postal 78733 de la ciudad. El gerente pide al departamento de procesamiento de datos que genere la lista correspondiente. Puesto que esta situación no fue prevista en el diseño del sistema, no existe ninguna aplicación de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema. ÖV

Aislamiento de los datos:

Puesto que los datos están repartidos en varios archivos, y estos no pueden tener diferentes formatos, es difícil escribir nuevos programas de aplicación para obtener los datos apropiados. ÖV

Anomalías del acceso concurrente:

Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta más rápido, muchos sistemas permiten que múltiples usuarios actualicen los datos simultáneamente. En un entorno así la interacción de actualizaciones concurrentes puede dar por resultado datos inconsistentes. Para prevenir esta posibilidad debe mantenerse alguna forma de supervisión en el sistema. Problemas de seguridad: La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna información, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificación y protección de los datos. En un banco por ejemplo, el personal de nóminas sólo necesita ver la parte de la base de datos que tiene información acerca de los distintos empleados del banco y no a otro tipo de información. ÖV

Problemas de integridad:

Los valores de datos almacenados en la base de datos deben satisfacer cierto tipo de restricciones de consistencia. Estas restricciones se hacen cumplir en el sistema añadiendo códigos apropiados en los diversos programas de aplicación.

° # VV V V  V V V Multitarea La ejecución de más de un programa a la vez en una computadora. Los sistemas operativos multitarea (Windows, OS/2, Unix y otros) permiten que múltiples operaciones se ejecuten simultáneamente. Sus mayores beneficios se obtienen cuando se realizan tareas largas y complejas (como consultar una base de datos). La cantidad de programas que pueden ejecutarse depende de la memoria disponible, de la velocidad de la CPU y de la eficiencia del sistema operativo. Multiusuario Un SO multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción. Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.Unix , Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo. 1.Mediante Módems 2.Mediante conexión de terminales a través de puertos seriales 3.Mediante Redes  #  Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción, el otro procesadorqueda liberado para procesar otras instrucciones simultáneamente. Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella. Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles. Windows NT de Microsoft soporta multiproceso simétrico. V V V V

@  V   V La integridad referencial es una propiedad deseable en las bases de datos. Gracias a la integridad referencial se garantiza que una entidad (fila o registro) siempre se relaciona con otras entidades válidas, es decir, que existen en la base de datos. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas. Todas las bases de datos relacionales gozan de esta propiedad gracias a que el software gestor de base de datos vela por su cumplimiento. En cambio, las bases de datos jerárquicas requieren que los programadores se aseguren de mantener tal propiedad en sus programas.



  V En bases de datos o en ficheros, la redundancia hace referencia al almacenamiento de los mismos datos varias veces en diferentes lugares. La redundancia de datos puede provocar problemas como: * Incremento del trabajo: como un mismo dato está almacenado en dos o más lugares, esto hace que cuando se graben o actualicen los datos, deban hacerse en todos los lugares a la vez. * Desperdicio de espacio de almacenamiento: ya que los mismos datos están almacenados en varios lugares distintos, ocupando así más bytes del medio de almacenamiento. Este problema es más evidente en grandes bases de datos.

Si una base de datos está bien diseñada, no debería haber redundancia de datos (exceptuando la redundancia de datos controlada, que se emplea para mejorar el rendimiento en las consultas a las bases de datos). @  V * Inconsistencia de datos: esto sucede cuando los datos redundantes no son iguales entre sí. Esto puede suceder, por ejemplo, cuando se actualiza el dato en un lugar, pero el dato duplicado en otro lugar no es actualizado.

# V En algunos lenguajes y especialmente en la teoría de bases de datos, una tupla se define como una función finita que  (asocia unívocamente) los nombres con algunos valores V V V

  V Son los objetos principales de bases de datos que se utilizan para guardar datos. Elemento disponible en el lenguaje HTML para la creación de recuadros rectangulares que pueden o no estar anidados y pueden o no contener celdas(recuadros más pequeños dentro de una tabla, pero que no se consideran tablas). Las tablas se utilizan para organizar, posicionar o dar mejor formato a los textos y gráficos en una página web. Pueden crearse gráficamente a través de un programa desarrollador de páginas web o manejando los tags correspondientes del lenguaje.

  V Una entidad es una clase generalizada de personas, lugares o cosas (objetos), para los cuales se recopilan, almacenan y mantienen datos. ° #V En las bases de datos, un campo es la mínima unidad de información a la que se puede acceder; un campo o un conjunto de ellos forman un registro, donde pueden existir campos en blanco, siendo éste un error del sistema operativo   V Un atributo es una característica de una entidad. El valor especifico de un atributo, conocido como     , se puede encontrar con los campos de registro que describe una entidad. Como ya se planteo, un conjunto de campos de una objeto especifico representa un registro. Cuna clave es un campo o grupo de campos en un registro que se utiliza para identificar a este.  V V V   V 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. '   V V # V V V es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.

'   V V V V V Es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos. Un Data Definition Language o Lenguaje de descripción de datos ( DDL ) es un lenguaje de programación para definir estructuras de datos . El DDL término fue introducido por primera vez en relación con el Codasyl modelo de base de datos, donde el esquema de la base de datos ha sido escrito en un lenguaje de descripción de datos que describen los registros, los campos, y "conjuntos" que conforman el usuario modelo de datos . Más tarde fue usado para referirse a un subconjunto de SQL, pero ahora se utiliza en un sentido genérico para referirse a cualquier lenguaje formal para describir datos o estructuras de información, como los esquemas XML . #V V V á V  ! Son usuarios no sofisticados que interactúan con el sistema mediante una programa de aplicación con una interfaz de formularios, donde puede rellenar los campos apropiados del formulario. Estos usarios pueden también simplemente leer informes generados de la base de datos. $  V V #  !VSon profesionales informáticos que escriben los programas de aplicación, utilizando herramientas para desarrollar interfaces de usuario, como las herramientas de  V# V V #  V%&, que facilitan crear los formularios e informes sin escribir directamente el programa. á V   !VInteractúan con el sistema sin programas escritos, usando el lenguaje de consulta de base de datos para hacer sus consultas. Los analistas que envían las consultas para explorar los datos en la base de datos entran en esta categoría, usando ellos las herramientas de #    V  ' V V ' V('$(V ' V  )  V $ ), o herramientas de  # V V . á V #  * !VSon usuarios sofisticados que escriben aplicaciones de bases de datos especializadas y adecuadas para el procesamiento de datos tradicional. Entre estas aplicaciones están los sistemas de diseño asistido por computadora, sistemas de base de conocimientos y sistemas expertos, sistemas que almacenan datos de tipos de datos complejos (como gráficos y de audio) y sistemas de modelado de entorno.      V V  V V V% &! Son las personas que tienen el control central del SGBD. V V

 V VV V

'   V V V V      V Es utilizado por el DBMS para especificar el esquema interno que corresponde a la Base de Datos Almacenada. '   V V V V V Es utilizado por el DBMS para especificar las vistas del usuario y sus correspondiencias con el esquema conceptual.

°    V Es simplemente la forma en que se relacionan lasEntidades, o expresa cuantas entidades se relacionan con otras entidades   V un    (también llamado  o # ) representa un objeto único de datos implícitamente estructurados en unatabla. En términos simples, una tabla de una base de datos puede imaginarse formada de O  y   o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura.  V V V  V V V la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática.    V V V  V V V La arquitectura se divide en tres niveles generales: interno, conceptual y externo. Nivel Interno: es el más cercano al almacenamiento físico, es decir, el que concierne a la manera como los datos se almacenan en realidad. Nivel Externo: es el más cercano a los usuarios, es decir, el que atañe a la manera cómo cada usuario ve los datos. Nivel Conceptual: es un nivel de mediación entre los otros dos.

 V V V   V Es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos (pej. un servidor corriendo 2 maquinas virtuales) e interconectados por una red de comunicaciones. Dichas BDD tienen la capacidad de realizar procesamiento autónomo, esto permite realizar operaciones locales o distribuidas. Un sistema de Bases de Datos Distribuida (SBDD) es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones de tal forma que, un usuario en cualquier sitio puede acceder los datos en cualquier parte de la red exactamente como si estos fueran accedidos de forma local.    V  VV  V)V V V La base de datos es una colección de archivos interrelacionados almacenados en conjunto sin redundancia y la dbms es un conjunto de númerosas rutinas de software interrelacionadas cada una de ellas es responsable de una determinada tarea. ° V)V VV #  V VV V V  V V V Los datos. Es lo que se conoce como base de datos propiamente dicha. Para manejar estos datos utilizamos una serie de programas. 2.- Los Programas. Son los encargados de manejar los datos, son conocidos como DBMS (Data Base Management System) o también SGBD (Sistema Gestor de Base de Datos). Los DBMS tienen dos funciones principales que son: - La definición de las estructuras para almacenar los datos. - La manipulación de los datos.

 V V V  V V V 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,          ). 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. 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.

Los ODBMS son una buena elección para aquellos sistemas que necesitan un buen rendimiento en la manipulación de tipos de dato complejos. 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. Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los   completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.

    V En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones. SQL:2003, es el estándar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene la compatibilidad con SQL92.

@   V V V Un sistema de BDOO provee una identidad única a cada objeto independiente almacenado en la base de datos. Esta identidad única suele implementarse con un identificador de objeto único, generado por el sistema, u OID. El valor de un OID no es visible para el usuario externo, sino que el sistema lo utiliza a nivel interno para identificar cada objeto de manera única y para crear y manejar las referencias entre objetos. La principal propiedad que debe tener un OID es la de ser inmutable; es decir, el valor del OID para un objeto en particular nunca debe cambiar. Esto preserva la identidad del objeto del mundo real que se está presentando. También es preferible que cada OID se utilice sólo una vez; esto es aunque un objeto se elimine de la Base de datos, su OID no se deberá asignar a otro objeto. Estas dos propiedades implican que el OID no debe depender del valor de ningún atributo del objeto, pues estos valores pueden cambiar. También suele considerarse inapropiado basar el OID en la dirección física del objeto en el almacenamiento, ya que una reorganización de los objetos de la base de datos podría cambiar los OID. Sin embargo, algunos sistemas sí usan la dirección física como OID para aumentar la eficiencia de la obtención de los objetos. Si la dirección física cambia, puede colocarse un apuntador indirecto en la dirección anterior, dando la nueva ubicación física del objeto. Un sistema de BDOO debe contar con algún mecanismo para generar los OID con la propiedad de inmutabilidad. Algunos modelos de datos OO requieren que todo se represente como un objeto, ya sea un valor simple o un objeto complejo; así, todo valor básico, como un entero, una cadena o un valor boleano, tiene un OID. Con ello dos valores básicos pueden tener diferentes OID, lo cual es muy útil en algunos casos. Por ejemplo, en algunas ocasiones se podría usar el valor entero 50 para representar un peso en Kilogramos, y en otras para referirse a la edad de una persona. Así podrían crearse dos objetos básicos con diferentes OID, y ambos tendrían el mismo valor básico de 50. Aunque resulta útil como modelo teórico, esto no es muy práctico porque puede obligar a generar demasiados OID. Por ello también, la mayor parte de los sistemas de BDOO permiten representar tanto objetos como valores. Todo objeto debe tener un OID inmutable, pero los valores no tienen OID y se representan así mismo. * Los objetos tienen identidades únicas, independientes de los valores de sus atributos. * La estructura orientada a objetos automáticamente impone las restricciones relacionales, generalmente más aplicables: dominio, llave integridad de entidad e integridad referencial.

Estructura de un BDOO El paradigma orientado a objetos se basa en el encapsulamiento de datos y del código relacionado con cada objeto en una sola unidad. Conceptualmente, todas las interacciones entre cada objeto y el resto del sistema se realizan mediante mensajes. Por lo tanto, la interfaz entre cada objeto y el resto del sistema se define mediante un conjunto de mensajes permitidos. En general, cada objeto esta asociado con: ÖV Un conjunto de variables que contiene los datos del objeto; las variables corresponden con los atributos del modelo E-R. ÖV Un conjunto de mensajes a los que responde; cada mensaje puede o no tener parámetros o tener uno o varios. ÖV Un conjunto de métodos, cada uno de los cuales es el código que implementa un mensaje; el método devuelve un valor como respuesta al mensaje. Mensaje en entorno OO no implica uso de mensajes físicos en redes informáticas. Por el contrario, hace referencia al intercambio de solicitudes entre los objetos, independientemente de los detalles correctos de su implementación. Se utiliza a veces la expresión invocar un método para detonar al hecho de enviar un mensaje a un objeto y la ejecución del método correspondiente.

V #V CLASES DE OBJETOS class empleado { / / Variables string nombre; strin dirección; date fecha de alta; int sueldo; / / Mensajes int sueldo-anual (); string obtenerNombre (); string obtenerDireccion (); int definirDireccion (string nueva-dir); int antigüedad(); }; Generalmente en una base de datos hay muchos objetos similares (se entiende que responden a los mismos mensajes, utilizan los mismos métodos y tienen variables del

mismo nombre y tipo). Por tanto sería un derroche definir por separado cada uno de estos objetos. Por tanto, los objetos se agrupan para formar clases. Todos los objetos de una clase comparten una definición común, pese a que se diferencien en los valores asignados a las variables. El concepto de clase del modelo orientado a objetos se corresponde con el concepto de entidad del modelo E-R.

El ejemplo Empleado muestra las variables y los mensajes que responden a los objetos de la clase; no se muestran aquí los métodos para el tratamiento de los mensajes. °   V V#V En las BDOO, los valores (o estados) de los objetos complejos se pueden construir a partir de otros objetos mediante ciertos constructores de tipos. Una forma de representar tales objetos es considerar a cada objeto como tripleta (i, c, v), donde i es un identificador de objeto único (el OID), c es un constructor (esto es, una indicación de cómo se construye el valor del objeto) y v es el valor (o estado) del objeto. Puede haber varios constructores, según el modelo de datos y el sistema OO. Los tres constructores básicos son: ÖV constructores de átomos. ÖV constructores de tuplas. ÖV constructores de conjuntos. Otros constructores de uso más común son los de listas y de arreglos. También existe un dominio D que contiene todos los valores atómicos básicos que están disponibles directamente en el sistema. Por lo regular estos incluyen los enteros, los números reales, las cadenas de caracteres, los tipos boléanos, las fechas y cualesquiera otros tipos de datos que el sistema maneje directamente.  #   V V#   V El encapsulamiento se centra en la implementación que da lugar al comportamiento observable de un objeto. El encapsulamiento se consigue a menudo mediante la ocultación de información, es decir, se basa en ocultar todos los secretos de un objeto que no contribuyen a sus características esenciales. El encapsulamiento proporciona, por tanto, barreras explícitas entre abstracciones diferentes. Existen dos visiones diferentes del encapsulamiento [ATK89], la primera y original que es la del lenguaje de programación; y la segunda que es la adaptación de esa visión para la base de datos.

Desde el punto de vista de las bases de datos, esto se traduce en el hecho de que un objeto abarca operaciones y datos, pero con una diferencia. En las bases de datos no está claro si la parte estructural es parte de la interfaz (depende del sistema), mientras que en los lenguajes de programación la estructura de datos es claramente parte de la implementación y no de la interfaz. Como se puede observar, el encapsulamiento proporciona una forma lógica de independencia de los datos, ya que se puede cambiar la implementación de un tipo sin cambiar ninguno de los programas que usan ese tipo.V   V Una operación que realiza acceso a los datos. Podemos definir método como un programa procedimental o procedural escrito en cualquier lenguaje, que está asociado a un objeto determinado y cuya ejecución sólo puede desencadenarse a través de un mensaje recibido por éste o por sus descendientes. Son sinónimos de 'método' todos aquellos términos que se han aplicado tradicionalmente a los programas, como procedimiento, función, rutina, etc. Sin embargo, es conveniente utilizar el término 'método' para que se distingan claramente las propiedades especiales que adquiere un programa en el entorno OOP, que afectan fundamentalmente a la forma de invocarlo (únicamente a través de un mensaje) y a su campo de acción, limitado a un objeto y a sus descendientes, aunque posiblemente no a todos. Si los métodos son programas, se deduce que podrían tener argumentos, o parámetros. Puesto que los métodos pueden heredarse de unos objetos a otros, un objeto puede disponer de un método de dos maneras diferentes: Ã  à Están incluídos dentro de la cápsula del objeto. Ã    à  Estan definidos en un objeto diferente, antepasado de éste (padre,"abuelo", etc.). A veces estos métodos se llaman métodos miembro porque el objeto los posee por el mero hecho de ser miembro de una clase. V $   V Es la resistencia de un objeto a variar en el tiempo, la idea de estas base de datos es que puedan recuperar los objetos creados o guardados.

+   V V#V)V,   V

Los esquemas de BDOO suelen necesitar un gran número de clases. Sin embargo, varias clases son parecidas entre sí. Para permitir la representación directa de parecidos entre las clases, hay que ubicarlas en una jerarquía de especializaciones. El concepto de jerarquía de clases es parecido al de especialización del modelo E-R. Las especializaciones de las clases son denominadas subclases; lo cual especifica atributos y métodos adicionales para una clase existente. Los objetos creados por medio de una sub clases heredan todos los atributos y métodos de la clase padre. Algunas de estas características heredadas pueden ellas mismas haber sido heredadas de clases más altas en la jerarquía. Ejemplo:

Ejemplo: (Grafico) Class persona { string nombre; strin dirección; }; Class cliente isa persona { int interés-prestamo; }; Class empleado isa persona{ date fecha de alta; int sueldo; }; Class secretaria isa empleado { int velocidad; int horas-trabajadas V V V V V V V V

   V V Durante la ejecución de un programa, los diversos objetos que lo componen han de interactuar entre sí para lograr una serie de objetivos comunes. Existen varios tipos de relaciones que pueden unir a los diferentes objetos, pero entre ellas destacan las relaciones de: asociación, todo/parte, y generalización/especialización.         Serían relaciones generales, en las que un objeto realiza llamadas a los servicios (métodos) de otro, interactuando de esta forma con él. Representan las relaciones con menos riqueza semántica.       à  Muchas veces una determinada entidad existe como conjunción de otras entidades, como un conglomerado de ellas. La orientación al objeto recoge este tipo de relaciones como dos conceptos; la agregación y la composición. En este tipo de relaciones un      se integra en un     . La diferencia entre agregación y composición es que mientras que la composición se entiende que dura durante toda la vida del objeto componedor, en la agregación no tiene por qué ser así. Esto se puede implementar como un objeto (    ) que cuenta entre sus atributos con otro objeto distinto (     ).

     à        A veces sucede que dos clases tiene muchas de sus partes en común, lo que normalmente se abstrae en la creación de una tercera clase ( à de las dos) que reúne todas sus características comunes. El ejemplo más extendido de este tipo de relaciones es la herencia, propiedad por la que una clase (    ) recoge aquellos métodos y atributos que una segunda clase (    à ) ha especificado como "heredables". Este tipo de relaciones es característico de la programación orientada a objetos. En realidad, la generalización y la especialización son diferentes perspectivas del mismo concepto, la generalización es una perspectiva ascendente ( Ã), mientras que la especialización es una perspectiva descendente (Ã  ).

 V° # V Los objetos se consideran complejos porque requieren un área de almacenamiento sustancial y no forman parte de los tipos de datos estándar que suelen ofrecer los SGBD. Puesto que el tamaño de los objetos es considerable, un SGBD podría obtener una porción del objeto y proporcionarla al programa de aplicación antes de obtener todo el objeto. El SGBD podría también usar técnicas de almacenamiento intermedio y caché para obtener por anticipado porciones del objeto, antes de que el programa de aplicación necesite tener acceso a ellas. En un SGBOO, esto puede lograrse definiendo un nuevo tipo de datos abstracto para los objetos no interpretados y suministrados los métodos para seleccionar, comprar y exhibir tales objetos. Como un SGBOO permite a los usuarios crear nuevos tipos, y como un tipo incluye tanto estructura como operaciones, podemos considerar que un SGBOO tiene un sistema de tipos extensibles. Podemos crear bibliotecas de nuevos tipos definiendo su estructura y operaciones, incluso con tipos complejos. Muchos SGBDOO pueden almacenar y obtener objetos no estructurados extensos en forma de cadenas y caracteres o de bits, que se pueden pasar ͞tal cual͟ al programa de aplicación para que las interprete. Es posible almacenar y manipular objetos complejos tanto estructurados como no estructurados.V  V-V V-V )V Definición de Datos: El esquema define los tipos y las clases de objetos del sistema. Usando los tipos atómicos podemos definir los tipos de objetos. Los tipos atómicos pueden ser booleanos, de carácter, entero, real, de cadena y de bit. Los constructores son tuplas, listas, conjuntos y conjuntos únicos. En O2, se realiza una distinción entre valores y objetos. Mientras que un valor tiene sólo un tipo y se representa a sí mismo, un objeto pertenece a una clase y por tanto tiene un tipo y un comportamiento especificado por los métodos de la clase. En adición, un objeto tiene un OID y un estado, mientras que un valor no tiene OID.

El lenguaje que usa es el O2C, que sirve para definir clases, métodos y tipos, y para crear objetos y valores. Los objetos son persistentes o transistorios.

O2 permite también la herencia múltiple, donde una clase hereda el tipo y los métodos de dos o más clases. Los vínculos clase/subclase y la herencia se especifican en O2 usando la palabra inherit en la declaración de subclase. Manipulación de Datos: Las aplicaciones en O2 pueden crearse de dos formas con lenguajes de programación. En un primer caso, se puede usar los lenguajes de consulta y de programación propios de O2, O2SQL y O2C. Por otro lado se puede usar O2 como sistema de almacenamiento de objetos persistentes para otro lenguaje autónomo, como C++, y crear la aplicación en ese lenguaje. Panorama sobre la arquitectura del sistema O2: El O2Engine se encarga en gran parte de la funcionalidad del SGBD, como proporcionar recursos de almacenamiento, obtención y actualización de objetos almacenados persistentemente que pueden ser compartidos por múltiples programas. Pone en práctica los mecanismos de control de concurrencia, recuperación y seguridad comunes en los sistemas de bases de datos. En el nivel funcional, O2Engine tiene tres componentes principales. El componente de almacenamiento, en el nivel más bajo, es una extensión de un sistema de almacenamiento llamado WISS. La implementación de este nivel está dividida entre el cliente y el servidor. El gestor de objetos se encarga de estructurar objetos y valores, formar grupos de objetos relacionados en páginas de disco, indizar objetos, mantener la identidada de los objetos, efectuar operaciones con objetos, etc. ' V   V VV VV V V .V Primer paso: Crear una clase OO para cada clase EER. El tipo de la clase Oo deberá incluir todos los atributos de la clase EER mediante un constructor de tupla en el nivel superior del tipo. Los atributos multivaluados se declaran a través de los constructores de bolsa, de conjunto o de lista. Si los valores del atributo multivaluado de un objeto deben estar ordenados, se eligirá el constructor de lista; si se permiten duplicados, deberá escogerse el constructor de bolsa. Los atributos compuestos se declaran con un constructor de tupla. Segundo paso: Añadir atributos de referencia para cada vínculo binario a las clases OO que participen del vínculo. Los atributos pueden crearse en una dirección o en ambas; serán monovaluados para los vínculos binarios en la dirección 1:1 o N:1 y con valor de conjunto o con valor de lista para los vínculos en la dirección 1:N o M:N. Si un vínculo binario se representa con referencias en ambas direcciones, se debe declarar que cada referencia es el inverso de la otra, si existe el recurso para hacerlo. Si hay atributos de

vínculo, puedo usarse un constructor de tupla para crear una estructura de la forma, la cual se incluye en lugar del atributo de referencia. Tercer paso: Incluir métodos apropiados para cada clase. Éstos no están disponibles en el esquema ERR y se deberán agregar al diseño de la base de datos según se necesiten. Todo método constructor deberá incluir código que verifique cualesquier restricciones que se deben cumplir al crearse un nuevo objeto. Todo método destructor deberá verificar cualesquier restricciones que pudieran violarse al eliminarse el objeto. Cuarto paso: Una clase OO que corresponda a una subclase en el esquema EER heredará el tipo y los métodos de su o sur superclases en el esquema OO. Quinto paso: Los tipos de entidades débiles que no participan en ningún otro vínculo además de su vínculo de identificación se pueden transformar como si fueran atributos multivaluados compuestos del tipo de entidades propietario, empleando el constructor set(tuple()) Sexto paso: Los vínculos n-arios con n>2 pueden transformarse a un tipo de objetos aparte, con referencias apropiada a cada uno de los tipo de objetos participantes. Estas referencias se basan en hacer corresponder un vínculo 1:N de cada uno de los tipos de entidades participantes con el vínculo n-ario. '   V  V V V Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos. Cabe notar que los conceptos definidos en la programación orientada a objetos no son una condición sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar su definición como lenguaje orientado a objetos. Quizás las condiciones mínimas necesarias las provee el formalismo que modeliza mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos. Siguiendo esa idea, cualquier lenguaje que permita la definición de tipos de datos, de operaciones nuevas sobre esos tipos de datos, y de instanciar el tipo de datos podría ser considerado orientado a objetos. Esta definición concuerda incluso con ciertos ejemplos prácticos, que no son considerados dentro de la programación orientada a objetos, pero que podrían serlo. Por ejemplo, la programación de interfaces gráficas de usuario para los sistemas XWindow utilizando infraestructuras de funciones y APIs como Motif, Xview y Xlib, son realizadas usualmente en lenguaje C, pero organizando el código en una manera que "parecen objetos" (los Widgets).

Ejemplos de lenguajes orientados a objeto C++ Objective C Java Smalltalk Eiffel Lexico (en castellano) Ruby Python OCAML Object Pascal CLIPS Visual .net Actionscript COBOL Perl C# Visual Basic.NET PHP Simula Delphi PowerBuilder

'   V V$ V$   V

Un lenguaje de programación persistente es un lenguaje de programación ampliado con las construcciones para manejar datos persistentes. Distingue con el SQL encajado por lo menos de dos maneras: En una lengua persistente del programa, el lenguaje de interrogación se integra completamente con la lengua del anfitrión y ambo parte el mismo tipo sistema. Cualquier cambio del formato requerido en bases de datos se realiza transparente. La comparación con el SQL encajado donde (1) anfitrión y DML tienen diverso tipo sistemas, conversión de código funciona fuera del tipo sistema de OO, y por lo tanto tiene una ocasión más alta del tener errores desapercibidos; la conversión del formato (de 2) toma una cantidad substancial de código. Usando el SQL encajado, un programador es responsable de código explícito de la escritura traer datos en memoria o almacenar datos de nuevo a la base de datos. En una lengua persistente del programa, un programador puede manipular datos persistentes sin tener que escribir tal código explícitamente.  V V V

  V Un sistema de base de datos deductiva, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. Las bases de datos deductivas son también llamadas bases de datos lógicas, a raíz de que se basa en lógica matemática. Este tipo de base de datos surge debido a las limitaciones de la Base de Datos Relacional de responder a consultas recursivas y de deducir relaciones indirectas de los datos almacenados en la base de datos. / V$'0'V La notación Prolog/Datalog se basa en provee predicados con nombres únicos. Un predicado tiene un significado implícito, sugerido por sus nombre, y un número fijo de argumentos. Si todos los argumentos son valores constantes, el predicado simplemente dice que un determinado hecho es verdadero. Por otro lado, si el predicado tiene variables como argumentos, se le considera una consulta o bien parte de una regla o restricción.

Una regla tiene la forma cabeza:-cuerpo y por lo regular tiene un solo predicado a la izquierda del símbolo :- (llamado cabeza, o miembro izquierdo o conclusión de la regla) y uno a más predicados a la derecha del símbolo :- (llamados cuerpo, o miembro derecho o premisa de la regla). Decimos que un predicado cuyos argumentos son constantes es un predicado base; también nos referimos a él como predicado de ejemplares. Los argumentos de los predicados que aparecen en una regla por lo regular incluyen un cierto número de símbolos variables, aunque los predicados también contienen constantes como argumentos. Una regla especifica que, si una

asignación o enlace particular de valores constantes a las variables del cuerpo hace que todos los predicados RHS sean verdaderos, también hace que la cabeza sea verdadero usando la misma asignación de valores constantes a las variables. Por tanto, una regla nos ofrece una forma de generar hechos nuevos que son ejemplares de la cabeza de la regla. Estos hechos nuevos se basan en hecho que ya existen y que corresponden a los ejemplares de los predicados del cuerpo de la regla. Al incluir múltiples predicados en el cuerpo de una regla, aplicamos implícitamente el operador and lógico a esos predicados. Así, las comas entre los predicados RHS pueden leerse como conjunciones.

Un sistema Prolog contiene varios predicados integrados que el sistema puede interpretar directamente. Estos suelen incluir el operador de comparación de igualdad = (X,Y), que devuelve el valor verdadero si X y Y son idénticos y que también puede escribirse X=Y usando la notación infija estándar. Otros operadores de comparación para números, como =, se pueden tratar como funciones binarias. Las funciones aritméticas como +,-,* y / se pueden usar como argumentos en los predicados en Prolog, aunque Datalog no permite funciones del tipo de las operaciones aritméticas como argumentos; de hecho, ésta es una de las diferencias principales entre Prolog y Datalog.

$ V V'V En Datalog, al igual que en otros lenguajes basados en lógica, los programas se construyen a partir de objetos básicos llamados fórmulas atómicas. Para definir la sintaxis de los lenguajes basados en lógica se acostumbra escribir la sintaxis de las fórmulas atómicas e indicar cómo pueden combinarse para formar un programa. En Datalog, las fórmulas atómicas son literales de la forma p(a1,a2,...,an) donde p es el nombre del predicado y n es el número de argumentos de dicho predicado. Diferentes símbolos de predicado pueden tener diferentes números de argumento, y al número de argumentos n de un predicado p se le llama la aridad de p. Los argumentos pueden ser valores constantes o nombres de variables. Como se mencionó antes, usamos la convención de que los valores constantes o bien son numéricos o bien comienzan con una letra minúscula, en tanto que los nombres de variables siempre comienzan con una letra mayúscula.

Datalog incluyen varios predicados integrado que también pueden servir para construir fórmulas atómicas. Estos predicados son de dos tipos principales: los predicados de

comparación binarios = sobre dominios ordenados o no ordenados. Éstos pueden usarse como predicados binarios con la misma sintaxis que los demás predicados. Cabe señalar que, como los dominios de estos predicados son potencialmente infinitos, se deben usar con cuidado en las definiciones de reglas. Una literal es una fórmula atómica según la definición que dimos, y se llama literal positiva, o bien una fórmula atómica precedida por not. Esta última es una fórmula atómica negada, denominada literal negativa. Los programas en Datalog pueden considerarse como un subconjunto de las fórmulas del cálculo de predicados, que son un tanto parecidas a las fórmulas del cálculo relacional de dominios. En Datalog, empero, estas fórmulas se convierten primero en lo que se conoce como forma clausal antes de expresarse en Datalog; y sólo pueden usarse en Datalog fórmulas dadas en una forma clausal restringida, llamadas cláusulas de Horn

@ # V V  V Encontramos dos teorías de interpretación de las bases de datos deductivas: Teoría de Demostración: consideramos las reglas y los hechos como axiomas. Los hechos son axiomas base que se consideran como verdaderos y no contienen variables. Las reglas son axiomas deductivos ya que se utilizan para deducir nuevos hechos. Teoría de Modelos: una interpretación es llamada modelo cuando para un conjunto específico de reglas, éstas se cumplen siempre para esa interpretación. Consiste en asignar a un predicado todas las combinaciones de valores y argumentos de un dominio de valores constantes dado. A continuación se debe verificar si ese predicado es verdadero o falso. @  àà    à   Existen dos alternativas principales para interpretar el significado teórico de las reglas: por la teoría de demostración y por la teoría de modelos. En los sistemas prácticos, es mecanismo de inferencia que tiene el sistema, define la interpretación exacta, que pudiera no coincidir con ninguna de las dos interpretaciones teóricas. El mecanismo de inferencia es un procedimiento computacional y por tanto provee una interpretación computacional del significado de las reglas. Una interpretación es la llamada interpretación de reglas por la teoría de demostraciones. En ella se considerarán los hechos y las reglas como enunciados verdades o axiomas. Los axiomas base no contienen variables. Los hechos son axiomas base que se dan por ciertos. Las reglas se llaman axiomas deductivos, ya que pueden

servir para deducir hechos nuevos. Con los axiomas deductivos se pueden construir demostraciones que deriven hechos nuevos a partir de los ya existentes. Los axiomas deductivos, junto con las restricciones de integridad constituyen lo que en ocasiones se denomina base de datos intencional, y la base de datos extensional junto con la intencional constituyen lo que suele llamarse Base de Datos Deductivas; aunque en realidad, quien se encarga de las deducciones es el DBMS, no la base de datos. La interpretación por la teoría de demostraciones ofrece un enfoque por procedimientos o computacional para calcular una respuesta a la consulta V  . Al proceso de demostrar si un determinado hecho (teorema) se cumple se le conoce también como demostración de teoremas. El segundo tipo de demostración se llama interpretación por la teoría de modelos. Aquí, dado un dominio finito o infinito de valores constantes, se le asigna a un predicado todas las combinaciones posibles de valores como argumentos. Después se debe determinar si el predicado es verdadero o falso. En general, basta con especificar las combinaciones de argumentos que hacen que el predicado sea verdadero, y decir que todas las demás combinaciones hacen que sean falso. Si esto se hace con todos los predicados, se habla de una interpretación del conjunto de predicados. A una interpretación se le llama modelo para un conjunto específico de reglas si esas reglas siempre se cumplen en esa interpretación; es decir, para cualesquiera valores que se asignen a las variables de las reglas, la cabeza de reglas es verdadera cuando sustituimos los valores de verdad asignados a los predicados en el cuerpo de las reglas según esa interpretación. De este modo, siempre que se aplica una sustitución (enlace) a las variables de las reglas, si todos los predicados del cuerpo de un arreglo son verdaderos en esa interpretación, el predicado de la cabeza de la regla también debe ser verdadero. Cabe señalar que una regla se viola si un determinado enlace de constantes en a las variables hace verdaderos todos los predicados del cuerpo de la regla, pero hace que el predicado de la cabeza de la regla sea falso.

   V V V@   V#  V$ V' V Existen principalmente dos tipos de inferencia computacional basados en la interpretación de las reglas por la teoría de la demostración: Mecanismo de inferencia ascendente: También llamado encadenamiento hacia delante o resolución ascendente. La máquina de inferencia parte de los hechos y aplica las reglas para generar hechos nuevos. Conviene usar una estrategia de búsqueda para generar sólo los hechos que sean pertinentes a una consulta. Mecanismo de inferencia descendente: También llamado encadenamiento hacia atrás o resolución descendente. Parte del predicado que es el objetivo de la consulta e

intenta encontrar coincidencias con las variables que conduzcan a hechos válidos de la base de datos. Retrocede desde el objetivo buscado para determinar hechos que lo satisfacen. Si no existieran los hechos que buscamos, el sistema entonces buscará la primera regla cuya cabeza (LHS) tenga el mismo nombre de predicado que la consulta.

$ V V'V Datalog es el lenguaje utilizado para la manipulación de las bases de datos deductivasy es sintácticamente un subconjunto del lenguaje Prolog . Hay dos tipos de Datalog: con recursión y sin recursión. Datalog sin recursión tiene el mismo poder expresivo que el álgebra relacional. Datalog con recursión 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 en su semántica operacional es diferente. La interpretación de una colección de predicados asigna cierto o falso a cada posible instancia de los predicados, donde los argumentos se escogen de un conjunto infinito de constantes. La interpretación se representa habitualmente por el conjunto de instancias verdaderas. Datalog evalúa las consultas mediante la evaluación de cada regla y cada regla es evaluada examinando todos los hechos, ya sean hechos almacenados o hechos derivados, que unifican cada predicado en el cuerpo de una regla. Si alguna colección de hechos unifica con cada predicado en el cuerpo de una regla, se produce un nuevo hecho que corresponderá al encabezado de la regla V V V V V V  V''V El proyecto Logic Data Languaje (Lenguaje Lógico de Dato: LDL) de Microelectronics and Computer Corporation (MCC) se inició en 1984 con dos objetivos primarios:

Crear un sistema que extendiera el modelo relacional y a la vez aprovechara algunas de las características positivas de un SGBDR (Sistema de Gestión de Base de Datos Relacionales). Mejorar la funcionalidad de un SGBD de modo que operara como un SGBD deductivo y además permitiera la creación de aplicaciones de propósito general. Ahora el sistema resultante es un SGBD deductivo que se encuentra en el mercado.     V  El sistema LDL se ha utilizado en los siguientes dominios de aplicación:     à   este dominio implica modelar la estructura, los procesos y las restricciones dentro de una empresa. Los datos relacionados con ella pueden resultar en modelo ER extendido que contiene cientos de entidades y vínculos y miles de atributos. Es posible desarrollar varias aplicaciones útiles para los diseñadores de nuevas aplicaciones (así como para los gerentes) a partir de esta ͞metabase de datos͟, que contiene información tipo diccionario a cerca de toda la empresa. à     à    este dominio implica formular una hipótesis, traducirla a un conjunto de reglas LDL y una consulta, y luego ejecutar la consulta contra los datos para probar la hipótesis. El proceso se repite reformulando las reglas y la consulta. Esto se ha aplicado al análisis de datos de genoma en el campo de la microbiología. El dragado de datos consiste en identificar las secuencias de DNA a partir de autorradiografías digitalizadas de bajo nivel obtenidas de experimentos con bacterias E. coli.     O à el grueso del software para una aplicación se desarrolla en código estándar por procedimientos, y una pequeña fracción se basa en reglas y se codifica en LDL. Las reglas dan origen a una base de conocimientos que contienen los siguientes elementos: Una definición de cada módulo C empleado en el programa. Un conjunto de reglas que define las formas en que los módulos pueden exportar / importar funciones, restricciones, etc. La ͞base de conocimientos͟ puede servir para tomar decisiones referentes a la reutilización de subconjuntos del software. Los módulos pueden recombinarse para satisfacer tarea específicas, en tanto se satisfagan las reglas pertinentes. Se está experimentando con esto en el software bancario.

 V V V  VV En muchas aplicaciones, la base de datos debe evolucionar independientemente de la intervenci´on del usuario como respuesta a un suceso o una determinada situaci´on. En los sistemas de gesti´on de bases de datos tradicionales (pasivas), la evoluci´on de la base de datos se programa en el c´odigo de las aplicaciones, mientras que en los sistemas de gesti´on de bases de datos activas esta evoluci´on es aut´onoma y se deĮne en el esquema de la base de datos.

El poder especiĮcar reglas con una serie de acciones que se ejecutan autom´aticamente cuando se producen ciertos eventos, es una de las mejoras de los sistemas de gesti´on de bases de datos que se consideran de gran importancia desde hace alg´un tiempo. Mediante estas reglas se puede hacer respetar reglas de integridad, generar datos derivados, controlar la seguridad o implementar reglas de negocio. De hecho, la mayor´ýa de los sistemas relacionales comerciales disponen de disparadores (triggers). Se ha hecho mucha investigaci´on sobre lo que deber´ýa ser un modelo general de bases de datos activas desde que empezaron a aparecer los primeros disparadores. El modelo que se viene utilizando para especiĮcar bases de datos activas es el modelo eventoʹ condici´onʹacci´on. Mediante los sistemas de bases de datos activas se consigue un nuevo nivel de independencia de datos: la independencia de conocimiento. El conocimiento que provoca una reacci´on se elimina de los programas de aplicaci´on y se codiĮca en forma de reglas activas. De este modo, al encontrarse las reglas deĮnidas como parte del esquema de la base de datos, se comparten por todos los usuarios, en lugar de estar replicadas en todos los programas de aplicaci´on. Cualquier cambio sobre el comportamiento reactivo se puede llevar a cabo cambiando solamente las reglas activas, sin necesidad de modiĮcar las aplicaciones. Ademas, mediante los sistemas de bases de datos activas se hace posible el integrar distintos subsistemas (control de accesos, gesti´on de vistas, etc.) y se extiende el ´ambito de aplicaci´on de la tecnolog´ýa de bases de datos a otro tipo de aplicaciones. Uno de los problemas que ha limitado el uso extensivo de reglas activas, a pesar de su potencial para simpliĮcar el desarrollo de bases de datos y de aplicaciones, es el hecho de que no hay t´ecnicas f´aciles de usar para diseȂnar, escribir y veriĮcar reglas. Por ejemplo, es bastante dif´ýcil veriĮcar que un conjunto de reglas es consistente, es decir, que no se contradice. Tambi´en es dif´ýcil garantizar la terminaci´on de un conjunto de reglas bajo cualquier circunstancia. Para que las reglas activas alcancen todo su potencial, es necesario desarrollar herramientas para diseȂnar, depurar y monitorizar reglas activas que puedan ayudar a los usuarios en el diseȂno y depuraci´on de sus reglas.

 V V V 

 V El nacimiento de la multimedia ha renovado por completo la idea de base de datos. Si bien desde siempre se han visto como almacenes de información (textual y numérica), regidos por un conjunto de normas que le aportaban semántica. Con la llegada de la Multimedia el abanico de posibilidades complementa la representación de los objetos que se desean almacenar. Este tipo de bases de datos tienen mucha relación con los SGBD objeto relacionales (SGBDOR) y los orientados a objetos (SGBDOO) ya que pueden almacenar tipos de datos multimedia. Las bases de datos multimedia están en un contexto que además de los datos se le incluye la nueva característica de la que se pueden tener variabilidad espacial y temporal. Por lo tanto, un documento introducido en una base de datos multimedia es una composición temporal, en la cual hay que introducir los diferentes tipos de datos, tanto como las relaciones de configuración y temporales existentes entre ellos. Los datos deben estar sincronizados, controlando tanto su estado como su comportamiento. Todos los factores que condicionan las Bases de Datos Multimedia les obligan a tener dos características principales: La disponibilidad de bases de datos avanzadas, en un entorno de fácil utilización por parte del usuario. El establecimiento de redes de telecomunicaciones de alta velocidad. Existen dos tipos fundamentales de bases de datos multimedia, que son las bases de datos referenciales, y las descriptivas. BBDD Referenciales Son bases de datos que se encargan de almacenar datos concernientes a información sobre archivos multimedia, como video o música. Esta información almacenada podría tratarse de datos tales como el autor y título, el formato, la duración, etc. BBDD Descriptivas Estas bases de datos no son tan comunes como las referenciales, y todavía se encuentran en proceso de desarrollo e investigación, puesto que su función es la de analizar el contenido que almacenan, con el fin de poder aportar información sobre él. Por eso, en el ámbito multimedia no es una tarea sencilla desarrollar este tipo de sistemas, puesto que analizar tanto imágenes como sonido, no es trivial.

 V V V°    V Se pueden establecer diferentes tipologías para caracterizar los diferentes modelos de bases de datos documentales: SEGÚN EL ORGANISMO PRODUCTOR Las bibliotecas y centros de documentación de universidades y organismos e instituciones públicas de investigación elaboran gran cantidad de recursos de información: ͻ Bases de datos de acceso público, sean gratuitas o no. ͻ Bases de datos de acceso interno, con información de acceso restringido. Los centros de documentación, bibliotecas y archivos de empresas privadas pueden elaborar distintos tipos de sistemas de información: ͻ Bases de datos de uso interno, para facilitar la circulación de información dentro de la empresa. Ocasionalmente, ofrecen dicho servicio al exterior: usuarios particulares o instituciones. ͻ Bases de datos comerciales, diseñadas específicamente para ser utilizadas por usuarios externos. ͻ Bases de datos realizadas por cooperación en red: se trata de sistemas de información cuya elaboración es compartida por diversas instituciones. Algunas bases da datos internacionales se elaboran a través de este sistema de trabajo, con diversos centros nacionales responsables de la información perteneciente a cada país. SEGÚN EL MODO DE ACCESO ͻ Bases de datos de acceso local. Para consultarlas es necesario acudir al organismo productor, a su biblioteca o centro de documentación. Pueden ser consultables en monopuestos o en varios puestos de una red local. ͻ Bases de datos en CD-ROM. Pueden adquirirse mediante compra o suscripción, bien directamente por un particular o por una biblioteca o centro de documentación que permita su consulta a sus usuarios. En algunas instituciones se instalan diferentes CD-ROM en una red local para permitir su consulta desde cualquier ordenador conectado a la misma. ͻ Bases de datos en línea. Pueden ser consultables desde cualquier ordenador conectado a través de un servidor de Internet. La consulta puede ser libre (gratuita) o exigir la firma de un contrato.

Una misma base de datos puede tener acceso local y, además, una edición en CD-ROM y un sistema de acceso en línea. Sin embargo, puede haber diferencias en el contenido presente en cada uno de los formatos o en el grado de actualización de la información. Por ejemplo, el productor de un base de datos puede ofrecer la conexión en línea a la base de datos completa con actualización diaria y, en cambio, editar un CD-ROM que tan sólo contenga los últimos cinco años de información y se actualice semestralmente.

SEGÚN SU COBERTURA TEMÁTICA Y EL DESTINATARIO Aunque las bases de datos documentales pueden contener información sobre cualquier tema, las que nos interesan en este tema son las ͞Bases de datos científico-tecnológicos͟, que contienen información destinada a los investigadores de cualquier ámbito científico o técnico. A su vez, este grupo puede dividirse en: ͻ Bases de datos multidisciplinares, que abarcan varias disciplinas científicas o técnicas. ͻ Bases de datos especializadas, que recopilan y analizan documentos referentes a una disciplina concreta: investigación química, biomédica, energética, medioambiental, agroalimentaria, etc. SEGÚN SU COBERTURA DOCUMENTAL ͻ Bases de datos centradas en un único tipo de documento. Su objetivo es recopilar permitir la localización de un tipo documental muy concreto. Hay bases especializadas en patentes, tesis doctorales, informes, artículos de revista, etc. Como ejemplo de este modelo pueden citarse: ͻ La base de datos NTIS (National Technical Information Service), especializada en documentos técnicos oficiales de EEUU. ͻ Las bases de datos especializadas en tesis doctorales (Disertation Abstracts), de carácter internacional. ͻ Bases de datos que reúnen varios tipos de documentos. Su objetivo es dar información sobre una disciplina, incorporando para ello diferentes tipologías documentales. Como ejemplo de este modelo puede citarse la base de datos ͞Energy Science and Technology͟, especializada en energía, que recoge referencias bibliográficas de artículos de revista, abstracts, congresos, monografías, informes, tesis, etc.

SEGÚN SUS ANÁLISIS DOCUMENTAL ͻ Bases de datos de sumarios o sin análisis de contenido. Se componen de referencias bibliográficas sencillas, en las cuales el productor se limita a grabar los datos de la propia fuente y no realiza ningún análisis del contenido. Incorporan solamente los datos descriptivos, fundamentales para localizar el documento, presentes en el sumario: autor, título y datos de la fuente. En ocasiones, puede contener el resumen editado con el propio documento original, generalmente elaborado por el propio autor. Un ejemplo de este modelo es el ͞Current Contents͟ del Institute for Scientific Information. También podrían incluirse dentro de este modelo los servicios de suscripción a revistas electrónicas establecidas por empresas de distribución de publicaciones periódicas. ͻ Catálogos de bibliotecas. Son bases de datos que responden estrictamente a los fondos contenidos en una biblioteca o red de bibliotecas (catálogos colectivos). Tienen una alta homogeneidad, gracias a la aplicación de normas internacionales de catalogación. ͻ Bases de datos con análisis documental más completo. Son sistemas de información que incorporan un mayor número de puntos de acceso para facilitar su localización. Cada registro bibliográfico incluye un resumen del contenido del documento original y/o un conjunto de términos representativos de los términos tratados en el mismo. Dichos términos constituyen entradas en un índice de materias (palabras clave o descriptores) y al proceso de asignación de los mismos a un documento se le denomina ͞indización͟. Dentro de este modelo se incluyen numerosas bases de datos especializadas en distintas disciplinas científicas y de gran importancia y prestigio internacional como: ͻ NTIS. National Technical Information Service. Cobertura informativa desde 1964 y actualización semanal. Consiste en resúmenes de actividades de investigación, desarrollo e ingeniería patrocinadas por el Gobierno de EE.UU. Contiene, además, análisis elaborados por agencias federales o entidades contratadas o subvencionadas y es el medio por el que se puede acceder a informes de agencias como la NASA,DOE, etc., hasta un número aproximado de 240 agencias que están disponibles para distribución pública. NTIS también da acceso a los resultados de I+D de países distintos de los EE.UU. Así, entre las organizaciones que contribuyen a NTIS están el Ministerio de Industria y Comercio Internacional de Japón, laboratorios administrados por el Departamento de Industria del Reino Unido, el Ministerio Federal de Ciencia y Tecnología o el CNRS francés. ͻ Scisearch. Institute for Scientific Information (ISI): es un índice internacional y

multidisciplinario, de acceso a la literatura de ciencia, tecnología, biomedicina, y otras disciplinas relacionadas. Contiene todos los registros publicados en el Science Citation Index además de registros adicionales en ingeniería, ciencias físicas,agricultura, biología, ciencias ambientales, medicina clínica, y las ciencias de la vida. SciSearch indiza todos los artículos significativos (artículos, revisiones, resúmenes de reuniones, cartas, editoriales, reseñas de libros, correcciones, etc.) de más de 6,100 revistas internacionales científicas y técnicas. ͻ CA SEARCH. Chemical Abstracts: La base de datos CA SEARCH®: Chemical Abstracts® incluye más de 17 millones de citas de la literatura mundial sobre química y sus aplicaciones desde 1967 en adelante, con actualización semanal. CA SEARCH se corresponde con la información bibliográfica y los índices completos que se encuentran la versión impresa de Chemical Abstracts. ͻ PASCAL: producida por el Institut de l'Information Scientifique et la Técnica (INIST) del Consejo Nacional de Investigación francés (CNRS) y proporciona cceso a la literatura científica y técnica mundial e incluye aproximadamente 450,000 nuevas citas por año. Disponible en la forma legible por máquina desde 1973, PASCAL se corresponde con la publicación impresa de la Bibliographie Internationale (antes Boletín Signaletique).