SlideShare una empresa de Scribd logo
1 de 19
ESTRUCTURA DE DATOS IESTRUCTURA DE DATOS I
MEMORIA PERSISTENTEMEMORIA PERSISTENTE
EXPOSITOR:EXPOSITOR:
Ing. Evans Balcazar VeizagaIng. Evans Balcazar Veizaga
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
DEFINICIONDEFINICION
VENTAJAS DEL MODELO PERSISTENTEVENTAJAS DEL MODELO PERSISTENTE
DESVENTAJAS DEL MODELO PERSISTENTEDESVENTAJAS DEL MODELO PERSISTENTE
EJEMPLOEJEMPLO
BIBLIOGRAFIABIBLIOGRAFIA
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
A la característica que le permite a un objeto existir mas allá del tiempo
de vida del programa que lo instancia, se le llama persistencia, de tal
suerte, los objetos pueden se clasificados como :
Transitorios:
Cuyo tiempo de vida depende directamente del
ámbito de la función que los instanció (o
del programa en caso de ser globales).
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 programa que los
instanció.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
Existen varias formas en las que un programador puede resolver el
problema del almacenamiento de objetos Una de ellas es escribir
directamente los objetos en archivos, para lo cual el programador
deberá crear el código que a partir de las librerías del lenguaje le
permitan almacenar y recuperar los objetos.
En esta modalidad, el programador deberá convertir las
representaciones en memoria de los objetos a flujos de bytes (a este
proceso se le conoce como serialización).
La serialización y todas las demás consideraciones de almacenamiento
(manejo de archivos, indexación, distribución, paginación, relaciones
entre objetos, etc...) quedan a cargo del programador. Esto requiere de
un gran esfuerzo de programación.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
Actualmente, coexistiendo con estos sistemas anteriormente
mencionados están surgiendo nuevas iniciativas, la mayoría de ellas
ideadas para conseguir que los lenguajes de programación soporten
objetos persistentes.
Persistencia en Java
Si nos centramos en el lenguaje de programación Java, por ejemplo,
vemos que existe un amplio abanico de posibilidades cara a conseguir
dicho objetivo. Así, nos encontramos con proyectos como Pjava
(Persistent Java), que proporciona un entorno de programación
persistente para el lenguaje Java basado en una modificación de su
plataforma.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
Esquema general para la inclusión de funcionalidades de bases de datos
en un lenguaje
de programación.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
Persistencia en C++
El operador new (palabra clave C++) proporciona espacio de
almacenamiento persistente, similar pero superior a la función de
Librería Estándar malloc. Este operador permite crear un objeto de
cualquier tipo, incluyendo tipos definidos por el usuario, y devuelve un
puntero (del tipo adecuado) al objeto creado.
Su utilización exige que el usuario declarare un puntero del tipo
adecuado; a continuación debe ser inicializado con el valor devuelto
por el operador. Si el objeto creado es tipo T, sería algo así:
T* puntero = valor-devuelto-por-el-operador;
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
Los objetos creados con new son persistentes, es decir, la vida del
nuevo objeto es desde el punto de creación hasta el final del programa
o hasta que el programador lo destruya explícitamente con el operador
delete. Este último desasigna la zona de memoria ocupada por el
objeto, de forma que queda disponible para nuevo uso. Las sucesivas
invocaciones de este operador van reservando zonas de memoria en el
montón para los objetos sucesivamente creados. El gestor de memoria
del compilador se encarga de mantener una tabla con los sitios
ocupados y libres sin que haya conflictos hasta que la memoria se ha
agota, o no existe espacio contiguo suficiente para el nuevo objeto. En
cuyo caso se lanza una excepción como indicativo del error.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
Peligros
La persistencia de los objetos creados con new y su independencia del
ámbito desde el que han sido creados, es muy importante y de tener en
cuenta, pues suele ser motivo de pérdidas de memoria en el programa
si olvidamos destruirlos cuando ya no son necesarios . Hay que prestar
especial atención, porque en una sentencia como:
voidfunc() {
...
tipoX* Xptr = new tipoX;
...
}
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
el área de almacenamiento señalada por el puntero es persistente, pero
Xptr que es una variable local automática no lo es. Si olvidamos
destruir el objeto creado (con delete) antes de salir del ámbito, el área
de almacenamiento permanecerá ocupando espacio en el montón y no
podrá ser recuperada nunca, pues el puntero Xptr habrá desaparecido.
La cuestión de pérdida de memoria no es solo cuestión de que el
programador "recuerde" utilizar delete antes de salir del ámbito del
puntero. También puede producirse por otras circunstancias. Por
ejemplo, el mecanismo de lanzamiento y captura de excepciones C++
puede funcionar como un salto, goto o break multinivel, que saque
abruptamente de ámbito al puntero con la consiguiente pérdida
irreparable. La situación puede ser esquematiza como sigue (la figura
adjunta muestra el estado de la pila y el alcance del desmontaje -"Stack
unwinding"- caso de producirse un error).
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
fun1() {
try { fun2(); }
catch (...) {
...
}
}
fun2() {
A* aptr = new A; // crear objeto
foo();
...
delete aptr; // Ok. destruir el objeto
} // antes de salir de ámbito
foo() {
...
if (x) throw "Error";
...
}
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
La situación anterior es de gran peligro potencial. Si se produce la
condición x, y se lanza la excepción en foo, la pila será desmontada
hasta el punto de la sentencia catch en fun1 que recibirá el control. La
secuencia de ejecución no pasará nunca por el delete de fun2, con lo
que el espacio del objeto A se perderá irremediablemente.
Conscientes del deficiente maridaje entre el operador new y el sistema
C++ de excepciones, los diseñadores de la Librería Estándar, han
incluido en esta un puntero "inteligente" auto_ptr, que resuelve este
tipo de problemas.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
La persistencia permite al programador el almacenar, transferir y
recuperar el estado de los objetos.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
La persistencia es muy difícil de implementar puesto que es muy
compleja ya que le exige al programador el manejo de Puntero.
Todo objeto creado de forma persistente debe de ser destruido
cuando ya no se lo necesita puesto que ocasiona pérdidas de
memoria en el programa si olvidamos destruirlos.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
#include<conio.h>
#include<iostream.h>
#include <vcl.h>
#pragma hdrstop
#include <fstream.h>
class persona
{
private:
String nombre;
public:
persona();
void setnom(String s);
String getnom();
};
persona::persona()
{
nombre="vacio";
}
void persona:: setnom(String s)
{
nombre=s;
}
String persona::getnom()
{
return nombre;
}
void main ()
{
persona p,q;
p.setnom("iris");
ofstream out;
out.open("persona.dat");
out.write((char*)&p,sizeof(persona));
out.close();
ifstream in;
in.open("persona.dat");
in.read ((char*)&q,sizeof(persona));
out.close();
cout<< q.getnom();
getch();
}
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
[4] M. Atkinson, L. Daynès, M. Jordan, T. Printezis, S. Spence. An
Orthogonally Persistent Java. SIGMOD Record, Vol 25 Nº4. December,1996
[5] Steven T. Abell. Using Java with PSE. Java White Paper.
http://www.odi.com, March 1999.
http://www.programación.com
Autora y Enviado por:
ROCIO BAILON CARPIO con correo BRITNEYRK@HOTMAIL.COM el
día 10 de julio de 2006
PROGRAMA DE VISUAL BASIC 5.0
A:
http://www.Programación en castellano_ Foros de debate_ Visual FoxPro
programacion gratis.htm
Copyright © 1999-2006 Programación en castellano. Todos los derechos
reservados. Información extraide de dicha página web a las 9:30 pm. El día
viernes 15 de septiembre de 2006.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
http://www.itlp.edu.mx/publica/revistas/revistali/anteriores/marzo99/actual3.ht
ml
http://www. Formas de Proveer la Persistencia.htm Autor: Ing. Marco Antonio
Castro Liera. Información extraide de dicha página web a las 8:00 pm. El día
Jueves 14 de septiembre de 2006.
Ambler, S. “Persistence layer requirement”. Software develpoment. 6(1) 70-
71, January 1998.
Ambler, S. “Persistence modeling in the UML”. Software
Development Magazine. http://www.sdma gazine.com/articles/1999/
0008a.htm. August 1999.
Ambler, S. “The Design of Robust Persistence Layer for Relational
Database”. http://www.amysoft.com/ persistencelayer.pdf. October
21, 2000.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
Sitio Web http://www.zator.com/CPP/E4_9_20a.html Autor Copyright ©
2000-2006 Zator Systems. Información extraída de dicha pagina el 26 de
septiembre de 2006 a las 9:25 pm.
ESTRUCTURA DE DATOS
MODELO PERSISTENTE
INF-220 Estructura de Datos I

Más contenido relacionado

La actualidad más candente

Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Juan Lopez
 
Comparativa sgbd comercial vs libre
Comparativa sgbd comercial vs libreComparativa sgbd comercial vs libre
Comparativa sgbd comercial vs libreFportavella
 
1.1 tipos de datos abstractos
1.1 tipos de datos abstractos1.1 tipos de datos abstractos
1.1 tipos de datos abstractoserwin_alexander
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaceslopezcortes
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacionlongojose
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosKarina Rivra
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?Software Guru
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoriaMiguel Magaña
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasJ M
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionjorge severino
 

La actualidad más candente (20)

Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
Unidad 3 administracion de memoria(recoplilacion de todas las exposiciones)
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Comparativa sgbd comercial vs libre
Comparativa sgbd comercial vs libreComparativa sgbd comercial vs libre
Comparativa sgbd comercial vs libre
 
Algoritmo del baquero
Algoritmo del baqueroAlgoritmo del baquero
Algoritmo del baquero
 
1.1 tipos de datos abstractos
1.1 tipos de datos abstractos1.1 tipos de datos abstractos
1.1 tipos de datos abstractos
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoria
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
Sistemas de archivos
Sistemas de archivosSistemas de archivos
Sistemas de archivos
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Clase 11 uml_casos_de_uso
Clase 11 uml_casos_de_usoClase 11 uml_casos_de_uso
Clase 11 uml_casos_de_uso
 

Similar a Modelo Persistente

Similar a Modelo Persistente (20)

Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistente
 
Cplus
CplusCplus
Cplus
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Tema 11
Tema 11Tema 11
Tema 11
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
Enclausulamiento java
Enclausulamiento javaEnclausulamiento java
Enclausulamiento java
 
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 
Modelo Simulado
Modelo SimuladoModelo Simulado
Modelo Simulado
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 
P R A C T I C A2
P R A C T I C A2P R A C T I C A2
P R A C T I C A2
 
Programacion orientada a objetos en javascript
Programacion orientada a objetos en javascriptProgramacion orientada a objetos en javascript
Programacion orientada a objetos en javascript
 
Javascript OOP
Javascript OOPJavascript OOP
Javascript OOP
 
Guía JavaScript
Guía JavaScriptGuía JavaScript
Guía JavaScript
 

Más de Evans Balcazar

ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSEvans Balcazar
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSEvans Balcazar
 
ESTRUCTURAS DE DATOS FUNDAMENTALES
ESTRUCTURAS DE DATOS FUNDAMENTALESESTRUCTURAS DE DATOS FUNDAMENTALES
ESTRUCTURAS DE DATOS FUNDAMENTALESEvans Balcazar
 
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOSPRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOSEvans Balcazar
 
Arboles 2-3 Insertar Eliminar
Arboles 2-3 Insertar EliminarArboles 2-3 Insertar Eliminar
Arboles 2-3 Insertar EliminarEvans Balcazar
 
Introduccion a Arboles AVL
Introduccion a Arboles AVLIntroduccion a Arboles AVL
Introduccion a Arboles AVLEvans Balcazar
 
Arboles AVL Rotaciones
Arboles AVL RotacionesArboles AVL Rotaciones
Arboles AVL RotacionesEvans Balcazar
 
Introduccion a Grafos 2
Introduccion a Grafos 2Introduccion a Grafos 2
Introduccion a Grafos 2Evans Balcazar
 
Introduccion a Grafos 1
Introduccion a Grafos 1Introduccion a Grafos 1
Introduccion a Grafos 1Evans Balcazar
 
Dce06 Arteaga 2007 2 Conferencia
Dce06  Arteaga 2007 2 ConferenciaDce06  Arteaga 2007 2 Conferencia
Dce06 Arteaga 2007 2 ConferenciaEvans Balcazar
 
Dce06 Arteaga 2007 1 Conferencia
Dce06  Arteaga 2007 1 ConferenciaDce06  Arteaga 2007 1 Conferencia
Dce06 Arteaga 2007 1 ConferenciaEvans Balcazar
 
Dce06 Arteaga 2007 3 Conferencia
Dce06  Arteaga 2007 3 ConferenciaDce06  Arteaga 2007 3 Conferencia
Dce06 Arteaga 2007 3 ConferenciaEvans Balcazar
 

Más de Evans Balcazar (20)

Matriz Sparse
Matriz SparseMatriz Sparse
Matriz Sparse
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
ESTRUCTURAS DE DATOS FUNDAMENTALES
ESTRUCTURAS DE DATOS FUNDAMENTALESESTRUCTURAS DE DATOS FUNDAMENTALES
ESTRUCTURAS DE DATOS FUNDAMENTALES
 
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOSPRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
PRINCIPIOS DEL DISEÑO DE ESTRUCTURAS DE DATOS
 
Recorridos de Grafos
Recorridos de GrafosRecorridos de Grafos
Recorridos de Grafos
 
Arboles 2-3 Insertar Eliminar
Arboles 2-3 Insertar EliminarArboles 2-3 Insertar Eliminar
Arboles 2-3 Insertar Eliminar
 
Introduccion a Arboles AVL
Introduccion a Arboles AVLIntroduccion a Arboles AVL
Introduccion a Arboles AVL
 
Insercion Arboles AVL
Insercion Arboles AVLInsercion Arboles AVL
Insercion Arboles AVL
 
Arboles AVL Rotaciones
Arboles AVL RotacionesArboles AVL Rotaciones
Arboles AVL Rotaciones
 
Arboles Recorridos
Arboles RecorridosArboles Recorridos
Arboles Recorridos
 
Arboles Ordenados
Arboles OrdenadosArboles Ordenados
Arboles Ordenados
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Recorrido de Grafos
Recorrido de GrafosRecorrido de Grafos
Recorrido de Grafos
 
Introduccion a Grafos 2
Introduccion a Grafos 2Introduccion a Grafos 2
Introduccion a Grafos 2
 
Introduccion a Grafos 1
Introduccion a Grafos 1Introduccion a Grafos 1
Introduccion a Grafos 1
 
Dce06 Arteaga 2007 2 Conferencia
Dce06  Arteaga 2007 2 ConferenciaDce06  Arteaga 2007 2 Conferencia
Dce06 Arteaga 2007 2 Conferencia
 
Dce06 Arteaga 2007 1 Conferencia
Dce06  Arteaga 2007 1 ConferenciaDce06  Arteaga 2007 1 Conferencia
Dce06 Arteaga 2007 1 Conferencia
 
Dce06 Arteaga 2007 3 Conferencia
Dce06  Arteaga 2007 3 ConferenciaDce06  Arteaga 2007 3 Conferencia
Dce06 Arteaga 2007 3 Conferencia
 
Modelo Simulado
Modelo SimuladoModelo Simulado
Modelo Simulado
 

Último

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Último (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

Modelo Persistente

  • 1. ESTRUCTURA DE DATOS IESTRUCTURA DE DATOS I MEMORIA PERSISTENTEMEMORIA PERSISTENTE EXPOSITOR:EXPOSITOR: Ing. Evans Balcazar VeizagaIng. Evans Balcazar Veizaga ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 2. DEFINICIONDEFINICION VENTAJAS DEL MODELO PERSISTENTEVENTAJAS DEL MODELO PERSISTENTE DESVENTAJAS DEL MODELO PERSISTENTEDESVENTAJAS DEL MODELO PERSISTENTE EJEMPLOEJEMPLO BIBLIOGRAFIABIBLIOGRAFIA ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 3. A la característica que le permite a un objeto existir mas allá del tiempo de vida del programa que lo instancia, se le llama persistencia, de tal suerte, los objetos pueden se clasificados como : Transitorios: Cuyo tiempo de vida depende directamente del ámbito de la función que los instanció (o del programa en caso de ser globales). 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 programa que los instanció. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 4. Existen varias formas en las que un programador puede resolver el problema del almacenamiento de objetos Una de ellas es escribir directamente los objetos en archivos, para lo cual el programador deberá crear el código que a partir de las librerías del lenguaje le permitan almacenar y recuperar los objetos. En esta modalidad, el programador deberá convertir las representaciones en memoria de los objetos a flujos de bytes (a este proceso se le conoce como serialización). La serialización y todas las demás consideraciones de almacenamiento (manejo de archivos, indexación, distribución, paginación, relaciones entre objetos, etc...) quedan a cargo del programador. Esto requiere de un gran esfuerzo de programación. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 5. Actualmente, coexistiendo con estos sistemas anteriormente mencionados están surgiendo nuevas iniciativas, la mayoría de ellas ideadas para conseguir que los lenguajes de programación soporten objetos persistentes. Persistencia en Java Si nos centramos en el lenguaje de programación Java, por ejemplo, vemos que existe un amplio abanico de posibilidades cara a conseguir dicho objetivo. Así, nos encontramos con proyectos como Pjava (Persistent Java), que proporciona un entorno de programación persistente para el lenguaje Java basado en una modificación de su plataforma. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 6. Esquema general para la inclusión de funcionalidades de bases de datos en un lenguaje de programación. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 7. Persistencia en C++ El operador new (palabra clave C++) proporciona espacio de almacenamiento persistente, similar pero superior a la función de Librería Estándar malloc. Este operador permite crear un objeto de cualquier tipo, incluyendo tipos definidos por el usuario, y devuelve un puntero (del tipo adecuado) al objeto creado. Su utilización exige que el usuario declarare un puntero del tipo adecuado; a continuación debe ser inicializado con el valor devuelto por el operador. Si el objeto creado es tipo T, sería algo así: T* puntero = valor-devuelto-por-el-operador; ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 8. Los objetos creados con new son persistentes, es decir, la vida del nuevo objeto es desde el punto de creación hasta el final del programa o hasta que el programador lo destruya explícitamente con el operador delete. Este último desasigna la zona de memoria ocupada por el objeto, de forma que queda disponible para nuevo uso. Las sucesivas invocaciones de este operador van reservando zonas de memoria en el montón para los objetos sucesivamente creados. El gestor de memoria del compilador se encarga de mantener una tabla con los sitios ocupados y libres sin que haya conflictos hasta que la memoria se ha agota, o no existe espacio contiguo suficiente para el nuevo objeto. En cuyo caso se lanza una excepción como indicativo del error. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 9. Peligros La persistencia de los objetos creados con new y su independencia del ámbito desde el que han sido creados, es muy importante y de tener en cuenta, pues suele ser motivo de pérdidas de memoria en el programa si olvidamos destruirlos cuando ya no son necesarios . Hay que prestar especial atención, porque en una sentencia como: voidfunc() { ... tipoX* Xptr = new tipoX; ... } ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 10. el área de almacenamiento señalada por el puntero es persistente, pero Xptr que es una variable local automática no lo es. Si olvidamos destruir el objeto creado (con delete) antes de salir del ámbito, el área de almacenamiento permanecerá ocupando espacio en el montón y no podrá ser recuperada nunca, pues el puntero Xptr habrá desaparecido. La cuestión de pérdida de memoria no es solo cuestión de que el programador "recuerde" utilizar delete antes de salir del ámbito del puntero. También puede producirse por otras circunstancias. Por ejemplo, el mecanismo de lanzamiento y captura de excepciones C++ puede funcionar como un salto, goto o break multinivel, que saque abruptamente de ámbito al puntero con la consiguiente pérdida irreparable. La situación puede ser esquematiza como sigue (la figura adjunta muestra el estado de la pila y el alcance del desmontaje -"Stack unwinding"- caso de producirse un error). ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 11. fun1() { try { fun2(); } catch (...) { ... } } fun2() { A* aptr = new A; // crear objeto foo(); ... delete aptr; // Ok. destruir el objeto } // antes de salir de ámbito foo() { ... if (x) throw "Error"; ... } ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 12. La situación anterior es de gran peligro potencial. Si se produce la condición x, y se lanza la excepción en foo, la pila será desmontada hasta el punto de la sentencia catch en fun1 que recibirá el control. La secuencia de ejecución no pasará nunca por el delete de fun2, con lo que el espacio del objeto A se perderá irremediablemente. Conscientes del deficiente maridaje entre el operador new y el sistema C++ de excepciones, los diseñadores de la Librería Estándar, han incluido en esta un puntero "inteligente" auto_ptr, que resuelve este tipo de problemas. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 13. La persistencia permite al programador el almacenar, transferir y recuperar el estado de los objetos. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 14. La persistencia es muy difícil de implementar puesto que es muy compleja ya que le exige al programador el manejo de Puntero. Todo objeto creado de forma persistente debe de ser destruido cuando ya no se lo necesita puesto que ocasiona pérdidas de memoria en el programa si olvidamos destruirlos. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 15. #include<conio.h> #include<iostream.h> #include <vcl.h> #pragma hdrstop #include <fstream.h> class persona { private: String nombre; public: persona(); void setnom(String s); String getnom(); }; persona::persona() { nombre="vacio"; } void persona:: setnom(String s) { nombre=s; } String persona::getnom() { return nombre; } void main () { persona p,q; p.setnom("iris"); ofstream out; out.open("persona.dat"); out.write((char*)&p,sizeof(persona)); out.close(); ifstream in; in.open("persona.dat"); in.read ((char*)&q,sizeof(persona)); out.close(); cout<< q.getnom(); getch(); } ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 16. [4] M. Atkinson, L. Daynès, M. Jordan, T. Printezis, S. Spence. An Orthogonally Persistent Java. SIGMOD Record, Vol 25 Nº4. December,1996 [5] Steven T. Abell. Using Java with PSE. Java White Paper. http://www.odi.com, March 1999. http://www.programación.com Autora y Enviado por: ROCIO BAILON CARPIO con correo BRITNEYRK@HOTMAIL.COM el día 10 de julio de 2006 PROGRAMA DE VISUAL BASIC 5.0 A: http://www.Programación en castellano_ Foros de debate_ Visual FoxPro programacion gratis.htm Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados. Información extraide de dicha página web a las 9:30 pm. El día viernes 15 de septiembre de 2006. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 17. http://www.itlp.edu.mx/publica/revistas/revistali/anteriores/marzo99/actual3.ht ml http://www. Formas de Proveer la Persistencia.htm Autor: Ing. Marco Antonio Castro Liera. Información extraide de dicha página web a las 8:00 pm. El día Jueves 14 de septiembre de 2006. Ambler, S. “Persistence layer requirement”. Software develpoment. 6(1) 70- 71, January 1998. Ambler, S. “Persistence modeling in the UML”. Software Development Magazine. http://www.sdma gazine.com/articles/1999/ 0008a.htm. August 1999. Ambler, S. “The Design of Robust Persistence Layer for Relational Database”. http://www.amysoft.com/ persistencelayer.pdf. October 21, 2000. ESTRUCTURA DE DATOS MODELO PERSISTENTE
  • 18. Sitio Web http://www.zator.com/CPP/E4_9_20a.html Autor Copyright © 2000-2006 Zator Systems. Información extraída de dicha pagina el 26 de septiembre de 2006 a las 9:25 pm. ESTRUCTURA DE DATOS MODELO PERSISTENTE