El documento describe las características principales de las bases de datos orientadas a objetos. Explica que permiten almacenar y recuperar objetos complejos y sus propiedades. También cubre temas como la identidad de objetos, encapsulamiento, herencia, polimorfismo y la capacidad de extender el conjunto de tipos de datos definidos.
1. UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
Realizado por: Luis Jhonny Tenesaca Urquizo.
Curso: 6to.
QUE SON BASES DE DATOS ORIENTADOS A OBJETOS
Las bases de datos orientadas a objetos (BDOO) son aquellas cuyo modelo de datos está
orientado a objetos y almacenan y recuperan objetos en los que se almacena. Su origen se debe
a que en los modelos clásicos de datos existen problemas para representar cierta información,
puesto que aunque permiten representar gran cantidad de datos, las operaciones que se
pueden realizar con ellos son bastante simples. También se puede decir que una colección
persistente y compatible de objetos definida por un modelo de datos orientado a objetos.
Bibliografía
Alberca Manzane, A. (16 de 11 de 2014). UNIVERSIDAD DE CASTILLA-LA MANCHA. Obtenido de
Modelos Avanzados de Bases de Datos. Funcionalidad 1:
http://basededatos2010.wikispaces.com/file/view/BD+O-
O+ventajas+y+desventajas.pdf
(Alberca Manzane, 2014)
CARACTERÍSTICAS DE BASES DE DATOS ORIENTADOS A OBJETOS
1. Un sistema de BBDDOO debe poder dar cabida a diferentes tipos de datos, desde los
más sencillos a objetos más complejos.
Tipo abstracto para construir otros tipos: Permite construir nuevos tipos a partir de caracteres,
float, enteros. Por ejemplo: punteros, números complejos, cadenas de bits...
Array: Son matrices de elementos de datos, como los que podemos encontrar en innumerables
aplicaciones científicas.
Secuencia de tipo: Insertar elementos en una matriz en cualquier posición.
Tuplas: Forma natural de representar las propiedades de una entidad.
Conjunto: Forma natural de representar los grupos del mundo real.
Funciones: Para crear, modificar y borrar otros objetos.
2. Identidad del objeto
La identidad es aquella propiedad de un objeto que lo distingue de todos los demás objetos.
La idea es que en un modelo con identidad de los objetos, la existencia de un objeto es
independiente de su valor. Cada objeto se representa por un IDO, que es único dentro de toda
la base de datos.
La identidad de los objetos es además una potente primitiva que puede ser la base para el
manejo de tuplas, conjuntos, y objetos complejos recursivos. También permite operaciones
tales como asignación o copia de objetos.
3. Encapsulamiento
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, la primera y original que es la del lenguaje
2. UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
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.
4. Tipos y clases
Existen dos categorías principales de sistemas orientados a objetos, los que soportan el
concepto de clse y los que soportan el concepto de tipo. Un tipo en un sistema orientado a
objetos se corresponde con el concepto de tipo abstracto de datos.
Es un conjunto de objetos que tienen un mismo comportamiento (comparten una misma
funcionalidad) que se puede observar desde afuera. Esto significa que el tipo al cual un objeto
pertenece depende de qué operaciones puedan invocarse sobre el objeto, cuál es el orden y
tipo de sus argumentos y cuál es el tipo del resultado.
El concepto de clase es diferente al de tipo. Su especificación es la misma que la de un tipo, pero
es una noción de tiempo de ejecución. Contiene dos aspectos:
La fábrica de objetos: crea nuevos objetos de la clase.
Almacén de objetos: conjunto de objetos que son las instancias de la clase, su extensión.
5. Herencia
Tipos de herencia a destacar en los sistemas de gestión de bases de datos:
Herencia de sustitución: en cualquier lugar donde podamos tener un objeto de tipo t’ podemos
sustituirlo por un objeto de tipo t si t hereda de t’ (este tipo de herencia se basa en la similitud
del comportamiento).
Herencia de inclusión: corresponde a la noción de clasificación y se basa en la estructura del
objeto, no en las operaciones. Afirma que t es subtipo de t’ si cada objeto de tipo t es también
un objeto de tipo t’.
Herencia de restricción: es un subcaso de la herencia de inclusión. Un tipo t es un subtipo de t’
si está formado por todos los objetos de t que satisfacen una restricción dada.
Herencia de especialización: un tipo t es un subtipo de un tipo t’ si los objetos del tipo t son
objetos del tipo t’ que contienen información más específica.
6. Polimorfismo, sobrecarga y ligadura tardía
Existen casos en los que se desea tener el mismo nombre para diferentes operaciones.
Supongamos la operación dibuja que toma un objeto como entrada y lo dibuja en pantalla.
Dependiendo del tipo de objeto (cuadrado, estrella, flecha,...) debemos emplear diferentes
mecanismos de visualización. Es decir, necesitamos visualizar un conjunto cuyos miembros no
se conocen en tiempo de compilación.
En una aplicación que emplee el sistema convencional, habrá tantas operaciones como figuras
a representar: dibuja cuadrado, dibuja estrella, dibuja flecha etc. En un sistema orientado a
3. UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
objetos se definirá la operación en una clase más general.
7. Completud de cálculos
Puede expresarse cualquier función computable utilizando el lenguaje de modificación de datos
de un sistema de base de datos.
8. Extensibilidad
El conjunto de tipos predefinidos que aporta el sistema de base de datos debe ser extensible
mediante algún mecanismo que permita definir tipos nuevos.
No debe haber distinción en cuanto al uso de los tipos definidos por el sistema y los extendidos.
Bibliografía
Grande Pérez y Borrego Vaquero, L. (16 de 11 de 2014). Introduccion a base de datos
orientados a objetos. Obtenido de Introduccion a base de datos orientados a objetos:
http://topicosjvcarlos.wikispaces.com/file/view/bdoo.pdf
(Grande Pérez y Borrego Vaquero, 2014)
VENTAJAS Y DESVENTAJAS DE BASES DE DATOS ORIENTADOS A OBJETOS
Ventajas
Mayor capacidad de modelado. El modelado de datos orientado a objetos permite modelar el
‘mundo real’ de una manera mucho más fiel. Esto se debe a:
un objeto permite encapsular tanto un estado como un comportamiento
un objeto puede almacenar todas las relaciones que tenga con otros objetos
los objetos pueden agruparse para formar objetos complejos (herencia).
Aplicabilidad. Esto se debe a:
Se pueden construir nuevos tipos de datos a partir de los ya existentes.
Agrupación de propiedades comunes de diversas clases e incluirlas en una superclase,
lo que reduce la redundancia.
Reusabilidad de clases, lo que repercute en una mayor facilidad de mantenimiento y un
menor tiempo de desarrollo.
Lenguaje de consulta más expresivo. El acceso navegacional desde un objeto al siguiente es la
forma más común de acceso a datos en un SGBDOO. Mientras que SQL utiliza el acceso
asociativo. El acceso navegacional es más adecuado para gestionar operaciones como los
despieces, consultas recursivas, etc.
Adecuación a las aplicaciones avanzadas de base de datos. Hay muchas áreas en las que los
SGBD tradicionales no han tenido excesivo éxito como el CAD, CASE, OIS, sistemas multimedia,
etc. en los que las capacidades de modelado de los SGBDOO han hecho que esos sistemas sí
resulten efectivos para este tipo de aplicaciones.
Mayores prestaciones. Los SGBDOO proporcionan mejoras significativas de rendimiento con
respecto a los SGBD relacionales. Aunque hay autores que han argumentado que los bancos de
prueba usados están dirigidos a aplicaciones de ingeniería donde los SGBDOO son más
adecuados. También está demostrado que los SGBDR tienen un rendimiento mejor que los
SGBDOO en las aplicaciones tradicionales de bases de datos como el procesamiento de
transacciones en línea (OLTP).
Desventajas
4. UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
Carencia de un modelo de datos universal. No hay ningún modelo de datos que esté
universalmente aceptado para los SGBDOO y la mayoría de los modelos carecen una base
teórica.
Carencia de experiencia. Todavía no se dispone del nivel de experiencia del que se dispone para
los sistemas tradicionales.
Carencia de estándares. Existe una carencia de estándares general para los SGBDOO.
Competencia. Con respecto a los SGBDR y los SGBDOR. Estos productos tienen una experiencia
de uso considerable. SQL es un estándar aprobado y ODBC es un estándar de facto. Además, el
modelo relacional tiene una sólida base teórica y los productos relacionales disponen de muchas
herramientas de soporte que sirven tanto para desarrolladores como para usuarios finales.
La optimización de consultas compromete la encapsulacion. La optimización de consultas
requiere una compresión de la implementación de los objetos, para poder acceder a la base de
datos de manera eficiente. Sin embargo, esto compromete el concepto de encapsulación.
Bibliografía
Alberca Manzane, A. (16 de 11 de 2014). UNIVERSIDAD DE CASTILLA-LA MANCHA. Obtenido de
Modelos Avanzados de Bases de Datos. Funcionalidad 1:
http://basededatos2010.wikispaces.com/file/view/BD+O-
O+ventajas+y+desventajas.pdf
(Alberca Manzane, 2014)
DIFERENCIAS ENTRE EL MODELO DE OBJETOS Y EL MODELO RELACIONAL
MODELO RELACIONAL
Los modelos relacionales tradicionales sólo permitían tipos de datos simples ofrecidos por SQL
y en última instancia por el sistema gestor. Esto hace bastante costoso trabajar con atributos
multivaluados pudiendo hacerse este tratamiento de 2 formas, o bien saltándose la 1FN o
separando esos atributos en más tablas lo que, sin duda, carga mucho el sistema y convierte las
consultas en algo muy complejo. El modelo objeto, por definición provee de un sistema de tipos
análogo al lenguaje de programación con el que se utiliza. De esta forma permite definir nuevas
clases así como utilizar la herencia para extender las ya creadas. Así se consigue aplicar toda la
potencia de la Orientación a Objetos en las bases de datos.
Los modelos relacionales utilizan el lenguaje estándar de consultas SQL, que es declarativo lo
que hace que las consultas no vayan a la forma de encontrar el dato sino que sea el sistema
gestor el que realice esta tarea. Además, el hecho de ser estándar permite que las aplicaciones
lo utilicen sin importar el lenguaje de programación en el que están escritas. Por contra carga
mucho el procesamiento y hace que haya que tratar los datos para convertirlos a objetos en el
lenguaje de programación utilizado.
MODELO DE OBJETOS
El modelo objeto difiere en este sentido bastante. Utiliza varios sistemas diferentes
dependiendo de la implementación que se esté utilizando. Hay sistemas, directamente imbuidos
en el lenguaje de programación que hacen esta recuperación de los datos transparente al
programador, trabajando con los objetos persistentes como si fueran objetos de memoria
normales. Esta visión es muy eficiente e intuitiva pero al no tener un lenguaje específico para
trabajar con las consultas no controla de forma alguna este acceso siendo vulnerable a errores
del programador.
5. UNIVERSIDAD NACIONAL DE CHIMBORAZO
FACULTAD DE CIENCIAS DE LA EDUCACIÓN HUMANAS Y TECNOLOGÍAS
ESCUELA DE INFORMÁTICA APLICADA A LA EDUCACIÓN
Otra forma de implementar las consultas ha sido el estándar OQL (Object Query Language)
definido por el Object Data Management Group (ODMG) que busca ser un estándar declarativo
para consultas a bases de datos orientadas a objetos. Su uso sería análogo al de SQL pero, debido
a su complejidad aún no hay ninguna implementación completa del estándar, sólo se han
llegado a realizar subconjuntos como JDOQL y EJB QL.
Referencias
Válquez, E. (16 de 11 de 2014). Bases de Datos Relacionales vs Orientadas a Objetos. Obtenido
de Bases de Datos Relacionales vs Orientadas a Objetos:
http://twisensblog.blogspot.com/2011/10/bases-de-datos-relacionales-vs.html
(Válquez, 2014)