¿Qué es una clave foránea en una base de datos relacional?
Una clave foránea en una base de datos relacional es una clave que se usa en una tabla secundaria y que coincide con la clave primaria en una tabla primaria relacionada. Las claves foráneas pueden tener valores duplicados (multiplicidad) en la tabla secundaria, mientras que para las claves primarias eso no es posible. El uso apropiado de claves foráneas permite exigir la integridad referencial.
Un ejemplo simple
Un ejemplo simple de una clave foránea en una base de datos es una tabla primaria "Student" (Estudiante) con Student_ID como su clave primaria. En la tabla secundaria relacionada "Course_Enrollment" (Curso_Matriculación) con Course_ID como clave primaria, para cada curso en el que un estudiante se haya matriculado aparece la clave foránea Student_ID de la tabla "Student".
Regla de integridad referencial
La regla de la integridad referencial establece que cualquier valor de clave foránea no nulo en una tabla secundaria debe hacer referencia a un valor de clave primaria de su tabla primaria en la base de datos. En el ejemplo del Paso 1 no tendría sentido en la base de datos tener un estudiante matriculado en un curso cuando no haya información acerca del estudiante en la tabla "Student". Esta regla hace cumplir la consistencia en una base de datos.
Eliminaciones en cascada
Cada registro secundario en una relación de clave foránea debe tener un registro primario correspondiente de acuerdo a la regla de integridad referencial. Una eliminación en cascada debe ocurrir toda vez que un registro de una tabla primaria sea eliminado, lo que también remueve todos los registros correspondientes de la base de datos. En el ejemplo del Paso 1, eliminar un estudiante de la tabla Student de la base de datos también eliminará todas las ocurrencias de los registros de matriculación de ese estudiante en la tabla Course_Enrollment.