Claves de Db2

Una clave es una columna o una colección ordenada de columnas que se identifica en la descripción de una tabla, un índice o una restricción de referencia. Las claves son decisivas para la estructura de tablas en una base de datos relacional.

Las claves son importantes en una base de datos relacional debido a que aseguran que cada registro de una tabla se identifique de forma exclusiva, ayudan a establecer e imponer integridad de referencia y establecen relaciones entre tablas. La misma columna puede formar parte de más de una clave.

Una clave compuesta es un conjunto ordenado de dos o más columnas de la misma tabla. El orden de las columnas no está restringido por su orden real dentro de la tabla. El término valor, cuando se utiliza en relación a una clave compuesta, indica un valor compuesto. Por ejemplo, considere esta regla: El valor de la clave foránea debe ser igual al valor de la clave primaria. Esta regla significa que cada componente del valor de la clave foránea debe ser igual al correspondiente componente del valor de la clave primaria.

Db2 admite varios tipos de claves.

Claves exclusivas

Una restricción exclusiva es una regla en la que los valores de una clave únicamente son válidos si son exclusivos. Una clave restringida a tener valores exclusivos es una clave exclusiva. Db2 utiliza un índice único para aplicar la restricción durante la ejecución de la utilidad LOAD y siempre que se utilice una instrucción INSERT, UPDATE o MERGE para añadir o modificar datos. Cada clave exclusiva es una clave de un índice exclusivo. Puede definir una clave exclusiva utilizando la cláusula UNIQUE de la sentencia CREATE TABLE o ALTER TABLE. Una tabla puede tener cualquier número de claves exclusivas.

Las columnas de una clave exclusiva no pueden contener valores nulos.

Claves primarias

Una clave primaria es un tipo especial de clave exclusiva y no puede contener valores nulos. Por ejemplo, la columna DEPTNO de la tabla DEPT es una clave primaria.

Una tabla no puede tener más de una clave primaria. Las claves primarias son opcionales y se pueden definir en sentencias CREATE TABLE o ALTER TABLE.

El índice exclusivo de una clave primaria se denomina índice primario. Cuando se define una clave principal en una instrucción CREATE TABLE o ALTER TABLE, Db2 crea automáticamente el índice principal.

Si ya existe un índice único en las columnas de la clave principal cuando se define en la instrucción ALTER TABLE, este índice único se designa como índice principal cuando Db2 funciona en modo de nueva función y crea implícitamente el espacio de tabla.

Claves padre

Una clave padre es una clave primaria o una clave exclusiva de la tabla padre de una restricción de referencia. Los valores de una clave padre determinan los valores válidos de la clave foránea en la restricción.

Claves foráneas

Una clave foránea es una clave que se especifica en la definición de una restricción de referencia en una sentencia CREATE o ALTER TABLE. Una clave foránea hace referencia a una clave padre específica o está relacionada con ella.

A diferencia de otros tipos de claves, una clave foránea no necesita un índice en su columna o columnas subyacentes. Una tabla puede tener cero o más claves foráneas. El valor de una clave foránea compuesta es nulo si cualquier componente del valor es nulo.

La siguiente figura muestra la relación entre algunas columnas de la tabla DEPT y la tabla EMP.

Figura 1. Relación entre las tablas DEPT y EMP
Comenzar descripción de figura. La tabla DEPT y la tabla EMP se
presentan con flechas para indicar las claves primaria y foránea de cada tabla. Finalizar descripción de figura.
Notas de la figura : Cada tabla tiene una clave principal:
  • DEPTNO en la tabla DEPT
  • EMPNO en la tabla EMP

Cada tabla tiene una clave foránea que establece una relación entre las tablas:

  • Los valores de la clave foránea de la columna DEPT de la tabla EMP coinciden con los valores de la columna DEPTNO de la tabla DEPT.
  • Los valores de la clave foránea de la columna MGRNO de la tabla DEPT coinciden con los valores de la columna EMPNO de la tabla EMP cuando un empleado es un director.

Para ver una relación específica entre filas, observe cómo las filas sombreadas para el departamento C01 y el número de empleado 000030 comparten valores comunes.