Dónde usar SQLite

Extraído de la documentación de SQLite.

SQLite es diferente de la mayoría de motores de base de datos SQL, ya que su primer objetivo es ser simple:

  • Fácil de administrar
  • Fácil de operar
  • Fácil de integrar en un programa más amplio
  • Fácil de mantener y personalizar

Muchas personas usan SQLite, ya que es pequeño y rápido. Pero esas cualidades son accidentes felices. Los usuarios también encuentran que SQLite es muy fiable. La fiabilidad es una consecuencia de la simplicidad. Con menos complicaciones, hay menos cosas que puedan ir mal. Así que, sí, SQLite es pequeño, rápido y confiable, pero sobre todo, SQLite se esfuerza por ser simple.

La simplicidad en un motor de base de datos puede ser una fortaleza o una debilidad, dependiendo de lo que estamos tratando de hacer. Con el fin de lograr simplicidad, SQLite ha tenido que sacrificar otras características que algunas personas encuentran útiles, tales como alta concurrencia, control de acceso de grano fino, un rico conjunto de funciones integradas, procedimientos almacenados, funciones del lenguaje esotérico de SQL, XML y / o extensiones Java, escalabilidad de tera- o peta-bytes, y así sucesivamente. Si necesitas alguna de estas características y no te importa la complejidad añadida que conllevan, SQLite probablemente no es la base de datos que necesitas. SQLite no tiene la intención de ser un motor de base de datos empresarial. No está diseñado para competir con Oracle o PostgreSQL.

La regla básica para cuándo es apropiado utilizar SQLite es la siguiente: El uso de SQLite en situaciones donde la simplicidad de administración, implementación y mantenimiento son más importantes que las características complejas innumerables que los motores de bases de datos proporcionan. De hecho, las situaciones donde la simplicidad es la mejor opción son más comunes de lo que mucha gente piensa.

Otra forma de ver SQLite es la siguiente: SQLite no está diseñado para reemplazar a Oracle. Está diseñado para reemplazar a fopen().

Situaciones en las que SQLite funciona bien

Aplicación de formato de archivo

SQLite se ha utilizado con gran éxito como el formato de archivo en disco para aplicaciones de escritorio tales como herramientas de análisis financiero, paquetes de CAD, programas de mantenimiento, etc. La tradicional operación de "Abrir Archivo" hace un sqlite3_open() y ejecuta un BEGIN TRANSACTION para obtener acceso exclusivo al contenido. "Guardar Archivo" hace un COMMIT seguido por otro BEGIN TRANSACTION. El uso de estas operaciones garantiza que las actualizaciones del archivo son atómicas, durables, aisladas, y consistente.

Se pueden añadir triggers temporales a la base de datos para registrar todos los cambios en una tabla (temporal) que registre operaciones de deshacer/rehacer. Estos cambios se pueden reproducir de nuevo cuando el usuario presiona los botones "Deshacer" y "Rehacer". Usando esta técnica, la aplicación puede tener una profundidad ilimitada de deshacer/rehacer con un código sorprendentemente pequeño.

Los dispositivos integrados y aplicaciones

Debido a una base de datos SQLite requiere una administración pequeña o nula, SQLite es una buena opción para los dispositivos o servicios que deben trabajar solos y sin apoyo humano. SQLite es una buena opción para su uso en teléfonos móviles, PDAs, etc. También funciona bien como una base de datos integrada en aplicaciones de consumo para descargar.

Sitios Web

SQLite generalmente trabaja muy bien como motor de base de datos de sitios web de tráfico bajo o medio (es decir, el 99,9% de los sitios web). La cantidad de tráfico web que SQLite puede manejar depende, por supuesto, en gran medida de cómo utilice su base de datos el sitio web. En general, cualquier sitio que recibe menos de 100K visitas al día debería funcionar bien con SQLite. La cifra de 100K/día es un cálculo conservador, no una barrera superior. SQLite ha demostrado que puede trabajar con 10 veces esa cantidad de tráfico.

Reemplazo de archivos de disco ad hoc

Muchos programas utilizan fopen(), fread() y fwrite() para crear y gestionar archivos de datos en formatos de diseño propia. SQLite funciona especialmente bien como un reemplazo para estos archivos de datos ad hoc.

Bases de datos internas o temporales

