Base de Datos - Ing. Yelmin
Base de Datos - Ing. Yelmin
Base de Datos - Ing. Yelmin
Estos sistemas permiten ver físicamente los datos 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.
Evolución
El primer gestor de bases de datos (DBMS: Database Management System) comercial, IDS: Integrated
Data Store , se crea bajo el concepto del Modelo de Datos de Red; 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.
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 , compuesta por filas y columnas, accesando dichas
relaciones a través de un lenguaje de alto nivel no procedural .
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, Eiffel, y
Smalltalk adoptando y mejorando el concepto de clase pero su desarrollo se hace independiente de los
DBMSs.
Esquema de un DBMS
Lenguajes del DBMS
En la estructura básica de un Sistema Manejador de Base de Datos se usan dos lenguajes que permiten
trabajar sobre la base de datos. Estos lenguajes estandar son:
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)
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.
Transacciones
Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que
se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas
transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe
cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su
estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese
realizado.
El modelo relacional 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. No tardó en consolidarse como un nuevo
paradigma en los modelos de base de datos.
Modelo de Red
El modelo de red se diferencia del modelo relacional en que los datos se representan mediante conjuntos
de registros, y las relaciones entre ellos mediante punteros.
Una base de datos en red consiste en un conjunto de registros conectados entre si mediante punteros.
Los registros son en muchos aspectos parecidos a las entidades del modelo entidad-relación. Cada
registro es un conjunto de campos, cada uno de los cuales sólo contiene un valor de datos. Los punteros
son asociaciones entre exactamente dos registros. Por tanto, los punteros pueden considerarse una
forma restringida de relación en el sentido del modelo entidad-relacion.
Algunas de las características deseables en un Sistema Gestor de base de datos SGBD son:
- Control de la redundancia: La redundancia de datos tiene varios efectos negativos (duplicar el
trabajo al actualizar, deperdicia espacio en disco, puede provocar inconsistencia de datos)
aunque a veces es deseable por cuestiones de rendimiento.
- Restricción de los accesos no autorizados: cada usuario ha de tener unos permisos de acceso
y autorización.
- Cumplimiento de las restricciones de integridad: el SGBD ha de ofrecer recursos para definir y
garantizar el cumplimiento de las restricciones de integridad.
Algebra 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.
Archivo
Los archivos de datos se pueden clasificar dependiendo las funciones que ejecutan en un sistema de
información.
- Archivo maestro (Contiene datos que se podrian llamar permanentes como son nominas, clientes,
personal, etc).
- Archivo de transacciones (Es el que se puede añadir un nuevo registro y puede remover un registro
existente en el archivo maestro).
- Archivo reporte (Contiene datos que pueden ser formateados para el usuario y pueden mandarse
directamente sin ser modificados a una impresora.).
- Archivo de trabajo (Son archivos temporales que para el usuario son transparentes y una vez que
terminan su funcion, estos son eliminados.).
- Archivo programa (Programa es conocido tambien como archivo fuente y contiene instrucciones para
que los datos puedan ser procesados y estan escritos en lenguaje de alto nivel).
- Archivo de respaldo o protección (Son archivos que estan en reserva y se utilizan en el caso de que
algun archivo maestro sea dañado por cualquier razon).
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
Tablas: Unidad donde crearemos el conjunto de datos de nuestra base de datos. Estos datos estarán
ordenados en columnas verticales. Aquí definiremos los campos y sus características. Más adelante
veremos qué es un campo.
Consultas: Aquí definiremos las preguntas que formularemos a la base de datos con el fin de extraer y
presentar la información resultante de diferentes formas.
Formulario: Elemento en forma de ficha que permite la gestión de los datos de una forma más cómoda y
visiblemente más atractiva.
Informe: Permite preparar los registros de la base de datos de forma personalizada para imprimirlos.
Macro: Conjunto de instrucciones que se pueden almacenar para automatizar tareas repetitivas.
Introducción
Una base de datos es un sistema para archivar información en computadora cuyo propósito general es
mantener información y hacer que esté disponible cuando se solicite.
Las bases de datos son un área de la computación que ha recibido mucha atención debido a sus
múltiples aplicaciones: bibliotecas, automatización de oficinas, ingeniería de software, diccionarios
automatizados y en general cualquier programa orientado a mantener y recuperar información textual. Su
recuperación, actualización y manejo es relativamente simple con el uso de cualquier manejador de
bases de datos.
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
Multiproceso
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 procesador queda 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
La integridad referencial
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. La integridad referencial hace que el sistema gestor
de la base de datos se asegure de que no hayan en las claves foráneas valores que no estén en la tabla
principal.
Redundancia
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.
* 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.
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).
Tipos de usuarios.
Usuarios ingenuos o accidentales. Interactuan con una base de datos sin saberlo. Normalmente
acceden a la base con una aplicación de ventanas y menús con un conjunto de opciones reducidos
(Usuario de un cajero automático). Es esta aplicación la que usa la base de datos.
Usuarios en línea. Tienen acceso a la base de datos a través del lenguaje de consulta (LC o
“Query Languaje”) e incluso en algunas ocasiones pueden acceder a la base de datos con en
lenguaje de manipulación de datos (LMD).
Programadores de aplicaciones. Han de conocer algún lenguaje de programación de alto nivel
denominado “lenguaje anfitrión” tal como el Pascual o el C++ así como el lenguaje de manipulación
de datos (LMD) y el lenguaje de definición de datos (LDD). Entonces ha de crear un programa de
control en el lenguaje anfitrión insertándole instrucciones del LMD o el LDD. Generalmente las bases
de datos ya incluyen compiladores de varios lenguajes preparados para admitir las instrucciones de
los LDD y los LMD.
Administrador de la base de datos (ABD). Se encarga de modificar y mantener los esquemas de
la base de datos. Cualquier cambio producido en la base de datos es realizado por el ABD, el cual
realiza los cambios de forma transparente para el resto de los usuarios y aplicaciones. El ABD
también se encarga de definir las políticas de “backup”, controles de integridad y autorizaciones.
Tupla
A menudo se le llama también registro o fila, físicamente es cada una de las líneas de la relación.
Equivale al concepto de entidad del modelo E-R, y define un objeto real, ya sea abstracto, concretos o
imaginario.
De esta definición se deduce que no pueden existir dos tuplas iguales en la misma relación.
Atributo
cada una de las características que posee una entidad, y que agrupadas permiten distingirla de otras
entidades del mismo conjunto.
Al igual que en el modelo E-R, cada atributo tiene asignado un nombre y un dominio. El conjunto de
todos los atributos es lo que define a una entidad completa, y es lo que compone una tupla.
Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos
recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de Hoja
de cálculo.
Registro y Campo.
Campo:
Es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros
campos. En el ejemplo anterior, un campo contendrá un tipo de datos único, como una dirección, o un
número de teléfono, un nombre, etc.
ENTIDAD
1. En bases de datos, una entidad es la representación de un objeto o concepto del mundo real que
se describe en una base de datos.
Una entidad se describe en la estructura de la base de datos empleando un modelo de datos.
Por ejemplo, nombres de entidades pueden ser: Alumno, Empleado, Artículo, etc.
Cada entidad está constituida por uno o más atributos. Por ejemplo, la entidad "Alumno" podría tener
los atributos: nombre, apellido, año de nacimiento, etc.
En el modelo de entidad-relación se emplean dos tipos de entidades: entidad fuerte y entidad débil.
Las entidades fuertes tienen atributos claves, en tanto las entidades débiles no tienen atributos claves
propios.
Lenguaje de Manipulación de Datos
(Data Manipulation Language, DML) 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.
(Data Definition Language, DDL por sus siglas en inglés) 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.
VENTAJAS DE LAS BASES DE DATOS FRENTE A LOS FICHEROS CLÁSICOS
Las bases de datos, surgidas como respuesta al nuevo planteamiento de los sistemas orientados
hacia los datos, para mejorar la calidad de las prestaciones de los sistemas informáticos y
aumentar su rendimiento, presentan una multitud de ventajas frente a los sistemas clásicos de
ficheros, debido, sobre todo, a que se basan en una estructura de datos integrada y centralizada,
eliminando así los problemas de redundancia y control de los datos. Las ventajas de los sistemas
de bases de datos son, entre otras, las siguientes:
C) Mejor disponibilidad de los datos para el conjunto, de los usuarios: Cuando se aplica la
metodología de bases de datos, cada usuario ya no es propietario de los datos, puesto que éstos
se comparten entre el conjunto de aplicaciones, existiendo una mejor disponibilidad de los datos
para todos los que tienen necesidad de ellos, siempre que estén autorizados para su acceso.
D) Mayor eficiencia en la recogida, validación entrada de los datos al sistema: Al no existir apenas
redundancias, los datos se recogen y validan una sola vez, aumentando así el rendimiento de todo
el proceso previo al almacenamiento.
Las bases de datos no sólo presentan ventajas, sino que también tienen posibles inconvenientes,
que es necesario valorar antes de tomar una decisión relativa a un cambio en la orientación del SI.
Entre estos inconvenientes es preciso destacar: A) Instalación costosa: La implantación de un
sistema de bases de datos puede llevar consigo un coste elevado, tanto en equipo físico (nuevas
instalaciones o ampliaciones), como en el lógico (sistemas operativos, programas, compiladores,
etc. necesarios para su uso).
B) Personal especializado: Los conocimientos, que resultan imprescindibles para una utilización
correcta y eficaz y sobre todo para la administración de las bases de datos, implican una necesidad
de personal especializado que resulta difícil de encontrar, y de formar. El problema de la
contratación y formación de este tipo de personal es clave a la hora de crear un sistema de base de
datos.
C) Implantación larga y difícil: La implantación de una base de datos puede convertirse en una
tarea larga y laboriosa. Las dificultades que van apareciendo a lo largo de su desarrollo llevan en
general a que se superen ampliamente los plazos inicialmente previstos.Ing. María Isabel Trejo
Miranda
D) Falta de rentabilidad a corto plazo: La implantación de un sistema de bases de datos, tanto por
su coste en personal y en equipos como por el tiempo que tarda en estar operativo, no resulta
rentable a corto plazo. Puede calcularse que para un sistema de dimensiones medias la
rentabilidad sólo puede empezar a apreciarse después de bastantes meses de la iniciación de los
trabajos; en instalaciones grandes o muy grandes el plazo puede llegar a ser de años.
Esquema de un DBMS: Es la estructura por la que está formada la base de datos, se especifica por
medio de un conjunto de definiciones que se expresa mediante un lenguaje especial llamado lenguaje de
definición de datos. (DDL)
Registro: un conjunto lógicamente conectado de uno o más campos que describe una persona,
lugar o cosa. Por ejemplo, los campos que constituyen un registro de un cliente llamado J.D. Rudd,
podría constar del nombre, domicilio, número telefónico, fecha de nacimiento, límite de crédito y saldo
por pagar. En otras palabras es el conjunto de información referida a una misma persona u objeto, es
decir una colección de campos de iguales o de diferentes tipos. Un registro vendría a ser así como una
ficha.
Base de datos distribuidos: Una Base de Datos Distribuida (BDD) es un conjunto de múltiples
bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios
interconectados por una red de comunicaciones, los cuales tienen la capacidad de procesamiento
autónomo lo cual indica que puede realizar operaciones locales o distribuidas. La BDD se está utilizando
cada vez más en la misma medida en que se usan la arquitectura cliente/servidor y groupware. La BDD
se crea en dos modalidades: Fragmentar la BD y Hacer una réplica de la BD.
Diferencia entre un dbms y una base de datos: La base de datos es una colección de archivos
interrelacionados almacenados en conjunto sin redundancia y la dbms es un conjunto de numerosas
rutinas de software interrelacionadas cada una de ellas es responsable de una determinada tarea.
Una forma gráfica de representar los componentes antes mencionados y la relación que existe
entre ellos sería la siguiente.
Inconvenientes de los SGBD
Los SGBD son conjuntos de programas muy complejos y muy extensos.
Los SGBD son caros.
Suele ser necesario adquirir equipamiento adicional para su puesta en marcha.
Si se pasa de un sistema de ficheros a un sistema de bases de datos, el coste de la conversión
es elevado.
Algunas prestaciones pueden disminuir.
Son más vulnerables a los fallos
Base de datos
Jerárquicas
Orientadas a objeto o declarativas
La programación orientada a objetos, intenta simular el mundo real a través del significado de
objetos que contiene características y funciones. Los lenguajes orientados a objetos se clasifican como
lenguajes de quinta generación. Como su mismo nombre indica, la programación orientada a objetos se
basa en la idea de un objeto, que es una combinación de variables locales y procedimientos llamados
métodos que juntos conforman una entidad de programación. El termino encapsulación se usa para
describir la combinación de estructuras de datos y de métodos que son manipulados por el objeto. La
llamada a un objeto es lo que se denomina pasar un "aviso" a un objeto. En la programación orientada a
objetos, encapsular significa, reunir y controlar el grupo resultante como un todo y no individualmente. En
la programación orientada a objetos la abstracción es un término externo al objeto, que controla la forma
en que es visto por los demás. En la programación orientada a objetos la modularidad se considera de la
siguiente manera: Un programa grande siempre será más complicado que la suma de varios programas
pequeños, con lo que se considera ventajoso dividir un gran sistema en diversos módulos. En la
programación orientada a objetos tenemos la jerarquía, la cual consiste en la clasificación y organización
de las abstracciones según su naturaleza.
El modelo de bases de datos orientado a objetos es una adaptación a los sistemas de bases de
datos. Se basa en el concepto de encapsulamiento de datos y código que opera sobre estos en un
objeto. Los objetos estructurados se agrupan en clases. El conjunto de clases esta estructurado en sub y
superclases basado en una extensión del concepto ISA del modelo Entidad - Relación. Puesto que el
valor de un dato en un objeto también es un objeto, es posible representar el contenido del objeto dando
como resultado un objeto compuesto.
Identificación de objetos: 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.
Estructura: 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 está asociado con: Un conjunto de variables que
contiene los datos del objeto; las variables corresponden con los atributos del modelo E-
R. Un conjunto de mensajes a los que responde; cada mensaje puede o no tener parámetros
o tener uno o varios. 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.
Constructores: 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:
constructores de átomos, constructores de tuplas y 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.
Encapsulamiento: cada objeto está aislado del exterior, es un modulo natural y la aplicación entera se
reduce a una agregación de objetos. El aislamiento protege a los datos asociados a un objeto de su
modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e
interacciones.
Métodos: es un código ejecutable asociado a un objeto (o a una clase de objetos), cuya ejecución se
desencadena mediante un ”mensaje”.
Persistencia: 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.
Objetos Complejos
Jerarquía de clases: Los esquemas de BDOO suelen necesitar un gran número de clases. Sin
embargo, varias clases son parecida 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 denominas subclases; lo cual especifica atributos y métodos adicionales para
una clase existente. Los objetos creados por medio de unas subclases 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.
Herencia: Los esquemas de las bases de datos orientadas a objetos suelen necesitar gran
número de clases. Frecuentemente, sin embargo, varias de las clases son parecidas entre sí.
Son parecidas porque definen iguales atributos y métodos. No son idénticas porque cada clase
define, además, atributos y/o métodos que no comparte con las demás. Sería conveniente definir
una representación de los atributos y métodos comunes en un solo lugar. Esto puede hacerse
creando una nueva clase, que contendrá solo las características comunes, y redefiniendo las
clases originales como especializaciones de la nueva clase.
Relaciones Anidadas 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.
Los lenguajes de las bases de datos trabajan directamente con dato 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. 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.
Interpretación de reglas:
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 Datalog. 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 falsos. 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 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.
Sistema LDL
El proyecto Lenguaje Lógico de Dato se inició 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.
Aplicaciones de LDL
Modelado de empresas: 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 a partir de esta metabase de datos, que contiene
información tipo diccionario a cerca de toda la empresa. Prueba de hipótesis o dragado de datos: 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. Reutilización de software: 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:
Programación en Datalog
Una vez que se han explicado informalmente las reglas y consultas de Datalog, se define
formalmente su sintaxis. Se utilizarán los mismo convenios que en el algebra relacional para denotar
nombres de relaciones, de atributos, constantes (tales como números o cadenas) y de nombres de
variables. Se usan letras mayúsculas y palabras con la primera letra en mayúscula para denotar
nombres de variables, y letras minúsculas para denotar los nombres de las relaciones y atributos.
Algunos ejemplos de constantes son 4, que es un número y «Santos» que es una cadena; X y Nombre
son variables. Un literal positivo tiene la siguiente forma: p (t1, t2, ...tn) donde p es el nombre de una
relación con n atributos y t1, t2, ...tn son constantes o variables. Un literal negativo tiene la siguiente
forma: not p (t1, t2, ...tn) donde la relación p tiene n atributos. El siguiente es un ejemplo de literal: cuenta
(C, «Navacerrada», S) Los literales que contienen operaciones aritméticas se tratan de un modo
especial. Por ejemplo, el literal B > 700, aunque no tiene la sintaxis descrita, puede entenderse
conceptualmente como > (B, 700), que si tiene la sintaxis requerida y donde > es una relación. Pero
¿qué significa esta notación para las operaciones aritméticas como «>»? La relación >
(conceptualmente) contiene tuplas de la forma (x, y) para todos los posibles pares de valores x e y donde
x>y. Así, (2, 1) y (5, -33) son tuplas de la relación >. La relación > es infinita. Otras operaciones
aritméticas (como >, =, + o -) se tratan también conceptualmente como relaciones. Por ejemplo, A = B +
C se puede tratar conceptualmente como + (B, C, A), donde la relación + contiene todas las tuplas (x, y,
z) tales que z = x + y.
Un hecho tiene la siguiente forma (v1,v2,…, vn)E implica que la tupla (v1,v2,…, vn) pertenece a la relación p.
Un conjunto de hechos de una relación se puede escribir utilizando la notación tabular habitual. Un
conjunto de hechos para una relación en un esquema de base de datos equivale a un ejemplar del
esquema de base de datos. Las reglas se construyen a partir de literales, y tiene la forma siguiente
(t1,t2,…, tn) :- L1,L2,…, Ln Donde cada L es una literal (positivo o negativo). El literal P (t1,t2,…, tn) se
denomina cabeza de la regla y el resto de los literales constituyen el cuerpo de la misma. Un programa
Datalog consiste en un conjunto de reglas, el orden en que se formulan las reglas es indiferente. Una
relación se puede definir utilizando varias reglas.
De manera general, en las bases de datos temporales se suelen distinguir dos aspectos
importantes: la gestión de la historia y la gestión de versiones. En estos últimos años se ha logrado un
consenso en cuanto a la semántica de la historia, pero no a la gestión de versiones, para la que existen
muchas propuestas en el contexto de los sistemas de diseño asistido por ordenador e ingeniería de
software.
En un sentido más estricto, se conocen como bases de datos temporales aquellas que gestionan la
historia, pudiendo contemplar dos dimensiones del “tiempo”: Tiempo válido y Tiempo de transacción.
Una base de datos espacial es una colección de datos referenciados espacialmente, que actúan
como un modelo de la realidad; en el sentido de que ella representa una serie o aproximación de
fenómenos. Esos fenómenos seleccionados son considerados suficientemente importantes para ser
representados en forma digital. La representación digital puede ser para el pasado, presente o futuro.
Las bases de datos espaciales necesitan contar con procedimientos que hagan posible su
mantenimiento en lo que respecta a su documentación así como su administración. La eficiencia estará
sujeta a los diferentes tipos de datos almacenados en diferentes estructuras y los objetos espaciales
estarán organizados por capas de información. La modelación del mundo real por medio de entidades
primitivas de dibujo siguen reglas que constituyen el modelo de datos.
Bibliografía.