Bases de Datos
Orientadas a
Objetos
(3er Parcial)
Base de Datos II Septiembre, 2022
Introducción
En la actualidad, la orientación a objetos es una
nueva forma de comprender los problemas y
modelar el negocio de una empresa, documentar,
diseñar programas y base de datos.
El enfoque orientado a objetos ofrece la
oportunidad de cumplir con los requerimientos del
negocio sin estar limitado a los tipos de datos y los
lenguajes de consulta disponibles en los gestores de
datos tradicionales. Las Bases de datos orientadas a
objetos se proponen para satisfacer las necesidades
de aplicaciones más complejas.
Surgimiento
Problemas para representar y modelar la
información del "mundo real", el modelo clásico
representa la información a través de una gran
cantidad de datos.
Necesidad de los lenguajes de programación
orientados a objetos
Las bases de datos orientadas a objetos surgen con
la finalidad de superar estas deficiencias de los
modelos anteriores y proporcionar eficiencia y
sencillez a las aplicaciones.
Definición
Una Base de Datos Orientada a Objetos es una base
de datos donde las entidades son las clases, los
elementos de datos son objetos y las relaciones se
mantienen por medio inclusión lógica.
Teniendo en cuenta este concepto, las bases de
datos orientadas a objetos están diseñadas para el
manejo de datos de un sistema que ha sido
modelado, diseñado e implementado como un
conjunto de objetos relacionados entre sí.
Conceptos básicos orientado a objetos
El paradigma orientado a objetos se define como
un conjunto de principios para realizar el
modelado, diseño, desarrollo e implementación
basado de estructuras conceptuales conocidas como
objetos.
Las bases de datos orientadas a objetos están
diseñadas para trabajar con aplicaciones
desarrollados orientada a los negocios, que son un
conjunto de objetos que interactúan entre sí.
Conceptos básicos orientado a objetos
Entre los conceptos que utilizamos en las Bases de
Datos Orientadas a Objetos se encuentran los
siguientes:
1. Clase
2. Objeto, Identidad de objeto
3. Encapsulamiento
4. Jerarquías de tipos y herencia
5. Polimorfismo
Conceptos básicos orientado a objetos
6. Manejo de objetos complejos
7. Compatibilidad con los lenguajes de programación
8. Creación de versiones.
1. Clase
Una clase se le define como un modelo que agrupa
a un conjunto de objetos de características
comunes.
También es definida como una plantilla que
contiene la definición de los datos y métodos para
los objetos instanciados por la clase.
2. Identidad de Objetos
Un objeto es cualquier cosa, sea real o abstracta a
través del cual almacenamos datos y definimos
métodos para controlar estos datos.
La identidad es una propiedad de todo objeto que
permite diferenciar a los demás objetos.
Todo objeto se identifica por un identificador de
objeto, el cual es único, y a través de éste se puede
invocar un objeto para realizar una operación.
Objetos: Empleado
Juan Ríos Pedro Lamas Inés Rojas
DI: 08723133 DI: 10032122 DI: 09723133
3. Encapsulamiento
Hay muchos datos que no tienen que ser
“expuestos” cuando se utiliza un objeto, ya que
solamente funcionan de manera interna, esto es
encapsulamiento; hacer que los atributos no
interactúen con el usuario y solo son llamadas por
funciones dentro del objeto.
3. Encapsulamiento
Proporciona una lógica independiente de los datos,
porque se puede cambiar la implementación de un
comportamiento sin cambiar el programa que uso
dicho comportamiento.
4. Jerarquía de Tipos y Herencia
En los modelos de datos de una base de datos
orientada a objetos, se necesitan un número
limitado de clases; pero algunas de estas clases se
parecen entre sí.
Para representar estas clases, se define una
especialización.
4. Jerarquía de Tipos y Herencia
Las especializaciones de una clase (clase base) son
definidas como subclases (clases heredadas), las
cuales heredan las características y los métodos de
la clase base.
5. Polimorfismo
El polimorfismo se refiere a definir diferentes
comportamientos a los métodos que tienen la
misma forma en diferentes clases.
Esto quiere decir, sobrescribir los métodos de las
clases heredadas, los cuales estos métodos se
encuentran definidos en las clases base.
6. Manejo de objetos complejos
Hay dos tipos de objetos complejos
Objetos no Estructurados: necesita de una gran espacio
de almacenamiento: tipo de dato imagen (mapa de bits)
o cadena de texto extenso (documento)
Objetos Estructurados: constituidos por componentes,
se define en diversos niveles.
7. Compatibilidad con lenguajes de
programación
Los lenguajes de programación que usan una base
de datos orientada a objetos utilizan herramientas
de diseño para el modelado de objetos y
codificación. En la actualidad, existen varios
lenguajes de programación: C++, Java, Smalltalk,
LISP.
Finalidad- Compatibilidad con lenguajes de
programación
Extender el lenguaje a través de las llamadas
expresiones de consulta, que son parecidas a las
sentencias SQL y pueden ser usadas para extraer y
procesar convenientemente bases de datos
relacionales.
Un lenguaje de programación orientado a objetos
que trabaje en forma directa con la base de datos a
través de un Modelo de Datos persistente.
Modelo de objetos
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: 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.
Modelo de objetos
Características
Soporta diversos tipos de datos:
abstractos: cliente, empleado, producto, etc.
complejos: estructura de datos, colecciones, objetos
grandes.
Soporta un lenguaje de definición de objetos
(ODL), define la interfaz de los tipos de objetos, no
la implementación.
Soporta un lenguaje de manipulación de objetos
(OML), se emplea para realizar operaciones de
creación, actualización y eliminación de objetos .
Características
Soporta un lenguaje de consultas de objetos (OQL),
aunque está basado en el lenguaje SQL, su
semántica no es la misma. Las consultas se
especifican mediante objetos y sus atributos. Del
mismo modo, las consultas devuelven conjuntos de
objetos.
Relaciones
La principal propiedad para cualquier modelo de
datos, es la representación de las relaciones que
encontramos entre los componentes del modelo.
Las relaciones en un modelo de datos orientado a
objetos pueden ser de dos tipos:
Relación interobjetos: Vínculo Atributo Clase
Relación de herencia de jerarquía de clases
Relación InterObjetos: Vínculo Atributo Clase
Una relación atributo-clase o relación interobjeto,
se crea cuando el atributo de un determinado objeto
hace referencia hacia otro objeto que puede ser de
la misma clase (recursividad) u otro objeto de clase
diferente.
Existen dos tipos de relaciones interobjeto que
vamos a estudiar a continuación:
Relaciones 1:M
Relaciones M:N
Relaciones 1:M
Para representar una relación 1:M
En la clase “muchos” defina un atributo para
almacenar el identificador del objeto (clave primaria)
de la clase “uno”.
En la clase “uno” defina un atributo para almacenar el
conjunto de valores, que representa los identificadores
de los “muchos” objetos que está relacionado.
Relaciones M:N
La relación M:N es la relación definida como
“parte de un todo”.
En esta relación, una clase (clase A)está compuesta
de muchos identificadores de otra clase (clase B).
Y de la misma forma, cada clase (clase B) está
compuesta de muchos identificadores de otra clase
(clase A).
Sistema de gestión de base de datos OO
La información que administra una base de datos
orientadas a objetos se representa a través de
objetos como los presentes en la programación
orientada a objetos.
Cuando se integra las características de una base de
datos con las de un lenguaje de programación
orientado a objetos, el resultado es un sistema
gestor de base de datos orientada a objetos
(ODBMS, OBJECT DATABASE
MANAGEMENT SYSTEM).
Sistema de gestión de base de datos OO
Los diversos Sistemas de Gestión de Base de Datos
Orientadas a Objetos utilizan diversos lenguajes de
programación:
Funcionalidades: Persistencia
Es la capacidad de manipular los datos, los cuales
se encuentran almacenados en una base de datos,
directamente utilizando un lenguaje de
programación orientado a objetos.
A través de la persistencia, la manipulación de
objetos se realiza directamente por el lenguaje de
programación, de la misma manera que en la
memoria, sin persistencia de objetos. Esto se logra
mediante el almacenamiento en el caché de la
memoria.
Funcionalidades: Concurrencia
Permite a los usuarios acceder al SMBDOO en una
aplicación.
Los mecanismos de control de concurrencia
incluyen mecanismos de recuperación durante
fallos. Modos de control de concurrencia son:
Pesimista: Obliga a una transacción a esperar a que se
resuelva el conflicto para actualizar los datos.
Optimista: Deja correr la transacción y resuelve éste al final
del commit, emplea usando TimeStamp y copias de la
transacción.
Mixto: Combina diferentes controles de concurrencia a
diferentes objetos y tipos de datos en una misma
transacción.
Funcionalidades: Recuperación
Es el proceso de aplicar consistencia a los datos
después de que una transacción ha abortado por
fallas de hardware o de comunicación.
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 se especifica en dos partes:
La interfaz que define la 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.
Ventajas de un SGBDOO
Definir la información como objetos, mejora la
comunicación entre usuarios, diseñadores y
analistas.
Uso de un lenguaje para definir los datos y los
métodos facilita el desarrollo de las aplicaciones.
Define nuevos tipos de datos a partir de los
existentes.
Ventajas de un SGBDOO
El modelo soporta el acceso a la navegabilidad (un
registro a la vez) como permite recorrer los objetos,
a través de colecciones.
Se cuenta con un estándar SQL-99 que abre el
camino de integrar las versiones orientadas a
objetos dentro de las bases de datos relacionales.
Desventajas de un SGBDOO
No se cuenta con un modelo Universal aceptado
para manipular los objetos, lo que obliga a que
cada ejecución cree su propia versión.
Diferentes proveedores desarrollan diferentes
versiones de OQL y esto limita su verdadera
interoperabilidad.
Es más complejo el diseño y actualizarlos.
Desventajas de un SGBDOO
No se cuenta con restricciones declarativas por que
depende de los métodos definidos en los objetos.
Restricciones a las Vistas (View) por comprometer
a la encapsulación.
No se pueden definir procedimiento almacenados.