Base de datos

Solo disponible en BuenasTareas
  • Páginas : 7 (1599 palabras )
  • Descarga(s) : 0
  • Publicado : 24 de febrero de 2010
Leer documento completo
Vista previa del texto
Persistencia de los objetos

Los lenguajes de programación orientados a objetos ya poseen un concepto de los mismos, un sistema de tipos para definir sus tipos y constructoras para crearlos. Sin embargo, estos objetos son transitorios, desaparecen en cuanto se termina el programa, igual que ocurre con las variables de los programas en Pascal o en C. Si se desea transformar uno de estoslenguajes 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.

• Persistencia por clases. El enfoque más sencillo, pero el menos conveniente, consiste en declarar que una clase es persistente. Todos los objetos de la clase son, por tanto, persistentes de manera pre-determinada. Todos los objetos de las clases no persistentes son transitorios.

Este enfoque no es flexible, dado que suele resultar útil disponer en una misma clase tanto de objetos transitorios como de objetos persistentes. En muchos sistemas de bases de datos orientados a objetos la declaración de que una clase es per- sistente se interpreta como si se afirmara que los objetos de la clase puedenhacerse persistentes en vez de que todos los objetos de la clase son per- sistentes. Estas clases se podrían haber denomi- nado con más propiedad clases «que pueden ser persistentes».
• Persistencia por creación. En este enfoque se introduce una sintaxis nueva para crear los obje- tos persistentes mediante la extensión de la sin- taxis para la creación de los objetos transitorios. Por tanto,los objetos son persistentes o transito- rios en función de la manera de crearlos. Este enfoque se sigue en varios sistemas de bases de datos orientados a objetos.
• Persistencia por marcas. Una variante del enfo- que anterior es marcar los objetos como persisten- tes después de haberlos creado. Todos los objetos se crean como transitorios, pero, si un objeto tiene que persistir más allá de laejecución del programa, hay que marcarlo de manera explícita antes de que éste concluya. A diferencia del enfoque anterior, la decisión sobre la persistencia o la transitoriedad se retrasa hasta después de la creación del objeto.
• Persistencia por alcance. Uno o varios objetos se declaran objetos persistentes (objetos raíz) de manera explícita. Todos los demás objetos serán persistentes si(y sólo si) son alcanzables desde el objeto raíz mediante una secuencia de una o más referencias.
Por tanto, todos los objetos a los que se haga referencia desde los objetos persistentes raíz (es decir, aquéllos cuyos identificadores se almacenen en los objetos persistentes raíz) serán persistentes. Pero también lo serán todos los objetos a los que se haga referencia desde ellos, y losobjetos a los que estos últimos hagan referencia serán también persistentes, etcétera. Por tanto, los objetos per- sistentes son exactamente los alcanzables desde una raíz persistente.
Este esquema tiene la ventaja de que resulta sen- cillo hacer que sean persistentes estructuras de datos completas con sólo declarar como persistente la raíz de las mismas. Sin embargo, el sistema de bases de datossufre la carga de tener que seguir las cade- nas de referencias para detectar los objetos que son persistentes, y eso puede resultar costoso.

La identidad de los objetos y los punteros

En los lenguajes de programación orientados a objetos que no se han extendido para tratar la persistencia, al crear objetos se obtienen identificadores de objetos transitorios. Los identificadores de objetostransitorios sólo son válidos mientras se ejecuta el programa que los creó; después de que concluya ese programa el objeto se borra y el identificador pierde su sentido. Cuando se crean objetos persistentes se les asignan identificadores de objetos persistentes.
El concepto de la identidad de los objetos tiene una relación interesante con los punteros de los lenguajes de programación. Una...
tracking img