¿Qué significa clave compuesta?
Una clave compuesta, en el contexto de las bases de datos relacionales, es una combinación de dos o más columnas de una tabla que puede utilizarse para identificar de forma única cada fila de la tabla. La unicidad sólo se garantiza cuando se combinan las columnas; tomadas individualmente, las columnas no garantizan la unicidad.
Definición de clave compuesta
Cualquier columna o columnas que puedan garantizar la unicidad se denominan claves candidatas; sin embargo, una clave compuesta es un tipo especial de clave candidata que sólo está formada por la combinación de dos o más columnas. A veces la clave candidata es una sola columna, y otras se forma uniendo varias columnas.
Consideremos el ejemplo de una determinada tabla de la base de datos de un banco comercial. Esta tabla se utiliza para almacenar los registros de las cuentas bancarias de los particulares. Suponiendo que la tabla tenga columnas separadas para el tipo de cuenta (C para cheques, S para ahorros, etc.), seguidas de otra columna para el año y el mes de creación de la cuenta, y otra columna para un número secuencial dentro de ese mes.
Por lo que cualquiera de estas columnas por sí sola no puede identificar una cuenta -se puede deducir que habría varias C en la columna «Tipo de cuenta», habría varias entradas para mayo de 2008 en la columna «Fecha de creación», etc.-.
Sin embargo, si se combinan las tres columnas, se produce un registro único para todas y cada una de las cuentas. Un número de cuenta hipotético en este ejemplo sería «C 200807 001» para la primera cuenta creada en julio de 2008, que es una cuenta corriente. Otro sería «S 201003 004» para la cuarta cuenta de ahorro creada en marzo de 2010. Se trata de una clave compuesta, es decir, una clave candidata que garantiza la unicidad sólo cuando se unen dos o más columnas.
Una clave compuesta puede definirse como clave primaria. Esto se hace mediante sentencias SQL en el momento de crear la tabla. Significa que los datos de toda la tabla se definen e indexan en el conjunto de columnas definidas como clave primaria.