Noviembre 18 2008
Almacenando datos de intercambio - SQLite
En más de una ocasión nos encontramos ante la necesidad de almacenar datos que podríamos definir como pseudo-temporales, es decir, datos de intercambio. Esto es, datos que
tendremos que almacenar durante algun tiempo (minutos, horas, quizás días…) y a los que tendremos que acceder con relativa rapidez y que incluso pueden tener un tamaño considerable (en número de registros).
Cuando no podemos/queremos depender de ninguna aplicación extra (tal y como puede ser un servidor de base de datos SQL), se tiende a pensar en la mayor parte de las ocasiones en el uso de ficheros de texto plano donde almacenar la información. Personalmente, no me gusta, en cuanto se tiene una cantidad decente de información, los accesos se vuelven lentos, y no mencionemos la poca seguridad en cuanto a integridad se refiere…
Existe una segunda opción, el uso de ficheros XML. Mejoramos la organización y acceso a los mismos, pero vuelve a existir el problema con el volumen de información… al fin y al cabo es un fichero de texto.
Llega la tercera opción, el uso de SQLite. Según leemos en la página web, SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. Esto es, una librería que incluye un motor SQL sin necesidad de instalar ningún servidor, con soporte transaccional y sin configuración.
SQLite cumple los requisitos que hemos puesto en cuanto al no uso de servidores añadidos ni extrañas configuraciones que puedan no estar soportadas en servidores externos. También cumple los requisitos con respecto al uso de ficheros de texto plano, dado que al ser un motor SQL, se utiliza como tal.
Existen “bindings” para la mayor parte de lenguajes de programación utilizados en mayor o menor medida, con una lista oficiosa que puede ser consultada en http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers.
Este post no pretende ser un manual de uso de SQLite, por lo que a continuación dejo algunos enlaces con más información para su uso:


