Unidad 2: sistemas de
base de datos orientados a objetos
Introducción
Las bases de datos orientadas
a objetos se crearon para tratar de satisfacer las necesidades de estas nuevas
aplicaciones. La orientación a objetos ofrece flexibilidad para manejar algunos
de estos requisitos y no está limitada por los tipos de datos y los lenguajes
de consulta de los sistemas de bases de datos tradicionales. Una característica
clave de las bases de datos orientadas a objetos es la potencia que
proporcionan al diseñador al permitirle especificar tanto la estructura de
objetos complejos, como las operaciones que se pueden aplicar sobre dichos
objetos.
Los principales conceptos que
se utilizan en las Bases de Datos Orientada a
Objetos (BDOO) son las siguientes:
- Identidad de objetos
- Constructores de tipos
- Encapsulamiento
- Compatibilidad con los lenguajes de programación
- jerarquía de tipos y herencia
- Manejo de objetos complejos
- polimorfismo y sobrecarga de operadores
- Creación de versiones
2.1 El modelo de datos Orientados a Objetos
El modelo orientado a objetos también
soporta relaciones de muchos a muchos, siendo el primer modelo que lo permite. Aun
así se debe ser muy cuidadoso cuando se diseñan estas relaciones para evitar pérdidas
de información.
Por otra parte, las bases de
datos orientadas
Las bases de datos orientadas
a objetos no son apropiadas para realizar consultas ad hoc, al contrario que
las bases de datos relacionales, aunque normalmente las soportan. La naturaleza
navegaciones de las bases de datos orientadas a objetos implica que las
consultas deben seguir relaciones predefinidas y que no pueden insertarse
nuevas relaciones.
El modelo de datos orientado a
objetos es una extensión del paradigma de programación orientado a objetos. Los
objetos entidad que se utilizan en los programas orientados a objetos son análogos
a las entidades que se utilizan en las bases de datos orientadas a objetos puros,
pero con una gran diferencia: los objetos del programa desaparecen cuando el
programa termina su ejecución, mientras que los objetos de la base de datos
permanecen, a esto se le denomina persistencia.
El modelo orientado a objetos
permite los atributos multivariados, agregaciones a las que se denomina
conjuntos (sets) o bolsas (bags). Para crear una relación de uno a muchos, se
define un atributo en la parte del uno que será de la clase del objeto con el
que se relaciona. Este atributo contendrá el identificador de objeto del padre.
La clase del objeto padre contendría un atributo que almacenará un conjunto de
valores: los identificadores de los objetos hijo con los que se relaciona.
Cuando el SGBD ve que un atributo tiene como tipo de datos una clase, ya sabe
que el atributo contendrá un identificador de objeto.
![]() |
| figura 1.1 Modelo Orientado a Objetos |
2.1.1 Características de los SGBDOO
Se indica que todo SGBDOO debe
tener ciertas características las mismas que se clasifican en tres categorías:
obligatorias y optativas.
- Características obligatorias
- Son aquellas características que se consideran esenciales en un SGBDOO. Un SGBDOO debe satisfacer dos criterios:
- Debe ser un Sistema Gestor de Base de Datos
- Debe ser un sistema orientado a objetos; es decir, en la medida de lo posible deberá ser consistente con el actual conjunto de lenguajes de programación orientados a objetos.
Debe satisfacer ser un SGBD
(Sistema Gestor de Base de Datos) que se traduce en cinco características:
- Persistencia
- Gestión del almacenamiento secundario
- Concurrencia
- Recuperación
- Facilidad de consultas.
- Características Optativas
Son características que
debería cumplir un gestor de base de datos orientado a objetos pero que no
están obligadas a implementar.
- Herencia múltiple
- Chequeo e inferencia de tipos
- Distribución
- Transacciones de Diseño
- Versiones
2.1.2 Tipos de SGBDOO
- SGBD de red
Los SGBD relacionales se basan
en el modelo de datos de red. Los datos en el modelo de red se representan
mediante colecciones de registros y las relaciones entre los datos se
representan mediante enlaces, que se pueden ver como punteros. Los registros en
la base de datos se organizan como colecciones de grafos dirigidos. En la
figura se presenta un ejemplo de base de datos en red.
- SGBD jerárquicos
Los SGBD relacionales se basan
en el modelo de datos jerárquico. El modelo jerárquico es similar al modelo de
redes, en el sentido en que los datos y las relaciones entre los datos se
representan mediante registros y enlaces, respectivamente. Éste se diferencia
del modelo de redes en que los registros se organizan como colecciones de
árboles en lugar de grafos dirigidos. En la siguiente figura se presenta un ejemplo
de base de datos jerárquica.
- Modelo de datos relacionales
Basados en el modelo relacional, los datos se
describen como relaciones que se suelen representar como tablas bidimensionales
consistentes en filas y columnas. Cada fila (tupla, en terminología relacional)
representa una ocurrencia. Las columnas (atributos) representan propiedades de
las filas. Cada tupla se identifica por una clave primaria o identificadora.
- Modelo orientados a objetos
Una de las novedades más
prometedoras y más desarrolladas comercialmente de los nuevos SGBD, son los
basados en un nuevo modelo de datos conocido como modelo orientado a objetos.
La orientación a objetos es un paradigma que no se aplica sólo al desarrollo de
SGBD sino, en general, al desarrollo de sistemas de información.
2.1.3 productos
SGBD libres
- MySQL Licencia Dual: Es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB, desde enero de 2008 una subsidiaria de Sun Microsystems desarrolla MySQL como software libre en un esquema de licenciamiento dual.
- PostgreSQL: Es un sistema de gestión de base de datos relacional orientada a objetos de software libre, publicado bajo la licencia BSD. Como muchos otros proyectos open source, el desarrollo de PostgreSQL no es manejado por una sola compañía sino que es dirigido por una comunidad de desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo.Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).
- Apache Derby: Es un sistema gestor de base de datos relacional escrito en Java que puede ser utilizado en aplicaciones Java y aplicado para procesos de transacciones online. Tiene un tamaño de 2 MB de espacio en disco. Inicialmente distribuido como IBM Cloudscape, Apache Derby es un proyecto open source licenciado bajo la Apache 2.0 License. Actualmente se distribuye como Sun Java DB.
- Oracle: Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), desarrollado por Oracle Corporation. Se considera a Oracle como uno de los sistemas de bases de datos más completos.
2.2 Estandar ODMG
Un grupo de representantes de la industria de las bases de datos
formaron el ODMG (Object Database Management Group) con el propósito de definir
estándares para los SGBD orientados a objetos. Este grupo propuso un modelo estándar
para la semántica de los objetos de una base de datos. Su ´ultima versión, ODMG
3.0, apareció en enero de 2000. Los principales componentes de la arquitectura
ODMG para un SGBD orientado a objetos son los siguientes:
- Modelo de objetos.
- Lenguaje de definición de objetos (ODL).
- Lenguaje de consulta de objetos (OQL).
- Conexión con los lenguajes C++, Smalltalk y Java.
2.3 Identidad y estructura de objetos
Los tipos de objetos se descomponen
en atómicos, colecciones y tipos estructurados.
Los tipos colección, que se
derivan de la interfaces Collection, son la propuesta del estándar para las
clases contenedor.
Cada objeto tiene un
identificador de objeto único generado por el SGBD, que no cambia y que no se
reutiliza cuando el objeto se borra. Cada SGBD genera los identificadores siguiendo
sus propios criterios.
Los objetos pueden ser
transitorios o persistentes. Los objetos transitorios existen mientras vive el
programa de aplicación que los ha creado. Estos objetos se usan tanto como almacenamiento
temporal como para dar apoyo al programa de aplicación que se está ejecutando.
Los objetos
persistentes son aquellos que se almacenan en la base de datos.
2.4 Encapsulamiento, Herencia y polimorfismo en BDOO
- Encapsulamiento
El
encapsulamiento se centra en la implementación que da lugar al comportamiento
observable de un objeto. El encapsulamiento se consigue 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.
- Herencia
Propiedad
a través de la cual los objetos heredan comportamiento dentro de una jerarquía
de clases.
Tipos
de herencia a destacar en los sistemas de gestión de bases de datos
2. Herencia
de restricción
3. Herencia
d especialización
- Polimorfismo
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.
2.5 Persistencia, Concurrencia y Recuperación en BDOO
- Persistencia
La
persistencia es una de las características que los SGBDOO heredan tanto de los
SGBD como del modelo de objetos. La diferencia está en que la persistencia
proporcionada por el SGBD tradicional, se refiere únicamente a la conservación
de los datos, mientras que la persistencia heredada del modelo de objetos hace
referencia no sólo a la conservación del estado de un objeto, sino también a la
conservación de la clase, que debe trascender a cualquier programa individual,
de forma que todos los programas interpreten de la misma manera el estado
almacenado.
- Concurrencia
El
SGBO debe gestionar el acceso de múltiples usuarios a la vez. Soportando la
noción de atomicidad de una secuencia de operaciones y la compartición
controlada.
Si se
introduce concurrencia en nuestro sistema hay que considerar cómo los objetos
activos sincronizan sus actividades con otros, así como con objetos puramente
secuenciales. Por ejemplo, si dos objetos activos intentan enviar mensajes a un
tercer objeto, hay que tener la seguridad de que existe algún mecanismo de
exclusión mutua, de forma que el estado del objeto sobre el que se actúa no
está corrupto cuando los dos objetos activos intentan actualizarlo
simultáneamente. En presencia de la concurrencia no hay que definir simplemente
los métodos de un objeto; hay que asegurarse también de que la semántica de
estos métodos se mantiene a pesar de la existencia de múltiples usuarios
concurrentes.
- Recuperación
Con
recuperación nos referimos al proceso de aplicación de consistencia después de
que una transacción ha abortado como resultado de fallas de hardware o
problemas de comunicación. Las fallas del sistemas, tanto de hardware como de
software no deben repercutir en estados de inconsistencia de la base datos. La
recuperación es la técnica que asegura que eso no ocurra. La recuperación puede
ser total o parcial dependiendo de las circunstancias, de la recuperabilidad.
INTEGRANTES:
- Erik Beltran Gozcon
- Alan González Gómez
- Claudia González González

No hay comentarios:
Publicar un comentario