martes, 21 de febrero de 2017

HISTORIA DE SQLite

Cuando D. Richard Hipp trabajaba desarrollando Software para la fuerza naval de los Estados Unidos, comenzó a desarrollar SQLite, según él por una necesidad personal para su uso personal. En Enero de 2000 D. Richard Hipp estaba trabajando con su equipo del General Dynamics en la Fuerza naval de los Estados Unidos, en un proyecto de software, el cual se conectaba a una base de datos Informix, el motor funcionaba muy bien, pero habían tenido problemas para hacer una reconfiguración cuando el sistema se reiniciaba. Luego cambiaron a PostgreSQL, pero administrar la base de datos era un poco más complejo. Fue en ese momento cuando surgió la idea de escribir un simple motor de base de datos SQL que permitiera leer los archivos del disco duro, y luego ser llamados en diferentes solicitudes.
Cinco meses más tarde comenzó a escribir las primeras versiones de lo que se conoce hoy como SQLite, con el pensamiento de que sería útil en algún problema similar. A diferencia de los sistemas de gestión de base de datos cliente-servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a través de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son más eficientes que la comunicación entre procesos. El conjunto de la base de datos (definiciones, tablas, índices, y los propios datos), son guardados como un sólo fichero estándar en la máquina host. Este diseño simple se logra bloqueando todo el fichero de base de datos al principio de cada transacción.

En su versión 3, SQLite permite bases de datos de hasta 2 Terabytes de tamaño, y también permite la inclusión de campos tipo BLOB. El autor de SQLite ofrece formación, contratos de soporte técnico y características adicionales como compresión y cifrado.


CARACTERÍSTICAS 


Estas son algunas de las características principales de SQLite:
La base de datos completa se encuentra en un solo archivo.
Puede funcionar enteramen
te en memoria, lo que la hace muy rápida.
Tiene un footprint menor a 230KB.
Es totalmente autocontenida (sin dependencias externas).
Cuenta con librerías de acceso para muchos lenguajes de programación.
Soporta texto en formato UTF-8 y UTF-16, así como datos numéricos de 64 bits.
Soporta funciones SQL definidas por el usuario (UDF).
El código fuente es de dominio público y se encuentra muy bien documentado.
Plataformas de SQLite
SQLite está construida en C, lo cual facilita la migración a diversas plataformas de sistemas operativos y de dispositivos. Dado que una base de datos de SQLite se almacena por completo en un solo archivo, está puede ser exportada a cualquier otra plataforma y tener interoperatibilidad al 100% sin ningún requerimiento de programación adicional o cambios de configuración.



Las plataformas principales dónde SQLite se encuentra funcionando son:


Windows 95, 98, ME, 2000, XP y Vista
Windows CE & Pocket PC
Mac OSX
Linux
OpenEmbedded
PalmOS
Symbian


TIPOS DE DATOS 


SQLite 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.
Cada uno de los datos almacenados en una base de datos SQLite implemtenta alguno de los siguientes tipos:
•NULL, un valor nulo.
•INTEGER, un entero con signo que se almacena en 1, 2, 3, 4, 5, 6 o 8 bytes de acuerdo a la magnitud del valor.
•REAL, un número de coma flotante (real), almacenado en 8 bytes.
•TEXT, una cadena de texto almacenada con las codificaciones UTF-8, UTF-16BE o UTF-16-LE.
•BLOB, datos en formato binario, se almacenan exactamente como se introdujeron.



USOS ACONSEJADOS DE SQLite

•Formato de archivo de aplicaciones.
•Aplicaciones desktop.
•Bases de datos para dispositivos.
•Bases de datos de sitios web de pequeño y mediano tamaño.
•Enseñanza.

USOS NO ACONSEJADOS DE SQLite 

•Aplicaciones Cliente-servidor.
•Sitios web con gran cantidad de transacciones.
•Bases de datos muy grandes (SQLite soporta hasta 2 terabytes).
•Alta concurrencia.


VENTAJAS 


•Tamaño: SQLite tiene una pequeña memoria y una única biblioteca es necesaria para acceder a bases de datos, lo que lo hace ideal para aplicaciones de bases de datos incorporadas.
•Rendimiento de base de datos: SQLite realiza operaciones de manera eficiente y es más rápido que MySQL y PostgreSQL.
•Portabilidad: se ejecuta en muchas plataformas y sus bases de datos pueden ser fácilmente portadas sin ninguna configuración o administración.
•Estabilidad: SQLite es compatible con ACID, reunión de los cuatro criterios de Atomicidad, Consistencia, Aislamiento y Durabilidad.
•SQL: implementa un gran subconjunto de la ANSI – 92 SQL estándar, incluyendo sub-consultas, generación de usuarios, vistas y triggers.
•Interfaces: cuenta con diferentes interfaces del API, las cuales permiten trabajar con C++, PHP, Perl, Python, Ruby, Tcl, Groovy, Qt ofrece el plugin qsqlite, etc.
•Costo: SQLite es de dominio público, y por tanto, es libre de utilizar para cualquier propósito sin costo y se puede redistribuir libremente.