Para los programas que tienen una gran cantidad de datos que deben ser tamizados y clasificados de diversas maneras, a menudo es más fácil y más rápido cargar los datos en una base de datos SQLite en memoria unido a las consultas con JOIN y cláusulas ORDER BY para extraer los datos en la forma y orden necesario en lugar de crear el código para las mismas operaciones de forma manual. Usar una base de datos SQL interna de esta manera también le da al programa mayor flexibilidad, ya que se pueden agregar nuevas columnas o índices sin tener que recodificar cada consulta.

Conjunto de datos de línea de comandos herramienta de análisis

Los usuarios experimentados de SQL puede emplear el programa de sqlite de línea de comandos para analizar conjuntos de datos diversos. Los datos en bruto pueden ser importados desde archivos CSV, a continuación, que los datos se puede separar para generar un gran número de informes. Los usos posibles incluyen análisis de sitios web de registro, el análisis de las estadísticas deportivas, elaboración de métricas de programación y análisis de resultados experimentales.

También puede hacer lo mismo con una base de datos de profesional cliente/servidor, por supuesto. Las ventajas de usar SQLite en esta situación es que SQLite es mucho más fácil de configurar y de la base de datos resultante es un archivo único que se puede almacenar en un disquete o una memoria flash o enviar por correo electrónico a un colega.

Suplente para una base de datos profesional durante demostraciones o pruebas

Si usted está escribiendo una aplicación cliente para un motor de base de datos profesional, tiene sentido utilizar un motor de base de datos genérico que le permite conectarse a muchos tipos diferentes de motores de base de datos SQL. Tiene sentido aún mayor dar un paso más e incluir SQLite en el conjunto de bases de datos y vincular estáticamente el motor SQLite con el cliente. De esta manera el programa cliente se puede utilizar independiente con un archivo de datos SQLite para pruebas o demostraciones.

Base de datos Pedagogía

Debido a que es simple de instalar y usar (la instalación es trivial: sólo tienes que copiar el sqlite o sqlite.exe ejecutable en el equipo y ejecutarlo) SQLite es un motor de base de datos bueno para su uso en la enseñanza de SQL. Los estudiantes pueden crear fácilmente bases de datos a su gusto y puede enviar las bases de datos al profesor junto con los comentarios o calificaciones. Para estudiantes más avanzados que estén interesados en estudiar cómo se implementa un RDBMS, el código modular y bien comentado y documentado SQLite pueden servir como una buena base. Esto no quiere decir que SQLite es un modelo exacto de cómo se construyen los motores de base de datos, sino más bien que un estudiante que entienda cómo funciona SQLite puede comprender más rápidamente los principios de funcionamiento de otros sistemas.

Extensiones experimentales del lenguaje SQL

El diseño simple y modular de SQLite hace que sea una buena plataforma para la creación de prototipos de ideas, nuevas características o experimentos del lenguaje de base de datos.

Comentarios de los usuarios (2)

Pablo Van Mechelen
2014-04-21 18:41:26

Necesitaría más info acerca del tratamiento de Triggers en SQLLite y si este motor soporta cursores como PL/SQL de Oracle.

Gracias

MARCIAL ESTECHE
2015-08-12 17:54:08

Hola estoy usando desde hace dos meses SQLite como BD de mi aplicación con BV6, y corre de la mejor manera, cero problemas hasta ahora. La aplicación en cuestión es un sistema que gestiona: compras, ventas, control de stock, etc. Funciona con un servidor y 6 terminales, está implementado en un autoservicio (tipo supermercado), todas las terminales consultan y modifican todo el tiempo de la venta, manteniendo así actualizados los saldos de valores, llámese Stock y otros datos que requieren ser consultados y modificados casi al mismo tiempo o en milésima de segundos cada operación, la concurrencia a la BD SQLite son de las 6 terminales, 4 en forma continua en horarios picos haciendo lectura y escritura. Esto comencé a usar como prueba pero hasta ahora nada de problema y ya no pienso cambiar. ¿Qué más puedo decir? SQLite tendrá sus limitaciones como en cada situación tiene cada motor, pero la satisfacción que medió hasta ahora con mi aplicación es total, RECOMIENDO COMPLETAMENTE para casos como en lo que les comenté.

Espero que a alguien más que anduvo dudando les sirva para tomar una decisión, en mi caso hice probando y no puedo negar, con mucho miedo, pero vaya sorpresa de como funciona; es ligero, pequeño, pero muy potente. Digo por ultimo... ME GUSTA!