Bases de Datos

SQLite, el motor de base de datos ágil y robusto

Por Daniel Martin Maldonado, en 1 de Julio de 2008

Logo de SQLite

En este artículo vamos a conocer una de las herramientas de Bases de Datos que en los últimos años fue muy aceptada y utilizada por grandes programadores y en diversos proyectos informáticos. Conoceremos algunas características, ventajas y desventajas que presenta SQLite.

SQLite es un proyecto de dominio público, su creador es D. Richard Hipp, el cual implementa una pequeña librería de aproximadamente 500kb, programado en el lenguaje C, de dominio público, totalmente libre y que tiene con función hacer de un sistemas de bases de datos relacional.

Uno de las primeras diferencia entre los motores de Bases de datos convencionales es su arquitectura cliente/servidor, pues SQLite es independiente, simplemente se realizan llamadas a sub rutinas o funciones de las propias librerías de SQLite, lo cual reduce ampliamente la latencia en cuanto al acceso a las bases de datos. Con lo cual podemos decir que las base de datos compuesta por la definición de las tablas, índices y los propios datos son guardados por un solo fichero estándar y en un solo ordenador.

Conozcamos la historia detrás del proyecto SQLite

Cuando D. Richard Hipp trabajaba desarrollando software para la fuerza naval de los Estados Unidos, comenzó a desarrollar SQLite, según él cuenta con sus propias palabras: El proyecto SQLite surgió de una necesidad personal, para mi propio uso.

icono de base de datosEn enero de 2000 D. Richard Hipp estaba trabajando con su equipo de la 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 hoy conocemos como SQLite, con el pensamiento de que sería útil en algún problema similar.

Es claro que SQLite tiene la capacidad de reemplazar a grandes motores de Bases de Datos y acoplarse al desarrollo de nuestros proyectos informáticos, ya sea en ambientes de prototipos de sistemas como así también en complejos y robustos software.



Veamos algunas razones para escoger SQLite como una herramienta de desarrollo:

  • 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, 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.

Bases de datos en SQLite

Alguna de las característica más relevantes de SQLite son las siguientes:

No posee configuración
De la forma en que fue creado y diseñado SQLite, NO necesita ser instalado. NO prender, reiniciar o apagar un servidor, e incluso configurarlo. Esta cualidad permite que no haya un administrador de base de datos para crear las tablas, vistas, asignar permisos. O bien la adopción de medidas de recuperación de servidor por cada caída del sistema.

Portabilidad
SQLite puede ser ejecutado en diferentes sistemas operativos, como ser Windows, Linux, BSD, Mac OS X, Solaris, HPUX,AIX o estar embebido en muchos otros como QNX, VxWorks, Symbian, Palm OS, Windows CE. Se pude notar que muchos de ellos trabajan a 16, 32 y 64 Bits. La portabilidad no está dada en sí por el software, sino por la base de datos condensada en un solo fichero, que puede estar situado en cualquier directorio, trayendo como ventaja que la base de datos puede ser fácilmente copiada a algún dispositivo USB o ser enviada vía correo electrónico.

Registros de longitud variable
Generalmente los motores asignan una cantidad fija de espacio en disco para cada fila en la mayoría de los campos de una determinada tabla. Por ejemplo, tomemos un campo de tipo VARCHAR(255), esto significa que el motor le asignará 255 bytes de espacio fijo en disco, independientemente de la cantidad de información que se almacene en ese campo. En cambio, SQLite aplica su tecnología y realizará todo lo contrario, utilizando para ello la cantidad de espacio en disco necesario para almacenar la información real del campo. Tomando el ejemplo anterior, si quisiera almacenar un solo carácter en un campo definido como VARCHAR(255), entonces un único byte de espacio de disco se consume.

El uso de registros de longitud variable por SQLite, tiene una serie de ventajas, entre ellas el resultado de un pequeño archivo de base de datos y optimización de la velocidad de la misma, puesto que hay menos información desperdiciada que leer y recorrer.

Así como encontramos algunas ventajas y características realmente asombrosas, también cuenta con algunas limitaciones:

  • Limitaciones en Where: esta limitación está dada por el soporte para clausuras anidadas.
  • Falta de Clave Foránea: se hace caso omiso de las claves foráneas; esto quiere decir, cuando se realice la creación de la tabla desde el modo consola, está permitiendo el uso de la clausura, aunque no realizara el chequeo de la misma.
  • Falta de documentación en español: si bien ya contamos con una comunidad latino americana de SQLite, sería importante encontrar mucha más documentación, libros, review, etc. como muchos otros motores de bases de datos cuentan hoy en día.

Por último y cerrando un poco este artículo, conocimos un motor de base de datos realmente muy interesante y que es para tenerlo muy en cuenta, de hecho grandes empresas como Adobe, Firefox, Google, McAfee, Toshiba, Sun Microsystem, Symbian, Microsoft, etc hacen uso de SQLite para el desarrollo de mucho de sus productos, demostrando de esta manera la confianza y el gran rendimiento de la misma.

Nota las imágenes e ilustraciones fueron extraídos de diferentes sitios, entre ellos el sitio oficial del proyecto SQLite y de la Comunidad SQLite Latino America

Comentar | Trackback

5 Comentarios en “SQLite, el motor de base de datos ágil y robusto”

1

Realmente asombroso lo q lei de esta BD SQLITE felicidades ahora intentare trabajar mis desarrollos con SQLite.

2

He estado probando el sqlite con C# y la verdad que me deja sorprendido la portabilidad de esta base de datos, excelente articulo!!!

3

Hola, yo estoy empezando a desarrollar una aplicacion con AIR utilizando SQLite, y me parece muy bueno, pero tengo una gran duda :S, hasta cuantos registros permite una BD SQLite, o hasta que tamaño, porke el proyecto en el que estoy va a contener de 15000 a 20000 registros como minimo, realmente lo soportara, gracias, espero respuestas.

4

Hola leyendo este articulo sobre SQLite le dire algo ocurrido, en verdad SQLite es un monstruo, es eficiente y realmente pero realmete eficiente, lo he usado para aplicasiones donde las consultas son el pan de cada dia y las he resuelto con una velocidad increible, el sistema original estaba en ACCESS y este era mas lento que una tortuga, ahora tengo un sistema mas grande emocionado de mi herramienta nueva, es decir de mi juguete nuevo dije usemos SQLite, lamentablemente el poder cargarle al rededor de 1,500,000,000 de registros esta herramienta no fallo ya que no puede lograr insertar esa cantidad de registros.

Ahora no quiero decir que SQLite es malo, no, es una herramienta excelente, aqui es donde se utiliza ese dicho: “De acuerdo el sapo la pedrada”.

Creo que hay que ver que herramienta utilizar y para que. SQLite es muy bueno, supera a muchos. en lo personal lo defiendo.

5

Esta es una Excelente Herramienta, tiene grandes prestaciones y es capaz de competir contra los grandes SMBD (Sistemas Manejadores de Base de Datos).

Pero por su puesto que a la hora de hacer la eleccion de nuestro SMBD tendremos que hacer comparaciones y elegir el que se ajuste a nuestras necesidades.

En lo personal lo probe en combinacion con SharDevelop y me parecio excelente la respuesta que me dio y para poder usarlo sólo tube que instalar la libreria de SQLite y listo solo una libreria.

Ahora SQLite es una de las herramientas de mi preferencia por sus prestaciones y capacidades… además de todo es de Dominio Público!!!!

Deja tu comentario

 

 

 


 

Previsualización del Comentario

  

 

Secciones

Canales

Sindicación

Añade este blog a tu lector de feeds

¿Qué es un lector de feeds?

Correo Electrónico:

Red de Blogs SmallSquid

Enlaces de Interés

© Copyright 2009, SmallSquid.com. Red de blogs, SEO y Webs 2.0

SmallSquid.com está gestionado con WordPress

Creative Commons - Some Rights Reserved
 
Un proyecto realizado por Blogestudio