Identificar la clave foránea de una tabla
- Msc. Eddy Perdomo
- 17 oct 2018
- 2 Min. de lectura
Actualizado: 18 oct 2018
Este artículo es una continuación de relación y cardinalidad entre tablas, que hace referencia al paso N° 4 de 5 en nuestro proceso de diseño de una base de datos desde cero. Aquí te explicaré puntualmente la funcionalidad de la clave foránea.
Si haz seguido bien los pasos, el modelo debería tener la siguiente forma:

Pero en la recolección de los datos no habíamos considerado que en la tabla [ficha clínica de mascotas] ademas de doctores, también son asignados los asistentes del doctor, creando de esa manera una relación (M:N), así:

Decíamos en el artículo anterior que esto no sería manejable técnicamente ya que crea un conflicto lógico, veamos un ejemplo de no crear la tabla intermedia:

Como es (M:N) el doctor José Robles y la asistente Gaby Ordoñez trabajaron con el mismo paciente que es la mascota con código 1, el día 31 de diciembre a las 14:59 en la sucursal norte; la clave primaria de la tabla [ficha clínica de mascotas] es: mascota + fecha + hora, pero se repetiría como ves en la imagen y está bien que se repita porque son muchos colaboradores quienes trataron a la mascota, en resumen, la mascota puede generar M casos médicos al día que deberán ser atendidos por N doctores y asistentes.
Por lo tanto, como has evidenciado en el ejemplo, si no creamos la tabla intermedia, no podemos implementar el modelo porque carecería de consistencia, así que vamos a crearla y llamarla [atención de casos].

Como observas, cuando creamos tablas intermedias, éstas se crean a base de claves que son primarias en otras tablas, entonces las claves de la tabla intermedia pasan a llamarse claves foráneas o claves de referencia hacia su "tabla padre".
En la práctica a los nombres técnicos se los suele conservar en su idioma original, sólo los traducimos al idioma español para efectos de explicación, así que vamos a identificarlos por sus siglas en ingles.
PK = primary key (clave primaria).
FK = foreign key (clave foránea o de referencia).

¿En la práctica cómo sé que mis claves foráneas funcionan?
Ahora estamos haciendo únicamente el diseño, pero más adelante cuando implementes la base de datos con lenguaje T-SQL, al asignarle clave(s) foránea(s) a una tabla, el motor de base de datos validará si ese dato ya existe en las "tablas padre" cada vez que un nuevo registro quiera grabarse, si no se cumple, dará error de integridad y no insertará ese registro, asegurándote que todo tenga sentido.
Ej.
Si quisiera insertar en la tabla [atención de casos] un registro con código_sucursal = 4, daría error y no se insertaría, porque sucursales sólo tenemos 3 disponibles, ¿recuerdas?:

Con esto concluimos este pequeño artículo sobre claves foráneas, te servirán estos conocimientos para el paso N° 5 que es la normalización de la base de datos; continúa con el curso! [volver al curso]
Comments