fbpx
Wikipedia

Persistencia (informática)

En informática, la persistencia se refiere a la propiedad de los datos para que estos sobrevivan de alguna manera.

En programación, la persistencia es la acción de preservar la información de un objeto de forma permanente (guardado), pero a su vez también se refiere a poder recuperar la información del mismo (leerlo) para que pueda ser nuevamente utilizado.

De forma sencilla, puede entenderse que los datos tienen una duración efímera; desde el momento en que estos cambian de valor se considera que no hay persistencia de los mismos. Sin embargo, en informática hay varios ámbitos donde se aplica y se entiende la persistencia.

Tipos de persistencia de dato

Se consideran varios tipos de persistencia.

Persistencia en memoria

La persistencia en memoria es la capacidad de un dato u objeto para seguir existiendo tras determinadas operaciones.

La operación más común que se presta a la persistencia en memoria es la asignación. Existen dos ideas respecto de lo que debe suceder con un dato, estructura u objeto una vez asignado desde el original.

Colecciones

En unos casos lo que se desea es que haya dos referencias a los mismos datos. Es decir: un mismo dato tiene dos punteros desde los que es posible acceder a ellos. Un tipo de dato que utiliza este método se dice que tiene persistencia si cuando se elimina uno de los punteros, los datos siguen aún en memoria. En este caso el tipo de datos utiliza un contador de referencias, de modo que cada vez que se crea una referencia se aumenta la cuenta en uno (+1) y cuando se elimina una referencia se disminuye el contador en uno (-1). El tipo de datos, por tanto, sólo es realmente eliminado cuando la cuenta del contador llega a cero (0); es decir, cuando no tiene referencias apuntando a los datos.

Ejemplo: se crea un objeto de tipo colección (Collection) y se le asignan dos datos; luego se crea otro objeto al que se le asigna la colección previa.

 Dim x As Collection Dim y As Collection Dim dia As String Set x = New Collection x.Add ("domingo") x.Add ("jueves") Set y = x dia = y.Item(1) MsgBox dia y.Add ("sábado") dia = x.Item(3) MsgBox dia Set x = nothing dia = y.Item(1) MsgBox dia 

Para verificar que son la misma referencia, después de ver que en la primera (1ª) asignación a dia es domingo (hasta este momento no hay razones para pensar si hubo una copia o son la misma referencia), añadimos luego un nuevo ítem a la segunda (2ª) colección. Volvemos a obtener ahora el ítem recién añadido pero ahora utilizando la primera colección. Se demuestra que son la misma referencia al constatar que el ítem añadido con la 2ª colección también es accesible desde la 1ª, algo que no podría suceder si cada colección apuntara a diferentes posiciones en memoria. Finalmente eliminamos una de las colecciones y observamos cómo la otra aún tiene acceso a los datos. El ejemplo demuestra cómo hay persistencia de los datos. Las colecciones son persistentes.

Vectores o arrays

En otros casos lo que interesa cuándo se hace una asignación es copiar, crear totalmente aparte un duplicado de los datos a asignar (hay preferencias para llamar a este tipo de copia clonar en vez de copiar). Por tanto no necesitan o no utilizan nunca más de una referencia, ni por tanto precisan tener un contador de referencias. Estos casos se dice que no tienen persistencia. Al eliminar la referencia los datos quedan perdidos, nunca tienen más de una referencia, ya que cuando se hace una asignación se realiza un duplicado de los datos con su propia referencia.

Un ejemplo de memoria no persistente: es similar al anterior, pero en vez de usar colecciones se usan vectores (arrays).

 Dim x() As Byte Dim y() As Byte Dim dia As String ReDim x(0 To 2) x(0) = 25 x(1) = 14 y = x dia = y(1) MsgBox dia y(2) = 6 dia = x(2) MsgBox dia 

Se puede constatar cómo los arrays no son persistentes. Cuando asignamos el valor 6 al segundo (2º) array en su elemento 2 vemos que el elemento 2 del primer (1º) array no contiene el mismo dato que se acaba de introducir en el 2º array; devuelve cero (0), ya que nunca ha sido asignado dicho elemento para el 1º array.

La comprobación del contador de referencias para (si llega el caso) su eliminación, en los lenguajes de programación más modernos recae en el recolector de basura que se encarga de liberar la memoria ocupada por los objetos sin referencias. En los lenguajes sin este mecanismo, debe explícitamente eliminarse cada objeto y en general cada aplicación es responsable de los objetos que crea.

Persistencia de aplicación

