Diferencia entre revisiones de «SQLite»

138 bytes eliminados ,  16 abril
sin resumen de edición
(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:
<nowiki>#</nowiki> SQLite
= 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.
'''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 ==


<nowiki>##</nowiki> 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.


- **Sin servidor (serverless)**: no requiere instalación ni configuración de un servicio.
== Arquitectura ==
 
- **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.
 
---
 
<nowiki>##</nowiki> 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.
* La aplicación accede directamente al archivo de base de datos.
 
* No hay procesos en segundo plano.
- No hay procesos en segundo plano.
* Todo se maneja mediante llamadas a la biblioteca SQLite.


- Todo se maneja mediante llamadas a la biblioteca SQLite.
== Funcionamiento ==
 
---
 
<nowiki>##</nowiki> 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:


- `CREATE`
* <code>CREATE</code>
 
* <code>INSERT</code>
- `INSERT`
* <code>SELECT</code>
 
* <code>UPDATE</code>
- `SELECT`
* <code>DELETE</code>
 
- `UPDATE`
 
- `DELETE`


Ejemplo:
Ejemplo:


```sql
<syntaxhighlight lang="sql">
 
CREATE TABLE usuarios (
CREATE TABLE usuarios (
 
    id INTEGER PRIMARY KEY,
    id INTEGER PRIMARY KEY,
    nombre TEXT,
 
    edad INTEGER
    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 ==
 
---
 
<nowiki>##</nowiki> Tipos de datos


SQLite usa tipado dinámico. Tipos principales:
SQLite usa tipado dinámico. Tipos principales:


- **NULL**
* '''NULL'''
* '''INTEGER'''
* '''REAL'''
* '''TEXT'''
* '''BLOB'''


- **INTEGER**
== Ventajas ==


- **REAL**
* No requiere instalación
* Muy rápido en local
* Bajo consumo de recursos
* Fácil de transportar
* Ideal para apps pequeñas o embebidas


- **TEXT**
== Desventajas ==


- **BLOB**
* Concurrencia limitada
* No escala bien a sistemas grandes
* Sin gestión avanzada de usuarios
* Bloqueo de escritura a nivel de archivo


---
== Casos de uso ==


<nowiki>##</nowiki> Ventajas
* Aplicaciones móviles
* Software de escritorio
* Sistemas embebidos / IoT
* Navegadores
* Prototipos


- No requiere instalación
== Comparación ==


- Muy rápido en local
{| class="wikitable"
! Característica !! SQLite !! PostgreSQL / MySQL
|-
| Arquitectura || Embebida || Cliente-servidor
|-
| Instalación || No || Sí
|-
| Escalabilidad || Baja || Alta
|-
| Concurrencia || Limitada || Alta
|}


- Bajo consumo de recursos
== Comandos útiles ==


- Fácil de transportar
* <code>.open archivo.db</code>
* <code>.tables</code>
* <code>.schema</code>
* <code>.exit</code>


- Ideal para apps pequeñas o embebidas
== Seguridad ==
 
---
 
<nowiki>##</nowiki> Desventajas
 
- Concurrencia limitada
 
- No escala bien a sistemas grandes
 
- Sin gestión avanzada de usuarios
 
- Bloqueo de escritura a nivel de archivo
 
---
 
<nowiki>##</nowiki> Casos de uso
 
- Aplicaciones móviles
 
- Software de escritorio
 
- Sistemas embebidos / IoT
 
- Navegadores
 
- Prototipos
 
---
 
<nowiki>##</nowiki> Comparación
 
| Característica | SQLite | PostgreSQL / MySQL |
 
|--------------|--------|--------------------|
 
| Arquitectura | Embebida | Cliente-servidor |
 
| Instalación | No | Sí |
 
| Escalabilidad | Baja | Alta |
 
| Concurrencia | Limitada | Alta |
 
---
 
<nowiki>##</nowiki> Comandos útiles
 
- `.open archivo.db`
 
- `.tables`
 
- `.schema`
 
- `.exit`
 
---
 
<nowiki>##</nowiki> Seguridad


SQLite no tiene autenticación interna. Depende de:
SQLite no tiene autenticación interna. Depende de:


- Permisos del sistema operativo
* Permisos del sistema operativo
 
* Encriptación externa (ej: SQLCipher)
- Encriptación externa (ej: SQLCipher)
 
---


<nowiki>##</nowiki> Licencia
== Licencia ==


Dominio público. Uso libre sin restricciones.
Dominio público. Uso libre sin restricciones.
14

ediciones