Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Recomendacion de base de datos (https://www.clubdelphi.com/foros/showthread.php?t=88992)

josepicd 09-09-2015 08:41:44

Recomendacion de base de datos
 
Buenas, tengo una duda sobre que base de datos utilizar. Os cuento,

Realizo aplicaciones de adquisicion de datos. Las aplicaciones en cuanto a datos suelen guardar un fichero de unos 30 o 40 campos y como maximo 50 registros, estos registros rara vez son modificados, digamos que es "la configuracion del programa".

La aplicacion va capturando datos a traves de unas tarjetas y demas y los va grabando en otro fichero, supongamos, que es fecha_hora, valor_adquirido. Este fichero va incrementando en el tiempo en unos casos puede llegar al millon de registros y en otros estar a 0 porque el cliente decide no guardar, pero lo que nunca se modifica y se utiliza muy de vez en cuando para hacer una estadistica.

Hay que decir que este proyecto no lo comence yo y la persona que lo desarrollo, por alguna razon, eligio SQL Server para almacenar los datos. Mi pregunta es la siguiente, ¿Estoy matando moscas a cañonazos?, que base de datos me recomendais usar, yo habia pensado usar alguna mas ligera, en plan SQLite o incluso fichero plano de texto para almacenar datos.

Se acepta cualquier aportacion y gracias.

newtron 09-09-2015 09:48:09

Hola.

Mi opinión es que si vas a almacenar millones de registros en la base de datos y ya tienes el sistema montado en SQL Server es no tocar nada. Si almacenas tanto registros en una base de datos plana cuando quieras emitir algún informe o hacer alguna consulta te va a dar un "tabardillo".

Saludos.

josepicd 09-09-2015 10:06:04

No, por la consulta lo no preocupa. Las consultas suelen ser entre fechas, y estan ordenadas por fechas, longitud fija del registro y el acceso sera mas o menos rapido, aunque tampoco me preocupa si una estadistica tarda 5 minutos en generarse. Me preocupa mas el dia a dia, ya que tener que estar instalando SQL Server, configurando y demas, creo que es un engorro.

Habia pensado en SQLite pero no se que tal.

newtron 09-09-2015 10:32:17

Pues no sé porque no uso SQL Lite pero me imagino que cualquier base de datos que montes tendrá su instalación y configuración más o menos laboriosa, además, la instalación de la base de datos se hace en el servidor y no creo que andes reinstalando servidores muy asiduamente, ¿no? Por otro lado yo soy de la máxima de que..."lo que funciona, no lo toques".

A ver si alguien con experiencia en SQL Lite te dice algo.

Saludos

ecfisa 09-09-2015 10:39:46

Hola josepicd.

No he usado SQLite, pero Firebird embedded, es una opción que deberías tomar en cuenta. Podes descargarla desde aquí aquí.

Saludos :)

josepicd 09-09-2015 12:10:05

Exacto, algo asi, Firebird Embedded es un estilo (mas completo) al SQLite.

Comento que las bases de datos no van en servidor, son locales. Las embedded como Firebird y SQLite no requiere instalacion en el pc, unicamente incluir la dll correspondiente y a funcionar.

Combat-F2D 09-09-2015 12:51:23

recuerda y ten pendiente el tema de bloqueos y concurrencias, aunque no tendras ese problema al ser local
recuerda que sqlite no es un server server como tal, no controla accesos recurrentes y esas cosas...
por lo menos hasta donde yo se y padezco

AgustinOrtu 09-09-2015 16:03:27

SQLite es mas rapida que los motores grandes. Consume menos recursos. Es un solo dll que se debe distribuir y que por lo general ya esta en cualquier equipo (windows > 7 seguro ya lo tiene). No se "cae el servicio" de SQLite: siempre esta ahi.

Ademas no tiene dependencias externas, multiplataforma, Delphi lo soporta con DBExpress y FireDAC. Con FireDAC es muchisimo mas potente porque emula algunas cosas que "le faltan". Por ejemplo no tiene Boolean nativo SQLite, FireDAC lo mapea automaticamente a True/False sin problemas. Lo mismo con los DateTime, Currency, etc