Es la capacidad para que los datos sobrevivan a la ejecución del programa que los ha creado. Sin esta capacidad, los datos solo existen en memoria RAM, y se pierden cuando la memoria pierde energía, como cuando se apaga el computador.

Este tipo de persistencia requiere que los datos sean almacenados en un medio secundario, no volátil, para su posterior reconstrucción y utilización, por lo que su tiempo de vida es independiente del proceso que los creó. Por lo tanto, deberán permanecer almacenados en memoria que no sea volátil. Es decir, que en caso de interrupción de la energía que alimenta al computador, una copia de estos datos debe permanecer almacenada.

Se puede citar, a modo ejemplo, un fichero que está almacenado en disco. Es común a muchas aplicaciones guardar en disco una copia de las opciones de configuración de un programa cada vez que el usuario realiza cambios. Si dichos cambios no se guardaran a disco, la próxima vez que el usuario ejecutare la aplicación tendría que volver a definir las opciones de preferencia.

Persistencia de objetos

En el caso de persistencia de objetos la información que persiste en la mayoría de los casos son los valores que contienen los atributos en ese momento, no necesariamente la funcionalidad que proveen sus métodos.

La persistencia de objetos puede ser fácilmente confundida con la persistencia en memoria; incluso con la persistencia de aplicación.[1]

La persistencia de objetos consiste en la inicialización de objetos con sus atributos predeterminados o atributos por defecto. Esto es posible con dos maneras de proceder.

  1. Sobre un medio (de almacenamiento) fijo se guarda (cuando el objeto fue definido) un conjunto de datos que son recuperados cuando el tipo de objeto en cuestión es creado; dichos datos son transferidos a las propiedades del objeto.
  2. Otro objeto mantiene los datos que serán transferidos a las propiedades del nuevo objeto creado. En este caso los datos están en memoria.

Hay muchos ejemplos para este tipo de persistencia. Un caso típico son los controles ActiveX. Cuando el control es compilado junto al código se guarda una copia de los datos que el programador definió de forma predeterminada. Cuando se instancia una referencia al control, este lee del disco (donde está almacenada la librería asociada al control) los datos que definen y configuran sus propiedades.

Otro ejemplo son las primitivas que se utilizan para recrear objetos tridimensionales (en 3D) a partir de los cuales pueden crearse objetos más complejos. Supongamos que vamos a crear un avión con geometría 3D. Inicialmente podemos crear cada primitiva que compone el mismo, desde memoria, el motor de la aplicación puede definir un nuevo objeto con las medidas que el usuario define y posicionado igualmente en las coordenadas que el usuario señala para crear el objeto. Sin embargo, a medida que el objeto crece y tiene más datos, se hace necesario guardar el objeto en disco. Este objeto puede ahora ser guardado y ser utilizado las próximas veces como una primitiva, un punto a partir del cual iniciar la creación de otros objetos más complejos basados en este. Si ahora se quiere crear un nuevo modelo de avión posiblemente sea más sencillo modificar la primitiva definida que crear uno totalmente nuevo; por tanto, es necesaria la persistencia de la primitiva para recrear nuevos objetos basados en ella. Las primitivas complejas se acoplan a la primera manera definida y las primitivas sencillas se ajustan a la segunda manera definida.

Para guardar los datos de objetos en disco se recurre a un mecanismo conocido como serialización (serializar), que dispone en una secuencia de bytes todos los datos (o sólo aquellos que se desee) que definen el objeto.

Desde la óptica de la persistencia, se podrían clasificar los objetos en:

  • Transitorios: cuyo tiempo de vida depende directamente del ámbito del proceso que los instanció.
  • Persistentes: cuyo estado es almacenado en un medio secundario para su posterior reconstrucción y utilización, por lo que su tiempo de vida es independiente del proceso que los instanció.

Al programador, la persistencia permite almacenar, transferir y recuperar el estado de los objetos. Para esto existen varias técnicas:

Véase también

Notas y referencias

  1. La persistencia no es ni una capacidad ni una propiedad de la POO, no tiene nada que ver con el paradigma en sí, sólo es el mecanismo que se usa para persistir información de un determinado tipo (como puede ser serializar, guardar los datos en una tabla, en un archivo plano, etcétera).

Enlaces externos

  • del open course del MIT (enlaces rotos).
  •   Datos: Q1400808

