Objetivo de Aprendizaje
Integrar conocimientos teórico-prácticos en el manejo de bases de datos relacionales (SQLite y MySQL) y formatos de intercambio de datos (JSON) para desarrollar soluciones tecnológicas que aborden problemas reales del entorno, fomentando el pensamiento crítico mediante el análisis de casos de estudio, la experimentación con diferentes enfoques técnicos y la colaboración en equipo, con el fin de construir competencias técnicas sólidas y una actitud ética frente al manejo de información en sistemas digitales contemporáneos.
Contextualización
La vida en datos
Imagina que cada like en Instagram, cada canción que escuchas en Spotify, cada compra que haces en línea, y cada mensaje que envías por WhatsApp deja una huella digital. Estas huellas no son etéreas; se almacenan, organizan y procesan en bases de datos. Tu vida digital es, en esencia, un diálogo constante con sistemas que utilizan SQLite, MySQL y JSON para recordar tus preferencias, conectar tus intereses y predecir tus necesidades.
El latido invisible de las aplicaciones
Cuando abres una app de delivery, detrás de la interfaz colorida hay bases de datos trabajando: SQLite en tu teléfono guarda tu historial local, MySQL en los servidores almacena los menús de todos los restaurantes, y JSON viaja entre tu dispositivo y los servidores llevando los datos de tu pedido. Estos sistemas son el sistema nervioso de la tecnología que usas cada día, y comprenderlos es como aprender el lenguaje secreto que da vida al mundo digital.
De consumidores a creadores
Hoy no basta con usar tecnología; el verdadero poder está en entenderla y crearla. Aprender sobre bases de datos y formatos de datos no es solo memorizar sintaxis; es desarrollar una nueva forma de ver los problemas, descomponerlos en datos estructurados y crear soluciones que impacten. Es pasar de ser espectadores del mundo digital a ser arquitectos de las soluciones que darán forma al futuro de nuestra sociedad.
Desarrollo de la Actividad
1. SQLite: La base de datos en tu bolsillo
SQLite es una biblioteca en C que implementa un motor de bases de datos SQL transaccional, autónomo, sin servidor y de configuración cero. Es la base de datos más implementada en el mundo, presente en casi todos los teléfonos móviles y en muchos aplicativos de escritorio.
-- Creación de una base de datos para una app de tareas estudiantiles
CREATE TABLE estudiantes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nombre TEXT NOT NULL,
email TEXT UNIQUE,
fecha_registro DATE DEFAULT CURRENT_DATE
);
CREATE TABLE tareas (
id INTEGER PRIMARY KEY AUTOINCREMENT,
estudiante_id INTEGER,
materia TEXT,
descripcion TEXT,
fecha_entrega DATE,
completada BOOLEAN DEFAULT 0,
FOREIGN KEY (estudiante_id) REFERENCES estudiantes(id)
);
-- Insertar datos de ejemplo
INSERT INTO estudiantes (nombre, email)
VALUES ('María González', 'maria.gonzalez@colegio.edu.ec');
INSERT INTO tareas (estudiante_id, materia, descripcion, fecha_entrega)
VALUES (1, 'Matemáticas', 'Resolver ejercicios de álgebra página 45', '2023-11-20');
Caso Real: WhatsApp
WhatsApp utiliza SQLite para almacenar mensajes locales, contactos y configuraciones en tu dispositivo. Cada conversación es una tabla, cada mensaje un registro. Cuando no tienes conexión, la app sigue funcionando porque accede a la base de datos local.
Caso Real: Videojuegos
Muchos videojuegos para dispositivos móviles usan SQLite para guardar el progreso del jugador, inventarios, puntuaciones y configuraciones. Es ligero, rápido y no requiere configuración compleja.
2. MySQL: El gigante de las aplicaciones web
MySQL es un sistema de gestión de bases de datos relacional de código abierto que utiliza el lenguaje SQL. Es el más popular para aplicaciones web, siendo utilizado por gigantes como Facebook, Twitter, YouTube y WordPress.
-- Creación de una base de datos para un sistema de biblioteca escolar
CREATE DATABASE biblioteca_escolar;
USE biblioteca_escolar;
CREATE TABLE libros (
id INT PRIMARY KEY AUTO_INCREMENT,
isbn VARCHAR(13) UNIQUE NOT NULL,
titulo VARCHAR(200) NOT NULL,
autor VARCHAR(100),
año_publicacion YEAR,
disponible BOOLEAN DEFAULT TRUE,
fecha_ingreso TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE prestamos (
id INT PRIMARY KEY AUTO_INCREMENT,
libro_id INT,
estudiante_id INT,
fecha_prestamo DATE NOT NULL,
fecha_devolucion DATE,
FOREIGN KEY (libro_id) REFERENCES libros(id),
INDEX idx_estudiante (estudiante_id)
);
-- Consulta compleja: libros más prestados
SELECT l.titulo, l.autor, COUNT(p.id) AS veces_prestado
FROM libros l
LEFT JOIN prestamos p ON l.id = p.libro_id
GROUP BY l.id
ORDER BY veces_prestado DESC
LIMIT 10;
3. JSON: El lenguaje universal de intercambio de datos
JSON (JavaScript Object Notation) es un formato de texto ligero para el intercambio de datos. Es fácil de leer y escribir para humanos, y fácil de parsear y generar para máquinas. Se ha convertido en el estándar para APIs web.
// Ejemplo de JSON para representar un estudiante con sus tareas
{
"estudiante": {
"id": 101,
"nombre": "Carlos Ruiz",
"edad": 16,
"grado": "Décimo",
"contacto": {
"email": "carlos.ruiz@colegio.edu.ec",
"telefono": "+593 99 123 4567"
}
},
"tareas_pendientes": [
{
"materia": "Matemáticas",
"descripcion": "Resolver problemas de geometría",
"fecha_entrega": "2023-11-22",
"prioridad": "alta"
},
{
"materia": "Historia",
"descripcion": "Investigación sobre la Independencia de Guayaquil",
"fecha_entrega": "2023-11-25",
"prioridad": "media"
}
],
"estadisticas": {
"tareas_completadas": 24,
"promedio_calificaciones": 8.7,
"asistencia": 95.2
}
}
Caso Real: APIs Web
Casi todas las APIs modernas (Twitter, Google Maps, Instagram) usan JSON para intercambiar datos. Cuando una app del tiempo consulta a un servicio, recibe un objeto JSON con temperatura, humedad, pronóstico, etc.
Caso Real: Configuraciones
Muchas aplicaciones usan archivos JSON para configuraciones. Visual Studio Code, por ejemplo, guarda todas tus preferencias en archivos JSON que puedes modificar directamente.
El Reto Final
Sistema de Gestión para Ferias de Proyectos Escolares
Imagina que tu colegio organiza una feria anual de proyectos tecnológicos. Debes diseñar e implementar un sistema integral que gestione toda la información relacionada con el evento.
Tu misión (trabajo en equipos de 3):
- Base de datos local (SQLite): Crea una base de datos en el dispositivo que permita a los jueces calificar proyectos sin conexión a internet. Debe incluir tablas para proyectos, categorías, jueces y calificaciones.
- Base de datos central (MySQL): Diseña la estructura para un servidor central que sincronice los datos de todos los jueces y genere reportes en tiempo real del progreso de la feria.
- API en JSON: Define la estructura JSON para la comunicación entre la app móvil de los jueces y el servidor central durante la sincronización de calificaciones.
- Integración: Propón un diagrama que muestre cómo interactúan los tres componentes (SQLite, MySQL, JSON) en el sistema completo.
- Reflexión ética: Incluye un apartado sobre las consideraciones éticas en el manejo de los datos de los participantes (privacidad, transparencia en las calificaciones, etc.).
Criterios de evaluación: Creatividad en la solución, correcta aplicación de conceptos técnicos, usabilidad del diseño, trabajo colaborativo y profundidad de la reflexión ética.
Tiempo estimado: 3 sesiones de clase. ¡Manos a la obra!