SQLite
Información general
Tipo de programa RDBMS
Autor D. Richard Hipp
Desarrollador D. Richard Hipp
Modelo de desarrollo Dominio Público
Lanzamiento inicial 17 de agosto de 2000 (23 años, 6 meses y 27 días)
Licencia Dominio público[1]
Información técnica
Programado en C
Versiones
Última versión estable 3.45.2 (info) ( 12 de marzo de 2024 (1 día))
Archivos legibles
  • SQLite database file format
  • SQLite rollbak journal
Archivos editables
  • SQLite database file format
  • SQLite Zipvfs compressed database
  • SQLite rollbak journal
Enlaces

SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña (~275 kiB)[2]biblioteca escrita en C. SQLite es un proyecto de dominio público[1]​ creado por D. Richard Hipp.

A diferencia de los sistema de gestión de bases 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 solo 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

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 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 solo 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 tiempo de expiración configurable). Esta situación de acceso concurrente podría cambiar cuando se está trabajando con tablas temporales. Sin embargo, podría producirse un interbloqueo debido al multihilo.[1] Archivado el 21 de febrero de 2006 en Wayback Machine. Este punto fue tratado en la versión 3.3.4, desarrollada el 11 de febrero de 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.

Lenguajes de programación

Software que utiliza SQLite

SQLite es utilizado en un gran variedad de aplicaciones, destacando las siguientes:

Debido a su pequeño tamaño, SQLite es muy adecuado para los sistemas integrados, y también está incluido en:

Publicaciones

Referencias

  1. a b «SQLite Copyright». SQLite. Consultado el 28 de diciembre de 2010. 
  2. «Distinctive Features Of SQLite». SQLite. 3 de marzo de 2008. Consultado el 5 de abril de 2010. 
  3. Python Standard Library Reference, Capítulo 11.13. sqlite3 — DB-API 2.0 interface for SQLite databases (en inglés)
  4. «PySQLite: Bindings para Python». Archivado desde el original el 14 de julio de 2014. Consultado el 1 de marzo de 2010. 
  5. a b c d e f g h «Well-known Users of SQLite» (en inglés). SQLite. Consultado el 25 de septiembre de 2011. 
  6. «Skype client using SQLite?». Mail-archive.com. 28 de agosto de 2007. Archivado desde el original el 28 de septiembre de 2014. Consultado el 14 de junio de 2010. 
  7. Déesse A.; Matthieu Marcillaud (16 décembre 2007). «Portage de SPIP en SQLite» (en francés). contrib.spip.net. Consultado el 14 décembre 2021. 
  8. package android.database.sqlite