Basicamente si no hay que encriptar la BD (o lo haces a mano o nada con SQLite), si hay poca o nula concurrencia, y solo se permite acceso local (no multiusuario por red por ej) entonces SQLite es una GRAN opcion

Mas info

Luego, hoy dia podes usar cualquier cosa, no es como hace unos años que parecia la pelea eterna entre ford y chevrolet; todas las BD relacionales son todas buenisimas, rapidas, confiables y ofrecen mas o menos lo mismo, creo que no hay una clara distincion. En lo que si hay distincion es en la distribucion. Por ejemplo, aca usamos tambien SQL Server 2008, que distribuirlo es un problema porque es un instalador pesado y el proceso de instalacion no es "tan sencillo". Distinto es el caso de SQLite (agregas como dije una biblioteca de unos pocos kb y listo) o Firebird (Classic, Superserver, Embedded) que se instala silenciosamente, ocupa pocos megas y funciona barbaro

gatosoft 09-09-2015 18:37:55

Solo para el registro...

Dentro del conjunto de bases embebidas, a mi me gusta ElevateDB, es muy sencilla y potente. No requiere de DLLs pues realmente embebe el motor dentro del ejecutable (cuando se utilza embebido), con un costo relativamente bajo para éste

El "problema": es un producto pago (por eso dije que solo para el registro),

Saludo,

newtron 09-09-2015 19:07:32

Cita:

Empezado por gatosoft (Mensaje 496473)
Solo para el registro...

Dentro del conjunto de bases embebidas, a mi me gusta ElevateDB, es muy sencilla y potente. No requiere de DLLs pues realmente embebe el motor dentro del ejecutable (cuando se utilza embebido), con un costo relativamente bajo para éste

El "problema": es un producto pago (por eso dije que solo para el registro),

Saludo,

Esa es la base de datos que yo uso y la verdad es que va bastante bien. La puedes configurar en modo Embedded o en modo cliente/servidor sin grandes problemas y es más, dentro de una red hasta puedes tener unos terminales en modo Embedded y otros en modo cliente/servidor, lo que pasa es que no he comentado nada porque efectivamente es de pago, no es cara pero algo hay que pagar.

Saludos

AgustinOrtu 09-09-2015 19:33:55

Otra opcion de pago es NexusDB, que, como Firebird, parece estar hecha para Delphinianos

Aunque solo la conozco de nombre y no se que tendra de "especial", o si ofrece algun tipo de integracion/facilidad de desarrollo

NexusDB

Webinar

MAXIUM 09-09-2015 20:52:56

Para tu caso, recomiendo SQLite, que para estos tiempos, una dll de escasos megas no es absolutamente nada.

Si usas los componentes de FireDAC, el motor queda empotrado en el exe.

josepicd 14-09-2015 11:40:52

Muchas gracias a todos, finalmente usare SQLite, ya que creo que es lo que mejor se adapta a mis necesidades.

Una vez mas, un 10 por la gente de clubdelphi.

rretamar 23-09-2015 00:04:31

Una ventaja importantísima si se usa Firebird embebido es que luego pasar al Firebird mutiusuario (el convencional) es muy simple, porque la estructura de los archivos son las mismas.

MAXIUM 23-09-2015 08:24:45

Si, pero hay que considerar la necesidad en este caso. Es decir, se necesita almacenar una gran número de datos para configuraciones.

Puede usar un .INI para ello, pero indica que son demasiados datos y por ello prefiere una BD. SQLite es perfecto. Muchas aplicaciones la usan para estos fines.

Por supuesto que puede usar nuestra base de datos favorita como Firebird. Pero sería exagerado y más aún con tener que cargar el motor, aunque sea potable si lo comparamos con a lo más una DLL y la BD.


La franja horaria es GMT +2. Ahora son las 03:48:19.

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