jueves, 4 de marzo de 2010

SQLite3 Base de datos Portable


Siguiendo con el análisis de gestores de bases de datos me he encontrado con este singular manejador que en su particularidad destaca el hecho de ser 100% portable. Desde aplicaciones Delphi solo se necesita un pequeño dll para incluir el motor de base de datos en la aplicacion. los componentes para accesar la informacion desde delphi son los archi-conocidos ZeosLib (componentes libres http://sourceforge.net/projects/zeoslib/) que ademas de funcionar con firebird, PostgreSql, DB2, MySql también pueden ser utilizados por Sqlite. Entre sus caracteristicas especiales (tomado de Wikipedia):
"La biblioteca implementa la mayor parte del estándar SQL-92, incluyendo transacciones de base de datos atómicas, consistencia de base de datos, aislamiento, y durabilidad (ACID), triggers y la mayor parte de las consultas complejas.

SQLite (http://www.sqlite.org/) usa un sistema de tipos inusual. En lugar de asignar un tipo a una columna como en la mayor parte de los sistemas de bases de datos SQL, los tipos se asignan a los valores individuales. Por ejemplo, se puede insertar un string en una columna de tipo entero (a pesar de que SQLite tratará en primera instancia de convertir la cadena en un entero). Algunos usuarios consideran esto como una innovación que hace que la base de datos sea mucho más útil, sobre todo al ser utilizada desde un lenguaje de scripting de tipos dinámicos. Otros usuarios lo ven como un gran inconveniente, ya que la técnica no es portable a otras bases de datos SQL. SQLite no trataba de transformar los datos al tipo de la columna hasta la versión 3.

Varios procesos o hilos pueden acceder a la misma base de datos sin problemas. Varios accesos de lectura pueden ser servidos en paralelo. Un acceso de escritura sólo puede ser servido si no se está sirviendo ningún otro acceso concurrentemente. En caso contrario, el acceso de escritura falla devolviendo un código de error (o puede automáticamente reintentarse hasta que expira un timeout configurable). Esta situación de acceso concurrente podría cambiar cuando se está trabajando con tablas temporales. Sin embargo, podría producirse un deadlock debido al multithread.[1] Este punto fue tratado en la versión 3.3.4, desarrollada el 11 de febrero, 2006.

Existe un programa independiente de nombre sqlite que puede ser utilizado para consultar y gestionar los ficheros de base de datos SQLite. También sirve como ejemplo para la escritura de aplicaciones utilizando la biblioteca SQLite."
Aqui les dejo un trabajo de por si interesante sobre este gestor de Base de Datos del amigo Andrés Ignacio Martinez Soto, espero les sea de utilidad.
Saludos
Ing. Víctor J. Acosta L.