Re: X-IMail-SPAM-Phrase Re: Problemas al actualizar una BD

From: "Omar Zeballos" <ozeballos(at)kantutani(dot)com>
To: "Carlos Mendez" <lucas1850(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: X-IMail-SPAM-Phrase Re: Problemas al actualizar una BD
Date: 2008-01-22 17:21:04
Message-ID: 004901c85d1b$33e0cd90$1600a8c0@jefeproyectos
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Carlos,
desde mi punto de vista es una solucion pero va requerir mucha administracion. lo que te sugeria no se si es lo correcto porque desconozco las diferentes reglas de negocio con las que estas tratando, algo como ¿Cuál es el timimg de actualizacion de información? y otras cosas mas que debes considerar en Diseño. Como pauta te disparo una sugerencia para revisar el concepto de bases de datos distribuidas (me parece que puede ser el caso, no necesariamente es correcto) donde debes utilizar un tipo de fragmentacion en el nodo principal y diseñar tu ER sobre ese modelo.
Pero si tu modelo es simple como lo tratas abajo Alumanos, Profesores, Colegios... puede que la forma que propones funcione. Como vez es un tema de Diseño de Bases de Datos mas que un problema con la base que elijas, pues con cualquier base de datos tendras el mismo problema.

Siguiendo tu idea y para terminar te recomiendo un algoritmo de actualizacion simple
- a través de la llave primaria de cada tabla (este es el factor critico de éxito) verifica si el registro existe si existe realiza un UPDATE de todo si no existe realiza un INSERT. (esto deberas realizar con todas las tablas siguiendo la presedencia gerarquica del modelo). Despues realiza una comprobacion de SELECT EXISTS entre las dos bases de datos para garantizar que se haya insertado, tambien deberas hacerlo con todas las tablas.

Bueno eso es todo. Creo que el resto esta en tus manos y la creatividad que le pongas a tu diseño.
Disculpas al Foro pues nos salimos del tema de nuestro interes.
Saludos,

OmarZ
_______________________________________________________________
----- Original Message -----
From: Carlos Mendez
To: Omar Zeballos ; pgsql-es-ayuda(at)postgresql(dot)org
Sent: Monday, January 21, 2008 10:45 PM
Subject: X-IMail-SPAM-Phrase Re: [pgsql-es-ayuda] Problemas al actualizar una BD

Hola Omar, Muchas gracias por responder,

Te dire lo que estoy haciendo y dime lo que opinas,

Cuando me den el backup de un colegio lo cargare en una base de datos llamada intermedia, las tablas del backup tendran un sufijo(para diferenciarlas de las tablas de la bd intermedia) yo le puse una "t"(de temporal), es decir el backup tendra una tabla llamada alumnos_t y la bd intermedia ya tendra una tabla llamada alumnos, el espejo de la tabla alumnos_t sera la tabla alumnos, todas la tablas tendran sus espejos(es decir dentro de la bd intermedia habra 2 conjuntos de tablas relacionadas e independientes, un conjunto de tablas del backup que se subira y otro conjunto que ya tendra la bd intermedia ), los datos de la tabla alumnos_t se insertaran o actualizaran en la tabla alumnos y de la misma manera las otras tablas, esto todavia lo estoy investigando para que se inserte o actualice sin errores, despues que se cargue o actualice sin errores realizar una replica de las tablas espejo de la bd intermedia hacia las tablas de la bd principal,
eso es lo que pienso hacer, pero no se si sera factible, desconozco slony y recien estoy realizando esto de replicas.

Agradecere cualquier sugerencia o ayuda,
saludos.


El día 21/01/08, Omar Zeballos <ozeballos(at)kantutani(dot)com> escribió:
Estimado Carlos,
no creo que Slony pueda resolver tu problema, y si lo hace tu configuracion de replicacion debera ser muy compleja y apesar de eso deberas realizar actividades manuales.
La unica solucion que puedo divisar es replantear el diseño de la BD, esta base debera tener un modelo de Importacion y Exportacion de acuerdo un Lote para poder determinar cuando se migro cierta informacion, al mismo tiempo este sistema de I/O debera validar informacion borrada y o eliminada o simplemente en la importacion una validacion del PK para no insertar pero si pisar el resto y si no existe insertar y asi so so so. (ojo no olvidar que unidad es la dueña de la informacion)

Com ves es un problema de Diseño y tu sistema si va ha tropezar con este problema por lo que te recomiendo diseñar esto dentro tu sistema.

Saludos,
Omar

From: Carlos Mendez
To: Alvaro Herrera
Cc: Julio Cesar Sánchez González ; Raul Andres Duque ; pgsql-es-ayuda(at)postgresql(dot)org
Sent: Thursday, January 17, 2008 4:59 PM
Subject: Re: [pgsql-es-ayuda] Problemas al actualizar una BD


Hola, Gracias por responder,

les comentare un poco acerca del proyecto, es un sistema web que gestionara a nivel departamental es decir abarcara colegios de escuelas de las ciudades, de la zona rural, de los poblados, etc.
el sistema concentrara la informacion de alrededor de 100.000 alumnos, 4000 profesores y 500 colegios, adicionando a esto las notas, asistencia, materias, cursos, etc.
Y como dije anteriormente algunos colegios o mejor dicho la mayoria no tienen conexion a internet, por lo tanto me daran la informacion en un cd o disquett, y se lo cargara al servidor central.

Por lo tanto este proceso del backup o no se como llamarlo, es crucial, vital para el proyecto, sin este el proyecto no sera viable,

Gracias por recomendarme slony, y ya lo estoy investigando, pero quiero preguntarles despues de decirles los alcances y pormenores del proyecto si Slony se adapta a lo que quiero hacer, y si no se adapta por favor una sugerencia para afrontar este proyecto.

A continuacion coloco la descripcion del problema que anteriormente ya mencione:

Estoy realizando un sistema que centraliza en un servidor toda la informacion de los colegios como ser alumnos, profesores y notas, los colegios se conectan al servidor central a traves de internet, pero sucede que no todos los colegios tienen internet y me dijeron que no dejara de lado a esos colegios, bueno, lo que a mi se me ocurre es instalarles un sistema local a cada colegio que no tenga conexion a internet y despues pedirles un backup de su bd local y subir este backup a la bd del servidor central.

aqui viene el problema,
cuando yo intento subir un backup que tiene registros que ya estan en la bd central en el sistema no los carga me dice error lo cual esta muy bien, pero tampoco inserta los registros nuevos lo cual yo quisiera, es decir supongamos que me dieron un primer backup de un colegio que tiene la tabla alumnos con 10 registros, supongo que ese bakcup se subira sin ningun problema al servidor central porque son registros nuevos, pasado algun tiempo me daran el segundo backup del colegio para que lo cargue al servidor central y supongamos que contiene en la tabla alumnos 15 registros(10 antiguos y 5 nuevos), cuando intente subir esta tabla me dara error pues la bd central ya tiene los 10 primeros registros y no insertara los 5 nuevos registros que no tiene,
lo que busco es que cuando intente subir el backup, se inserte solo los nuevos registros es decir aquellos registros que estan en el backup de la bd del colegio y que no esten en la bd central, y que si en el colegio se modifico algun registro antiguo este tambien se pueda modificar cuando se suba el backup.
En resumen que se inserte solo los nuevos registros, que se modifiquen los que se han modificado en la la bd del colegio, y que los registros que estan contenidos en el backup pero que ya estan en la bd central simplemente sean ignorados y que no salga error y que solo se inserten los registros nuevos o modificados

¿Como hago esto? existen funciones o comandos especiales de pgsql para realizar el backup o para realizar la subida a la base de datos central de manera que haga lo que deseo? o algun software especial?

Gracias por la ayuda,
saludos.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Reynier Perez Mira 2008-01-22 17:23:27 RE: Novato con PostgreSQL
Previous Message Silvio Quadri 2008-01-22 17:13:33 Re: Novato con PostgreSQL