persistencia, informática, informática, persistencia, refiere, propiedad, datos, para, estos, sobrevivan, alguna, manera, programación, persistencia, acción, preservar, información, objeto, forma, permanente, guardado, pero, también, refiere, poder, recuperar,. En informatica la persistencia se refiere a la propiedad de los datos para que estos sobrevivan de alguna manera En programacion la persistencia es la accion de preservar la informacion de un objeto de forma permanente guardado pero a su vez tambien se refiere a poder recuperar la informacion del mismo leerlo para que pueda ser nuevamente utilizado De forma sencilla puede entenderse que los datos tienen una duracion efimera desde el momento en que estos cambian de valor se considera que no hay persistencia de los mismos Sin embargo en informatica hay varios ambitos donde se aplica y se entiende la persistencia Indice 1 Tipos de persistencia de dato 1 1 Persistencia en memoria 1 1 1 Colecciones 1 1 2 Vectores o arrays 1 2 Persistencia de aplicacion 1 3 Persistencia de objetos 2 Vease tambien 3 Notas y referencias 4 Enlaces externosTipos de persistencia de dato EditarSe consideran varios tipos de persistencia Persistencia en memoria Editar La persistencia en memoria es la capacidad de un dato u objeto para seguir existiendo tras determinadas operaciones La operacion mas comun que se presta a la persistencia en memoria es la asignacion Existen dos ideas respecto de lo que debe suceder con un dato estructura u objeto una vez asignado desde el original Colecciones Editar En unos casos lo que se desea es que haya dos referencias a los mismos datos Es decir un mismo dato tiene dos punteros desde los que es posible acceder a ellos Un tipo de dato que utiliza este metodo se dice que tiene persistencia si cuando se elimina uno de los punteros los datos siguen aun en memoria En este caso el tipo de datos utiliza un contador de referencias de modo que cada vez que se crea una referencia se aumenta la cuenta en uno 1 y cuando se elimina una referencia se disminuye el contador en uno 1 El tipo de datos por tanto solo es realmente eliminado cuando la cuenta del contador llega a cero 0 es decir cuando no tiene referencias apuntando a los datos Ejemplo se crea un objeto de tipo coleccion Collection y se le asignan dos datos luego se crea otro objeto al que se le asigna la coleccion previa Dim x As Collection Dim y As Collection Dim dia As String Set x New Collection x Add domingo x Add jueves Set y x dia y Item 1 MsgBox dia y Add sabado dia x Item 3 MsgBox dia Set x nothing dia y Item 1 MsgBox dia Para verificar que son la misma referencia despues de ver que en la primera 1ª asignacion a dia es domingo hasta este momento no hay razones para pensar si hubo una copia o son la misma referencia anadimos luego un nuevo item a la segunda 2ª coleccion Volvemos a obtener ahora el item recien anadido pero ahora utilizando la primera coleccion Se demuestra que son la misma referencia al constatar que el item anadido con la 2ª coleccion tambien es accesible desde la 1ª algo que no podria suceder si cada coleccion apuntara a diferentes posiciones en memoria Finalmente eliminamos una de las colecciones y observamos como la otra aun tiene acceso a los datos El ejemplo demuestra como hay persistencia de los datos Las colecciones son persistentes Vectores o arrays Editar Vease tambien Vector informatica En otros casos lo que interesa cuando se hace una asignacion es copiar crear totalmente aparte un duplicado de los datos a asignar hay preferencias para llamar a este tipo de copia clonar en vez de copiar Por tanto no necesitan o no utilizan nunca mas de una referencia ni por tanto precisan tener un contador de referencias Estos casos se dice que no tienen persistencia Al eliminar la referencia los datos quedan perdidos nunca tienen mas de una referencia ya que cuando se hace una asignacion se realiza un duplicado de los datos con su propia referencia Un ejemplo de memoria no persistente es similar al anterior pero en vez de usar colecciones se usan vectores arrays Dim x As Byte Dim y As Byte Dim dia As String ReDim x 0 To 2 x 0 25 x 1 14 y x dia y 1 MsgBox dia y 2 6 dia x 2 MsgBox dia Se puede constatar como los arrays no son persistentes Cuando asignamos el valor 6 al segundo 2º array en su elemento 2 vemos que el elemento 2 del primer 1º array no contiene el mismo dato que se acaba de introducir en el 2º array devuelve cero 0 ya que nunca ha sido asignado dicho elemento para el 1º array La comprobacion del contador de referencias para si llega el caso su eliminacion en los lenguajes de programacion mas modernos recae en el recolector de basura que se encarga de liberar la memoria ocupada por los objetos sin referencias En los lenguajes sin este mecanismo debe explicitamente eliminarse cada objeto y en general cada aplicacion es responsable de los objetos que crea Persistencia de aplicacion Editar Vease tambien Aplicacion informatica Es la capacidad para que los datos sobrevivan a la ejecucion del programa que los ha creado Sin esta capacidad los datos solo existen en memoria RAM y se pierden cuando la memoria pierde energia como cuando se apaga el computador Este tipo de persistencia requiere que los datos sean almacenados en un medio secundario no volatil para su posterior reconstruccion y utilizacion por lo que su tiempo de vida es independiente del proceso que los creo Por lo tanto deberan permanecer almacenados en memoria que no sea volatil Es decir que en caso de interrupcion de la energia que alimenta al computador una copia de estos datos debe permanecer almacenada Se puede citar a modo ejemplo un fichero que esta almacenado en disco Es comun a muchas aplicaciones guardar en disco una copia de las opciones de configuracion de un programa cada vez que el usuario realiza cambios Si dichos cambios no se guardaran a disco la proxima vez que el usuario ejecutare la aplicacion tendria que volver a definir las opciones de preferencia Persistencia de objetos Editar Vease tambien Objeto programacion En el caso de persistencia de objetos la informacion que persiste en la mayoria de los casos son los valores que contienen los atributos en ese momento no necesariamente la funcionalidad que proveen sus metodos La persistencia de objetos puede ser facilmente confundida con la persistencia en memoria incluso con la persistencia de aplicacion 1 La persistencia de objetos consiste en la inicializacion de objetos con sus atributos predeterminados o atributos por defecto Esto es posible con dos maneras de proceder Sobre un medio de almacenamiento fijo se guarda cuando el objeto fue definido un conjunto de datos que son recuperados cuando el tipo de objeto en cuestion es creado dichos datos son transferidos a las propiedades del objeto Otro objeto mantiene los datos que seran transferidos a las propiedades del nuevo objeto creado En este caso los datos estan en memoria Hay muchos ejemplos para este tipo de persistencia Un caso tipico son los controles ActiveX Cuando el control es compilado junto al codigo se guarda una copia de los datos que el programador definio de forma predeterminada Cuando se instancia una referencia al control este lee del disco donde esta almacenada la libreria asociada al control los datos que definen y configuran sus propiedades Otro ejemplo son las primitivas que se utilizan para recrear objetos tridimensionales en 3D a partir de los cuales pueden crearse objetos mas complejos Supongamos que vamos a crear un avion con geometria 3D Inicialmente podemos crear cada primitiva que compone el mismo desde memoria el motor de la aplicacion puede definir un nuevo objeto con las medidas que el usuario define y posicionado igualmente en las coordenadas que el usuario senala para crear el objeto Sin embargo a medida que el objeto crece y tiene mas datos se hace necesario guardar el objeto en disco Este objeto puede ahora ser guardado y ser utilizado las proximas veces como una primitiva un punto a partir del cual iniciar la creacion de otros objetos mas complejos basados en este Si ahora se quiere crear un nuevo modelo de avion posiblemente sea mas sencillo modificar la primitiva definida que crear uno totalmente nuevo por tanto es necesaria la persistencia de la primitiva para recrear nuevos objetos basados en ella Las primitivas complejas se acoplan a la primera manera definida y las primitivas sencillas se ajustan a la segunda manera definida Para guardar los datos de objetos en disco se recurre a un mecanismo conocido como serializacion serializar que dispone en una secuencia de bytes todos los datos o solo aquellos que se desee que definen el objeto Desde la optica de la persistencia se podrian clasificar los objetos en Transitorios cuyo tiempo de vida depende directamente del ambito del proceso que los instancio Persistentes cuyo estado es almacenado en un medio secundario para su posterior reconstruccion y utilizacion por lo que su tiempo de vida es independiente del proceso que los instancio Al programador la persistencia permite almacenar transferir y recuperar el estado de los objetos Para esto existen varias tecnicas Serializacion Motores de persistencia Bases de datos orientadas a objetos Vease tambien EditarLive USB Recolector de basura liberar memoria Serializacion serializacion de datos Vector informatica Notas y referencias Editar La persistencia no es ni una capacidad ni una propiedad de la POO no tiene nada que ver con el paradigma en si solo es el mecanismo que se usa para persistir informacion de un determinado tipo como puede ser serializar guardar los datos en una tabla en un archivo plano etcetera Enlaces externos EditarEstructuras de datos persistentes del open course del MIT Algoritmos avanzados enlaces rotos Datos Q1400808 Obtenido de https es wikipedia org w index php title Persistencia informatica amp oldid 127012083, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos