Creación y Gestión de Relaciones en Bases de Datos Relacionales

Clase 12 de 24Curso de Fundamentos de Bases de Datos

Resumen

¿Qué es y cómo crear una tabla intermediaria en SQL?

Cuando tenemos diferentes tablas en una base de datos (por ejemplo, clientes, productos y facturas), es necesario contar con una tabla intermediaria. Bill Products es un ejemplo de este tipo de tabla, encargada de unir lo que se ha vendido (productos) con cada factura respectiva.

Una tabla de unión o intermediaria contiene:

  • Una llave primaria (Primary Key).
  • Referencias a las tablas relacionadas mediante llaves foráneas (Foreign Keys).
  • Información específica adicional, como cantidad, fechas de creación y actualización.

¿Cómo usar llaves foráneas y cuáles son sus opciones principales?

Una llave foránea (Foreign Key) vincula dos tablas indicando una dependencia clara entre ellas. Las opciones más comunes al momento de actuar sobre registros relacionados son:

  • ON UPDATE CASCADE: al actualizar el campo origen, también actualiza dependencias.
  • ON DELETE CASCADE: al borrar un registro origen, elimina automáticamente todos sus registros dependientes.
  • Otras opciones alternativas menos frecuentes, como SET NULL o SET DEFAULT, regularmente presentan restricciones de compatibilidad según el motor de base de datos usado.

Estas opciones dependen del motor utilizado (por ejemplo, InnoDB en MySQL).

¿Diferencias entre relaciones duras y relaciones suaves en bases de datos?

Relaciones duras:

  • Están definidas estrictamente a nivel de base de datos.
  • Si eliminas un registro, automáticamente se eliminan todos los relacionados (al usar CASCADE).
  • Son más seguras a nivel integridad, pero pueden generar dificultades operativas cuando hay cambios frecuentes.

Relaciones suaves:

  • No requieren definición estricta en la base de datos, delegando esta lógica a la aplicación.
  • Permiten más flexibilidad ante cambios frecuentes, simplificando la administración.
  • La responsabilidad cae en el programador para mantener la integridad referencial desde el código mismo.

La elección dependerá del contexto, siendo ambas válidas bajo criterios claros según las necesidades del proyecto. Cada escenario ofrece pros y contras relacionados directamente con la flexibilidad y la robustez del esquema.

Te invito a compartir qué tipo de relaciones prefieres en tus proyectos y tu experiencia al implementarlas.