SlideShare uma empresa 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

Mais conteúdo relacionado

Mais procurados

ORACLE EJERCICIO LABORATORIO
ORACLE EJERCICIO LABORATORIOORACLE EJERCICIO LABORATORIO
ORACLE EJERCICIO LABORATORIOSefira111
 
Unidad 4 Interoperabilidad entre sistemas operativos
Unidad 4 Interoperabilidad entre sistemas operativos Unidad 4 Interoperabilidad entre sistemas operativos
Unidad 4 Interoperabilidad entre sistemas operativos Roberto Encarnación
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosEsteban Andres Diaz Mina
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoFreddySantiago32
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSYessica Hyuga Soto
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosJosé Antonio Sandoval Acosta
 
Analisis y determinacion de requerimientos
Analisis y determinacion de requerimientosAnalisis y determinacion de requerimientos
Analisis y determinacion de requerimientosYesith Valencia
 

Mais procurados (20)

ORACLE EJERCICIO LABORATORIO
ORACLE EJERCICIO LABORATORIOORACLE EJERCICIO LABORATORIO
ORACLE EJERCICIO LABORATORIO
 
Unidad 4 Interoperabilidad entre sistemas operativos
Unidad 4 Interoperabilidad entre sistemas operativos Unidad 4 Interoperabilidad entre sistemas operativos
Unidad 4 Interoperabilidad entre sistemas operativos
 
Diseño de una Base de Datos
Diseño de una Base de DatosDiseño de una Base de Datos
Diseño de una Base de Datos
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de Datos
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientado
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
 
Gestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativosGestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativos
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Paginación y segmentación
Paginación y segmentaciónPaginación y segmentación
Paginación y segmentación
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negociosFundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Analisis y determinacion de requerimientos
Analisis y determinacion de requerimientosAnalisis y determinacion de requerimientos
Analisis y determinacion de requerimientos
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Scrum vs RUP
Scrum vs RUPScrum vs RUP
Scrum vs RUP
 

Semelhante a Modelo Persistente

Semelhante 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
 

Mais 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
 

Mais 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

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (16)

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.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