Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Guardar varias Imagenes JPG en un archivo encriptado o en Base de Datos (https://www.clubdelphi.com/foros/showthread.php?t=78072)

RRenault 17-03-2012 02:16:33

Guardar varias Imagenes JPG en un archivo encriptado o en Base de Datos
 
Hola a todos, estoy tratando de hacer un modulo de Digitalizacion de Documentos.
Se que se ha tratado en varios hilos si guardarlo en base de datos on un directorio, pero aun tengo la duda por el tamaño de la Base de Datos.
Pero si alguien tiene experiencia en guardarla en base de datos, me pudieran dar algunas pautas esenciales a tomar en cuenta.
Como tamaño de la imagen, formato, osea alguna idea sobre la experiencia adquirida.

Si es en directorio, podria Guardar varios jpg en un solo archivo, por ejemplo:
Una Compra a un proveedor poder escanear: 1.-La Factura, 2.- El Cheque de Pago, 3.- El Conduce.
Guardarlo en un solo Archivo encriptado, para que sea solo leido desde el programa en delphi. O descomponerlo en dos Archivos X y Y para luego unirlos.

Seria de gran ayuda, cualquier sugerencia tomando en cuenta la idea expresada anteriormente.

newtron 17-03-2012 10:00:54

Hola.

Ese tema se debatió en este hilo ampliamente. De una forma o de otra, si tienes requerimientos altos de seguridad yo casi optaría por meterlos dentro de la base de datos en lugar de andar encriptando/desencriptando archivos.

Saludos

Casimiro Notevi 17-03-2012 10:14:15

Cita:

Empezado por newtron (Mensaje 427883)
Hola.
Ese tema se debatió en este hilo ampliamente. De una forma o de otra, si tienes requerimientos altos de seguridad yo casi optaría por meterlos dentro de la base de datos en lugar de andar encriptando/desencriptando archivos.
Saludos

Totalmente de acuerdo, dentro de la BD es "una ristra" de caracteres sin sentido, alguien externo no puede saber si es una imagen, sonido, video, documento, etc.
Lo de unirlos y separarlos me parece innecesario, simplemente se guardan en la BD por separado sencillamente.
En cuanto al tamaño, creo que no has dicho qué BD vas a usar, yo tengo la experiencia con firebird y la mayor BD que tiene uno de mis clientes pasa los 30 GB, aunque hay compañeros que tienen BDs bastante mayores.

RRenault 22-03-2012 17:54:44

Gracias a Newtron y Casimiro, me ha servido de mucho este hilo.

rretamar 22-03-2012 18:07:08

Me quedo con esto:

Cita:

Un profesor nos decía "¿Puedes hacer una query a un campo binario que te devuelta todos los registros donde hay imágenes de morenas con ojos verdes? ¡¡¡NO!!! Entonces... ¿Porqué guardas la fotografía en la base de datos si no puedes saber que hay en ese campo?"
Ahora hablando en serio: Nunca guardaría ese tipo de información (imágenes, audio) en una base de datos.

Casimiro Notevi 22-03-2012 18:12:19

Pues como estén fuera de la BD entonces sí que no podrás acceder a ellas con una sql ;)
Además, para el caso que nos ocupa, le viene perfecto, quedan "encriptados" y si alguien consigue la BD no puede verlas, ya que son datos binarios en una BD, le viene perfecto.

newtron 22-03-2012 20:13:44

Cita:

Empezado por rretamar (Mensaje 428262)
Nunca guardaría ese tipo de información (imágenes, audio) en una base de datos.

¿Nos argumentas esa afirmación?

roman 22-03-2012 21:00:05

Así como la base en sí (el o los archivos físicos) deben estar bien protegidos por el S.O contra ojos extraños, lo mismo sucede con las imágenes. No veo porqué eso sería un argumento para guardarlas en la base en lugar de archivos sueltos.

Por otro lado, hasta hace no mucho yo era de la idea de guardar los archivos binarios en la base pues, a fin de cuentas, si existen los campos BLOB por algo será ¿no es así? Quizá. Pero lo cierto es que hasta hace muy poco fue que me vi en la necesidad real de guardar imágenes y lo hice siguiendo el principio de los BLOB. Duró un rato y ahora tengo todas las imágenes en archivos separados.

Una de las razones es que, al menos con MySQL, el manejo es espantoso. Muy posiblemente otros gestores lo hagan mejor pero MySQL no y tan sólo añadir una columna nueva a la tabla se convirtió en una pesadilla. Es decir, cualquier alteración a la estructura de la tabla, incluída la adición de índices, se hizo muy, muy lenta.

Por otra parte, los respaldos se hacen inevitablemente más tardados y en mi caso, no valía la pena la demora ya que no se trataba de datos con muchos cambios.

En fin que, según que gestor será la recomendación, pero con MySQL, yo díría: imágenes en la base NO.

// Saludos

Casimiro Notevi 23-03-2012 00:32:39

Cita:

Empezado por roman (Mensaje 428277)
En fin que, según que gestor será la recomendación, pero con MySQL, yo díría: imágenes en la base NO.

Puedo confirmar después de años de usarlos, que con Firebird no hay ningún problema de los que has comentado, así que yo diría: imágenes en la base SI :)

olbeup 23-03-2012 08:43:37

Yo utilizo SQL SERVER 2005 Express, en los campos varbinary(MAX) donde se guardan de todo, PDF, JPG, DOC, XLS, etc.., no hay ningún problema de guardar ni de recuperar, tanto local como por Internet, en este caso un poco mas lento, pero muy satisfecho, nose a que velocidad recupera una imagen o un pdf en firebird, en sql server es muy aceptable por internet, a nivel local impresionante, aún no he probado SQL SERVER 2008 Express, como lo hará, pero si 2005 funciona bien el 2008 tiene que ir mejor, si MySQL es tan malo, porque no cambiar de DB y pasarse a Firebird o SQL SERVER Express, son DB gratuitas, de momento SQL SERVER Express.

Un saludo.

roman 23-03-2012 15:45:19

Cita:

Empezado por olbeup (Mensaje 428305)
si MySQL es tan malo, porque no cambiar de DB y pasarse a Firebird o SQL SERVER Express, son DB gratuitas, de momento SQL SERVER Express.

Bueno, yo mencioné que en cuestión de blobs, MySQL es muy malo. Tú ya lo generalizaste. También puedo decir que los procedimientos almacenados en MySQL son muy lentos. Aún así, en muchas cosas MySQL se comporta muy bien.

Si cambiara de BD, creo que optaría por PostgreSQL. De hecho está en mi panorama. Podría ser Firebird, pero en mi ambiente Firebird es un gran desconocido.

// Saludos

olbeup 26-03-2012 09:04:39

Yo no digo que MySQL sea malo, de hecho casi todas las página WEB se basan en MySQL, lo que se está hablando es de los BLOB no del motor ni el rendimiento de MySQL, si lo que más utilizas es algo que no funciona bien como los BLOB, que es tu principal, cambia de motor y pásate a otro que cumpla o cubra tus necesidades como son los BLOB.

Un saludo.


La franja horaria es GMT +2. Ahora son las 04:57:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi