top of page
Modern Architecture
image.png
image.png

INTRODUCCIÓN A LA COMPUTACIÓN
Alumno: Sergio Fernando Feliciano Zuñiga
Profesor: Carlos Alberto Janjachi

                         FIIS-UNI

SQLite: ¿Qué es y por qué es importante?

¿Qué es SQLite?

SQLite3 es un sistema de gestión de bases de datos relacional (RDBMS) que se destaca por su ligereza, simplicidad y facilidad de uso. A diferencia de sistemas de gestión de bases de datos más grandes y complejos, SQLite se implementa como una biblioteca escrita en el lenguaje de programación C, y no como un servidor independiente.

Algunas características clave de SQLite3 son:

  1. Sin Servidor: A diferencia de sistemas de bases de datos cliente-servidor, como MySQL o PostgreSQL, SQLite3 opera directamente sobre un archivo, y no requiere un servidor independiente para gestionar las conexiones y las operaciones de la base de datos.

  2. Autónomo: SQLite3 es una biblioteca que se integra directamente en la aplicación que lo utiliza. Esto hace que sea fácil de incorporar en proyectos sin necesidad de configuración o instalación de un servidor externo.

  3. Autónomo y Cero Configuración: SQLite3 no requiere configuración de servidor ni ajustes complicados. Puede ser utilizado de manera autónoma sin necesidad de tareas de mantenimiento complejas.

  4. Transacciones ACID: SQLite3 sigue los principios de ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) para garantizar que las transacciones de la base de datos sean seguras y fiables.

  5. Ligero y Eficiente: Diseñado para ser ligero y eficiente, SQLite3 es ideal para aplicaciones embebidas, sistemas integrados, dispositivos móviles y proyectos que no requieren una gran cantidad de recursos.

  6. Soporte para Múltiples Plataformas: SQLite3 es compatible con una variedad de plataformas, incluyendo Windows, macOS, Linux, iOS y Android.

  7. Ampliamente Utilizado: Debido a su simplicidad y eficiencia, SQLite3 es ampliamente utilizado en una variedad de aplicaciones, desde dispositivos móviles hasta navegadores web y sistemas embebidos.

  8. Baja Latencia: Ofrece baja latencia en operaciones de lectura y escritura, siendo adecuado para aplicaciones que requieren respuestas rápidas.

Si bien SQLite3 es muy útil para aplicaciones más ligeras y proyectos que no requieren una gran escala o complejidad, puede no ser la elección ideal para todas las situaciones, especialmente para aplicaciones empresariales que manejan grandes conjuntos de datos o requieren funcionalidades avanzadas. Sin embargo, su simplicidad y facilidad de uso lo convierten en una excelente opción en muchos contextos.

​

¿Por qué es importante SQLite?

SQLite3 es importante por varias razones, y su popularidad se debe a su flexibilidad, simplicidad y eficiencia. Aquí algunas de las razones por las cuales SQLite3 es importante:

  1. Ligero y Fácil de Usar: SQLite3 es extremadamente ligero y fácil de integrar en aplicaciones. No requiere la instalación ni configuración de un servidor separado, lo que facilita su uso en una variedad de proyectos.

  2. Sin Necesidad de Administración: Al ser un sistema de gestión de bases de datos sin servidor, no requiere tareas de administración complejas. No hay necesidad de reinicios periódicos ni ajustes continuos.

  3. Autónomo y Embebido: SQLite3 opera directamente sobre un archivo y se puede incrustar directamente en la aplicación. Esto lo hace ideal para sistemas embebidos y aplicaciones ligeras.

  4. Transacciones ACID: A pesar de ser ligero, SQLite3 sigue los principios de ACID, lo que garantiza la integridad y la consistencia de los datos incluso en entornos con múltiples operaciones concurrentes.

  5. Ampliamente Soportado: SQLite3 está disponible en una amplia gama de plataformas y lenguajes de programación, incluyendo Python, Java, C++, C#, entre otros. Esto facilita su integración en diferentes entornos de desarrollo.

  6. Bajo Consumo de Recursos: Dado su tamaño compacto y su diseño eficiente, SQLite3 consume menos recursos en comparación con algunos sistemas de gestión de bases de datos más grandes.

  7. Uso en Aplicaciones Móviles: SQLite3 es una elección común para el desarrollo de aplicaciones móviles, ya que es compatible con iOS y Android. Muchos sistemas operativos móviles utilizan SQLite para gestionar datos internos y configuraciones.

  8. Soporte para Sitios Web y Navegadores: Al ser implementado en forma de una biblioteca embebida, SQLite3 se utiliza en navegadores web como Google Chrome y Mozilla Firefox para gestionar datos internos.

  9. Aplicaciones de Pequeña y Mediana Escala: Es una excelente opción para aplicaciones de pequeña y mediana escala que no requieren la complejidad y la infraestructura de sistemas de gestión de bases de datos más grandes.

  10. Proyectos de Aprendizaje y Prototipos: SQLite3 es a menudo la elección para proyectos de aprendizaje, prototipos y desarrollo rápido de aplicaciones debido a su facilidad de uso y rápida implementación.

Si bien SQLite3 tiene limitaciones en términos de escalabilidad y funcionalidades avanzadas en comparación con algunos sistemas de gestión de bases de datos más robustos, su importancia radica en su capacidad para satisfacer las necesidades de una amplia gama de aplicaciones y escenarios de desarrollo.

Para usar SQLite3 en Google Colab, sigue este paso:​​

  • Importación de SQLite3: Una vez instalado, puedes importar la librería en tus celdas de código utilizando la siguiente línea:

​

       

Puedes agregar esta línea al principio del cuaderno para asegurarte de que SQLite3 esté disponible en todo el cuaderno.

Después de ejecutar estas celdas, tendrás SQLite3 instalado y listo para usar en tu entorno de Google Colab. Recuerda que si cierras tu sesión en Google Colab, deberás volver a ejecutar estas celdas la próxima vez que abras un nuevo entorno.

​

Ventajas de SQLite3:

  1. Ligero y sin servidor: SQLite es una biblioteca C que se integra directamente con la aplicación. No requiere un servidor independiente y funciona directamente con los archivos de la aplicación.

  2. Autónomo y sin configuración: No hay necesidad de configurar un servidor o realizar una compleja instalación. SQLite es autónomo y solo requiere la inclusión de la biblioteca en la aplicación.

  3. Transacciones ACID: SQLite sigue los principios de ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad), lo que garantiza que las transacciones se realicen de manera segura y fiable.

  4. Soporte para múltiples plataformas: SQLite es compatible con diversas plataformas, incluyendo Windows, macOS, Linux, iOS y Android.

  5. Sin necesidad de mantenimiento: No se requieren tareas de mantenimiento como reinicios, ajustes de configuración o actualizaciones continuas.

  6. Rápido y eficiente para operaciones simples: Es especialmente eficiente para operaciones de lectura y escritura simples, lo que lo hace adecuado para aplicaciones ligeras y móviles.

  7. Ampliamente utilizado: SQLite se utiliza en una amplia variedad de aplicaciones, desde sistemas integrados hasta aplicaciones de escritorio y móviles.

Desventajas de SQLite3:

  1. Concurrencia limitada: Aunque tiene soporte para múltiples conexiones, no es ideal para situaciones de alta concurrencia. Si varias transacciones intentan escribir simultáneamente en la base de datos, puede haber bloqueos.

  2. Escalabilidad limitada: Puede volverse menos eficiente en términos de rendimiento en aplicaciones que manejan grandes cantidades de datos o que requieren operaciones de escritura intensivas.

  3. Menos funcionalidades avanzadas: Comparado con sistemas de gestión de bases de datos más grandes y complejos, SQLite carece de algunas funcionalidades avanzadas como procedimientos almacenados, funciones definidas por el usuario y desencadenadores más complejos.

  4. Capacidad de manejo de grandes conjuntos de datos: Si la aplicación maneja grandes conjuntos de datos o requiere funciones avanzadas de análisis de datos, otras bases de datos pueden ser más apropiadas.

  5. Limitado soporte para tipos de datos: Aunque admite tipos de datos comunes, el soporte para tipos de datos especializados o personalizados puede ser limitado.

  6. Sin autenticación de usuarios: SQLite no tiene un sistema de autenticación de usuarios incorporado, lo que significa que cualquier usuario con acceso al archivo de base de datos puede realizar operaciones en él.

  7. Menos adecuado para aplicaciones empresariales: En comparación con sistemas de gestión de bases de datos más robustos, SQLite podría no ser la mejor opción para aplicaciones empresariales complejas con altos requisitos de rendimiento y escalabilidad.

image.png

EJEMPLO 1:

Celda 1: Importar las bibliotecas y montar Google Drive

import sqlite3
from google.colab import drive

# Montar Google Drive para acceder a archivos en Drive
drive.mount('/content/drive')
 

Celda 2: Definir la ruta de la base de datos en Google Drive

# Ruta en Google Drive para almacenar la base de datos
db_folder_path = '/content/drive/My Drive/Colab Notebooks/'
db_path = f'{db_folder_path}peliculas.db'

 

Celda 3: Conectar a la base de datos y crear un cursor
# Conectar a la base de datos (si no existe, se creará)
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
 

Celda 4: Crear una tabla para almacenar información de películas

# Crear una tabla para almacenar información de películas
cursor.execute('''
    CREATE TABLE IF NOT EXISTS peliculas (
        id INTEGER PRIMARY KEY,
        titulo TEXT,
        director TEXT,
        año INTEGER,
        calificacion REAL
    )
''')

 

Celda 5: Insertar datos en la tabla de películas

# Insertar datos en la tabla de películas
cursor.execute("INSERT INTO peliculas (titulo, director, año, calificacion) VALUES (?, ?, ?, ?)", ('Pelicula1', 'Director1', 2022, 4.5))
cursor.execute("INSERT INTO peliculas (titulo, director, año, calificacion) VALUES (?, ?, ?, ?)", ('Pelicula2', 'Director2', 2021, 3.8))
cursor.execute("INSERT INTO peliculas (titulo, director, año, calificacion) VALUES (?, ?, ?, ?)", ('Pelicula3', 'Director3', 2020, 4.2))

 

Celda 6: Guardar cambios y cerrar la conexión

# Guardar los cambios y cerrar la conexión
conn.commit()
conn.close()
 

Celda 7: Consultar y mostrar información de películas

# Consultar y mostrar información de películas
conn = sqlite3.connect(db_path)
cursor = conn.cursor()

cursor.execute('SELECT * FROM peliculas')
peliculas = cursor.fetchall()

for pelicula in peliculas:
    print(pelicula)

# Cerrar la conexión
conn.close()

EJEMPLO 2:

Celda 1: Instalación y conexión a Google Drive

!pip install sqlite

from google.colab import drive

drive.mount('/content/drive')

​

Celda 2: Importar las bibliotecas necesarias y conectar a la base de datos

import sqlite3

 

# Ruta de la base de datos en Google Drive

db_folder_path = '/content/drive/My Drive/Colab Notebooks/'

db_path = f'{db_folder_path}tareas.db'

 

# Conectar a la base de datos (se creará si no existe)

conn = sqlite3.connect(db_path)

cursor = conn.cursor()

 

Celda 3: Crear tabla para tareas

cursor.execute('''

    CREATE TABLE IF NOT EXISTS tareas (

        id INTEGER PRIMARY KEY,

        descripcion TEXT,

        completada INTEGER

    )

''')

​

Celda 4: Insertar algunas tareas de ejemplo

cursor.execute("INSERT INTO tareas (descripcion, completada) VALUES (?, ?)", ('Hacer la compra', 0))

cursor.execute("INSERT INTO tareas (descripcion, completada) VALUES (?, ?)", ('Preparar presentación', 0))

cursor.execute("INSERT INTO tareas (descripcion, completada) VALUES (?, ?)", ('Ejercicio 30 minutos', 1))

​

Celda 5: Guardar cambios y cerrar la conexión

conn.commit()

conn.close()

EJEMPLO 3:

Celda 1: Montar Google Drive
from google.colab import drive
drive.mount('/content/drive')

​

Celda 2: Importar la biblioteca SQLite3
import sqlite3

# Ruta de la base de datos en Google Drive
db_folder_path = '/content/drive/My Drive/Colab Notebooks/'
db_path = f'{db_folder_path}tareas.db'

 

Celda 3: Conectar a la base de datos y crear tabla si no existe
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
cursor.execute('''
    CREATE TABLE IF NOT EXISTS tareas (
        id INTEGER PRIMARY KEY,
        descripcion TEXT,
        completada INTEGER
    )
''')
conn.commit()
conn.close()

​

Celda 4: Función para listar tareas
def listar_tareas():
    # Conectar a la base de datos
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()

    # Obtener todas las tareas
    cursor.execute('SELECT * FROM tareas')
    tareas = cursor.fetchall()

    # Cerrar la conexión
    conn.close()

    # Mostrar las tareas
    print("Lista de Tareas:")
    for tarea in tareas:
        estado = "Completada" if tarea[2] else "Pendiente"
        print(f"{tarea[0]}. {tarea[1]} - {estado}")

​

Celda 5: Función para insertar una nueva tarea
def insertar_tarea(descripcion):
    # Conectar a la base de datos
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()

    # Insertar nueva tarea
    cursor.execute("INSERT INTO tareas (descripcion, completada) VALUES (?, ?)", (descripcion, 0))

    # Guardar cambios y cerrar la conexión
    conn.commit()
    conn.close()

​

Celda 6: Función para marcar una tarea como completada
def marcar_completada(id_tarea):
    # Conectar a la base de datos
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()

    # Marcar tarea como completada
    cursor.execute("UPDATE tareas SET completada = ? WHERE id = ?", (1, id_tarea))

    # Guardar cambios y cerrar la conexión
    conn.commit()
    conn.close()

​

Celda 7: Uso de las funciones
listar_tareas()
insertar_tarea("Hacer ejercicio")
insertar_tarea("Leer un libro")
listar_tareas()
marcar_completada(1)
listar_tareas()
 

¡Gracias por suscribirte!

INTRODUCCIÓN A LA COMPUTACIÓN

©2023 creado por Sergio Fernando Feliciano Zuñiga con Wix.com

bottom of page