ENES

Claves primarias y foráneas

La clave primaria identifica cada fila; la foránea apunta a una fila de otra tabla.

Una tabla customers con la columna id resaltada, y una tabla orders cuya columna customer_id apunta hacia ella con flechas

En una base de datos relacional, la clave primaria (primary key) es la columna, o el conjunto de columnas, que identifica cada fila de forma única. En una tabla customers suele ser un id: el cliente 42 es siempre ese cliente y ningún otro, aunque haya dos personas con el mismo nombre. La base rechaza una segunda fila con la misma clave primaria y no deja que quede vacía.

Una clave foránea (foreign key) es una columna de una tabla que guarda la clave primaria de una fila de otra tabla. La tabla orders tiene una columna customer_id, y cada valor apunta a una fila de customers. Así una base conecta datos sin copiarlos: el pedido no repite el nombre y la dirección del cliente, solo dice "cliente 42", y un JOIN de SQL junta las dos cosas cuando las necesitás.

Las claves foráneas además protegen la coherencia. Si están declaradas en el esquema de base de datos, la base no acepta un pedido del cliente 999 cuando no existe ningún cliente 999, y puede impedir que borres un cliente que todavía tiene pedidos. Muchos sistemas de análisis se saltean estos controles para ir más rápido, y por eso la limpieza de datos encuentra tan seguido filas huérfanas.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Datos