14
ediciones
(Página creada con «<nowiki>#</nowiki> SQLite <nowiki>**</nowiki>SQLite** es un sistema de gestión de bases de datos relacional (RDBMS) ligero, embebido y sin servidor, implementado como una biblioteca en C. Fue creado por D. Richard Hipp en el año 2000 y es de dominio público. A diferencia de otros motores como MySQL o PostgreSQL, SQLite no utiliza arquitectura cliente-servidor, sino que funciona directamente dentro de la aplicación que lo usa. --- <nowiki>##</nowiki> Caracterí…») |
Sin resumen de edición |
||
| Línea 1: | Línea 1: | ||
= SQLite = | |||
'''SQLite''' es un sistema de gestión de bases de datos relacional (RDBMS) ligero, embebido y sin servidor, implementado como una biblioteca en C. Fue creado por D. Richard Hipp en el año 2000 y es de dominio público. | |||
A diferencia de otros motores como MySQL o PostgreSQL, SQLite no utiliza arquitectura cliente-servidor, sino que funciona directamente dentro de la aplicación que lo usa. | A diferencia de otros motores como MySQL o PostgreSQL, SQLite no utiliza arquitectura cliente-servidor, sino que funciona directamente dentro de la aplicación que lo usa. | ||
== Características == | |||
* '''Sin servidor (serverless)''': no requiere instalación ni configuración de un servicio. | |||
* '''Archivo único''': la base de datos completa se almacena en un solo archivo. | |||
* '''Ligero''': tamaño muy reducido. | |||
* '''Portable''': funciona en múltiples sistemas operativos sin cambios. | |||
* '''ACID''': garantiza atomicidad, consistencia, aislamiento y durabilidad. | |||
* '''Embebido''': se integra directamente en la aplicación. | |||
* '''Transaccional''': soporta transacciones completas. | |||
* '''Multiplataforma''': Windows, Linux, macOS, Android, iOS. | |||
== Arquitectura == | |||
SQLite no sigue el modelo cliente-servidor: | SQLite no sigue el modelo cliente-servidor: | ||
* La aplicación accede directamente al archivo de base de datos. | |||
* No hay procesos en segundo plano. | |||
* Todo se maneja mediante llamadas a la biblioteca SQLite. | |||
== Funcionamiento == | |||
SQLite ejecuta sentencias SQL estándar sobre un archivo local. | SQLite ejecuta sentencias SQL estándar sobre un archivo local. | ||
| Línea 45: | Línea 30: | ||
Operaciones principales: | Operaciones principales: | ||
* <code>CREATE</code> | |||
* <code>INSERT</code> | |||
* <code>SELECT</code> | |||
* <code>UPDATE</code> | |||
* <code>DELETE</code> | |||
Ejemplo: | Ejemplo: | ||
<syntaxhighlight lang="sql"> | |||
CREATE TABLE usuarios ( | CREATE TABLE usuarios ( | ||
id INTEGER PRIMARY KEY, | |||
nombre TEXT, | |||
edad INTEGER | |||
); | ); | ||
INSERT INTO usuarios (nombre, edad) | INSERT INTO usuarios (nombre, edad) | ||
VALUES ('Juan', 25); | VALUES ('Juan', 25); | ||
SELECT * FROM usuarios; | SELECT * FROM usuarios; | ||
</syntaxhighlight> | |||
== Tipos de datos == | |||
SQLite usa tipado dinámico. Tipos principales: | SQLite usa tipado dinámico. Tipos principales: | ||
* '''NULL''' | |||
* '''INTEGER''' | |||
* '''REAL''' | |||
* '''TEXT''' | |||
* '''BLOB''' | |||
== Ventajas == | |||
* No requiere instalación | |||
* Muy rápido en local | |||
* Bajo consumo de recursos | |||
* Fácil de transportar | |||
* Ideal para apps pequeñas o embebidas | |||
== Desventajas == | |||
* Concurrencia limitada | |||
* No escala bien a sistemas grandes | |||
* Sin gestión avanzada de usuarios | |||
* Bloqueo de escritura a nivel de archivo | |||
== Casos de uso == | |||
* Aplicaciones móviles | |||
* Software de escritorio | |||
* Sistemas embebidos / IoT | |||
* Navegadores | |||
* Prototipos | |||
== Comparación == | |||
- | {| class="wikitable" | ||
! Característica !! SQLite !! PostgreSQL / MySQL | |||
|- | |||
| Arquitectura || Embebida || Cliente-servidor | |||
|- | |||
| Instalación || No || Sí | |||
|- | |||
| Escalabilidad || Baja || Alta | |||
|- | |||
| Concurrencia || Limitada || Alta | |||
|} | |||
== Comandos útiles == | |||
* <code>.open archivo.db</code> | |||
* <code>.tables</code> | |||
* <code>.schema</code> | |||
* <code>.exit</code> | |||
== Seguridad == | |||
SQLite no tiene autenticación interna. Depende de: | SQLite no tiene autenticación interna. Depende de: | ||
* Permisos del sistema operativo | |||
* Encriptación externa (ej: SQLCipher) | |||
== Licencia == | |||
Dominio público. Uso libre sin restricciones. | Dominio público. Uso libre sin restricciones. | ||
ediciones