Uso de claves primarias múltiples en bases de datos

Autor: | Última modificación: 8 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

El uso de claves primarias múltiples hace posible que, entre miles o incluso millones de datos, un sistema informático pueda obtener la información exacta que buscas en cuestión de segundos. Aunque puede parecer sencillo en teoría, su aplicación práctica puede tener grandes implicaciones para el rendimiento y la eficiencia de nuestras bases de datos.

¿Qué es una clave primaria (primary key)?

Antes de conocer el uso de claves primarias múltiples en bases de datos, recordaremos qué es una clave primaria. Una clave primaria (también conocida como primary key) es como el ADN de una fila en una base de datos. Es única y permite identificar cada fila de forma inequívoca. Se podría decir que es la columna (o columnas) que garantiza que cada registro tenga su propia identidad.

Esta clave principal tiene ciertas condiciones. No puede ser NULL, es decir, tiene que tener un valor y, por supuesto, este valor debe ser único en toda la tabla.

Imagina que estamos creando una tabla de «Temporadas» para una aplicación de streaming. La sintaxis para crear una tabla en SQL es la siguiente:

CREATE TABLE Temporadas (
    ID_Serie VARCHAR(10) NOT NULL,
    Num_Temporada INT NOT NULL,
    Año INT,
    Titulo VARCHAR(200),
    PRIMARY KEY (ID_Serie, Num_Temporada)
);

Puedes observar que, en este caso, la clave primaria está compuesta por dos campos: ID_Serie y Num_Temporada. Es decir, la combinación de ambos debe ser única en toda la tabla.

Uso de claves primarias múltiples

Hay diferentes formas de agregar claves primarias a nuestras tablas. Aunque la anterior es válida, también hay una forma más formal y universalmente compatible: la sintaxis ALTER TABLE.

Para entenderla mejor, mira este código:

ALTER TABLE Temporadas
ADD CONSTRAINT Temporadas_Primary PRIMARY KEY (ID_Serie, Num_Temporada);

Aquí, mediante ALTER TABLE, añadimos la primary key a la tabla después de haberla creado, lo que nos brinda una mayor flexibilidad y compatibilidad con diferentes sistemas de gestión de bases de datos.

Las claves primarias en relación con otras tablas

Cuando trabajamos con bases de datos, muchas veces necesitamos relacionar la información de una tabla con la de otra. Por ejemplo, cada «Temporada» está relacionada con una «Serie«. Ahí es donde entran en juego las claves primarias múltiples.

Si necesitamos insertar una nueva temporada en la tabla «Temporadas», debemos verificar que la serie correspondiente existe en la tabla «Series». Es lo que se conoce como integridad referencial.

Para ello, podríamos usar algo como esto:

ALTER TABLE Temporadas
ADD FOREIGN KEY (ID_Serie) REFERENCES Series(ID_Serie);

Con este código, ID_Serie en la tabla «Temporadas» se convierte en una llave foránea (foreign key) que apunta a ID_Serie en la tabla «Series». De esta manera, garantizamos que no se puede añadir una temporada a una serie que no existe.

Descubre más

A primera vista puede parecer que el orden en el que hacemos uso de claves primarias múltiples no importa, pero la realidad es que el orden puede afectar al rendimiento de nuestras consultas, especialmente cuando estamos tratando con grandes volúmenes de datos.

El motor de la base de datos genera un plan de ejecución para nuestras consultas, buscando la forma más eficiente de acceder a los datos. Por lo tanto, la forma en que ordenamos nuestras claves primarias puede influir en este plan de ejecución y, en última instancia, en el rendimiento de nuestras consultas.

Aún hay mucho más que aprender sobre bases de datos, así que, si quieres seguir aprendiendo, no te pierdas nuestro Desarrollo Web Full Stack Bootcamp. En solo unos meses, esta formación intensiva y nuestros profesores expertos en el sector te ayudarán a alcanzar todos tus sueños en el mundillo IT. ¡Entra ahora para pedir información y descubre cómo cambiar tu futuro!

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado