3. 3
Origen de las BDOO
El término tiene su origen en los lenguajes de
programación OO, cuyas raíces están en el lenguaje
SIMULA (1960).
SMALLTALK fue uno de los primeros LP que
incorporaron conceptos de OO, como la herencia y el
paso de mensajes.
Un LPOO puro, es aquel que ha sido específicamente
diseñado para ser OO. Uno híbrido, es un LP
tradicional que ha incorporado algunos conceptos
(Ejemplo: C++).
Un objeto consta de dos componentes: el estado (el
valor) y el comportamiento (las operaciones).
Únicamente existen durante la ejecución del programa
(objetos transitorios).
4. 4
Conceptos de BDOO
Una BDOO puede alargar la existencia de estos objetos, haciéndolos
persistentes.
Las BDOO almacenan objetos persistentes de forma permanente en
un almacenamiento secundario, y permite la compartición de los
objetos con otros programas y aplicaciones.
Uno de los objetivos de una BDOO es mantener cierta
correspondencia entre los objetos de la BD y los del mundo real.
En las BDOO, los objetos pueden tener una cierta complejidad, al
contener toda la información necesaria para describir el objeto. En
sistemas tradicionales, la información se encuentra dispersa en
múltiples tablas. Se definen las estructuras y las operaciones → se
favorece la encapsulación.
5. Repaso de conceptos de BDOO
5
Una operación se define en dos partes: signatura o
interfaz, y método o cuerpo.
Otro concepto clave son la jerarquía de tipos y la
herencia.
Un problema inicial de las BDOO era cómo representar
las relaciones. Se solucionó introduciendo los
identificadores de los objetos referenciados en el
propio objeto.
Algunos sistemas proporcionan medios para manejar
versiones, y permiten la evolución del esquema (no es
obligatorio).
Otra característica es el polimorfismo, que es la
capacidad de aplicar diferentes objetos en una
operación.
6. 6
Identidad de objeto
Se genera un identificador (OID) único a cada
objeto, que no es visible al usuario externo.
El OID debe ser inmutable. También sería
deseable que cada OID se usara una sola vez,
y que no dependiera de ninguno de sus
atributos (algunos utilizan la dirección física
del objeto).
Algunos modelos de datos antiguos, exigían
que todo fuese un objeto, manejando así
muchos OIDs → muchos sistemas permiten la
utilización tanto de objetos como de valores.
7. 7
Estructura de objeto
Los objetos pueden construirse a partir de
otros más simples.
Un objeto puede representarse como una
tupla (i, c, v), con i=identificador,
c=constructor de tipo, v=estado del objeto.
Algunos constructores: átomo, tupla, conjunto,
lista, bolsa y array.
El estado de un objeto se interpreta a partir de
su constructor.
Hay dos tipos de definiciones para una
comparación entre objetos: iguales vs
idénticos.