Módulo 12 SQL

Módulo 12: Triggers, Stored Procedures e Índices


En este módulo aprenderás qué son los Triggers (disparadores) y cómo automatizan acciones en la base de datos, cómo crear y usar Stored Procedures para encapsular lógica SQL reutilizable, y qué son los Índices para optimizar el rendimiento de tus consultas.


📌 ¿Qué es un Trigger?

Un Trigger es un procedimiento que se ejecuta automáticamente en respuesta a ciertos eventos en la base de datos, como insertar, actualizar o borrar datos.

Ejemplo práctico en MySQL:

CREATE TRIGGER actualizar_fecha_modificacion BEFORE UPDATE ON empleados FOR EACH ROW SET NEW.fecha_modificacion = NOW();

Este trigger actualiza automáticamente la columna fecha_modificacion cada vez que un registro en empleados se actualiza.


📌 Stored Procedures (Procedimientos almacenados)

Son bloques de código SQL almacenados en la base de datos que se pueden ejecutar con un solo comando, ideales para tareas repetitivas o complejas.

Ejemplo de creación:

DELIMITER // CREATE PROCEDURE obtener_empleados_activos() BEGIN SELECT * FROM empleados WHERE estado = 'Activo'; END // DELIMITER ;

Para ejecutarlo:

CALL obtener_empleados_activos();

📌 Índices y rendimiento

Un índice es una estructura que mejora la velocidad de las consultas en una o varias columnas, facilitando búsquedas rápidas.

Ejemplo:

CREATE INDEX idx_apellido ON empleados(apellido);

Esto acelera las consultas que filtran o ordenan por la columna apellido.


📌 Ejercicio final: Combina Trigger + Procedimiento + Índice

Imagina que quieres mantener un historial de cambios de salarios, para ello:

  1. Crear un trigger que al actualizar el salario guarde el registro anterior en una tabla historial_salarios.
  2. Crear un stored procedure para consultar el historial de un empleado por su ID.
  3. Crear un índice en la tabla historial_salarios para acelerar búsquedas por empleado.

Esto mejora la auditoría, consulta y rendimiento.


📥 Preguntas de repaso

Pregunta 1

¿Qué hace un trigger en una base de datos?

  • A) Ejecuta código automáticamente ante eventos definidos.
  • B) Mejora la velocidad de las consultas.
  • C) Guarda datos en una tabla temporal.
  • D) Crea tablas nuevas.

Pregunta 2

¿Para qué se usa un Stored Procedure?

  • A) Para almacenar consultas complejas y ejecutarlas fácilmente.
  • B) Para eliminar tablas.
  • C) Para mejorar la seguridad de la base.
  • D) Para indexar columnas.

Pregunta 3

¿Cuál es la función principal de un índice en una base de datos?

  • A) Mejorar la integridad de los datos.
  • B) Mejorar la velocidad de las consultas.
  • C) Hacer copias de seguridad.
  • D) Crear relaciones entre tablas.

No hay comentarios:

Publicar un comentario

Políticas de Privacidad