Borrado lógico y físico de datos en SQL
Clase 19 de 24 • Curso de Fundamentos de Bases de Datos
Resumen
Gestionar la eliminación de datos en SQL requiere especial cuidado y decisiones estratégicas. Existen dos métodos principales para borrar registros de una base de datos: el borrado lógico (suave) y el borrado físico (duro). Entender claramente ambos y cuándo utilizarlos aporta valor añadido tanto operativo como legalmente a un proyecto.
¿Qué es el borrado lógico y cuándo utilizarlo?
El borrado lógico o suave es una técnica que no elimina el registro por completo de la base de datos, sino que lo marca como inactivo mediante la adición de una columna especial, comúnmente denominada active. Esto permite conservar los datos para:
- Generar estadísticas.
- Mantener auditorías.
- Cumplir obligaciones legales.
¿Cómo implementar una columna de borrado lógico?
Se debe añadir una nueva columna active de tipo tiny int, que indicará mediante valores (1 activo, 0 inactivo) el estado del registro:
ALTER TABLE clients ADD COLUMN active TINYINT NOT NULL DEFAULT 1 AFTER phone number;
Al marcar un registro como inactivo, actualizamos su valor a 0 mediante comando:
UPDATE clients SET active = 0 WHERE client_id = 3680;
¿Cuál es el procedimiento para borrar físicamente datos en SQL?
El borrado duro implica eliminar definitivamente un registro de la base de datos, acción que no permite recuperar fácilmente la información eliminada. El comando SQL utilizado es:
DELETE FROM clients WHERE condicion;
¿Qué prácticas seguras seguir al realizar un borrado físico?
Para evitar pérdidas accidentales, es recomendable seguir buenas prácticas como:
- Comenzar siempre escribiendo
WHERE false
antes de especificar condiciones. - Limitar la cantidad de filas eliminadas mediante
LIMIT
. - Usar condiciones específicas y seguras como el identificador único o valores exactos.
Ejemplo práctico de borrado:
DELETE FROM clients WHERE email = 'user@example.com' LIMIT 1;
¿Qué consideraciones tener con las claves foráneas (foreign keys) al eliminar datos?
Al usar borrado duro en tablas con relaciones (foreign keys), se debe atender especialmente la configuración de cascada (on delete cascade) que permite eliminar automáticamente registros relacionados. Esto, aunque útil, requiere gran precaución porque podría causar eliminaciones inesperadas en múltiples tablas.
¿Cuál es la importancia del acuerdo técnico sobre el método de borrado?
Incluir claramente en el desarrollo del sistema y en acuerdos con el equipo la forma en que se manejan los borrados (lógico o físico) es esencial. La decisión final depende del contexto operativo, legal y de negocio del proyecto.