Articulo de referencia

Clave única

En los sistemas de gestión de bases de datos relacionales , una clave única es una clave candidata . Todas las claves candidatas de una relación pueden identificar de forma únic...

En los sistemas de gestión de bases de datos relacionales , una clave única es una clave candidata . Todas las claves candidatas de una relación pueden identificar de forma única los registros de la relación, pero solo una de ellas se utiliza como clave primaria. Las claves candidatas restantes se denominan claves únicas porque pueden identificar de forma única un registro en una relación. Las claves únicas pueden constar de varias columnas. También se las conoce como claves alternativas . Las claves únicas son una alternativa a la clave primaria de la relación. En SQL, las claves únicas tienen una UNIQUErestricción asignada para evitar duplicados (una entrada duplicada no es válida en una columna única). Las claves alternativas se pueden utilizar como la clave primaria al realizar una selección de una sola tabla o al filtrar en una cláusula WHERE , pero no se suelen utilizar para unir varias tablas.

Resumen

Las claves permiten a los usuarios de la base de datos y al software de aplicación identificar, acceder y actualizar la información en una tabla. Una tabla puede contener varias claves. Por ejemplo, en una tabla de empleados, tanto el número de empleado como el nombre de usuario son únicos. La aplicación de una restricción de clave (es decir, una restricción de unicidad) en una tabla también es una característica de la integridad de los datos de la base de datos. El sistema de gestión de bases de datos (DBMS) impide las actualizaciones que podrían generar valores de clave duplicados y, por lo tanto, garantiza que las tablas siempre cumplan con las reglas de unicidad deseadas. Por consiguiente, la selección adecuada de claves al diseñar una base de datos es un aspecto importante de la integridad de la misma.

Una tabla de base de datos relacional puede tener una o más claves únicas disponibles (denominadas formalmente claves candidatas ). Una de esas claves por tabla puede designarse como clave primaria ; las demás se denominan claves alternativas .

Cualquier clave puede constar de uno o más atributos. Por ejemplo, un número de la Seguridad Social podría ser una clave de un solo atributo para un empleado; una combinación de número de vuelo y fecha podría ser una clave compuesta por dos atributos para un vuelo programado.

En el modelado e implementación de bases de datos se utilizan varios tipos de claves .

En su definición más básica, "una clave es un identificador único" [ 1 ] , por lo que "clave única " es un pleonasmo . Las claves que se encuentran dentro de su entidad de origen son únicas dentro de esa entidad. Las claves que migran a otra entidad pueden ser únicas o no, dependiendo del diseño y de cómo se utilicen en la otra tabla. Las claves foráneas pueden ser la clave primaria en otra tabla; por ejemplo, un ID de persona puede convertirse en el ID de empleado en la tabla de empleados. En este caso, el ID de empleado es tanto una clave foránea como la clave primaria única, lo que significa que las tablas tienen una relación 1:1. En el caso de que la entidad persona contuviera el ID del padre biológico, no se esperaría que el ID del padre fuera único porque un padre puede tener más de un hijo.

Aquí se muestra un ejemplo de cómo una clave primaria se convierte en clave foránea en una tabla relacionada. El ID migra de la tabla Autor a la tabla Libro.

Esquema de la tabla de autores :Autor ( ID , Nombre , Dirección , Fecha de nacimiento )Esquema de la tabla de libros :Libro ( ISBN , ID del autor , Título , Editorial , Precio )

Aquí, ID funciona como clave primaria en la tabla 'Autor', y también como clave foránea en la tabla 'Libro'. La clave foránea sirve de enlace y, por lo tanto, de conexión entre las dos tablas relacionadas en esta base de datos de ejemplo.

En una base de datos relacional, una clave candidata identifica de forma única cada fila de datos en una tabla. Una clave candidata consta de una sola columna o un conjunto de columnas en una tabla. Dado que no se utilizan valores NULL, no puede haber dos filas o registros de datos distintos en una tabla que tengan el mismo valor (o combinación de valores) en esas columnas de clave candidata. Dependiendo de su diseño, una tabla puede tener varias claves candidatas, pero como máximo una puede ser designada como clave primaria.

Una restricción de clave se aplica al conjunto de tuplas en una tabla en un momento dado. Una clave no es necesariamente un identificador único entre todas las posibles instancias de tuplas que podrían almacenarse en una tabla, pero sí implica una regla de integridad de datos que prohíbe la existencia de duplicados en la tabla de la base de datos. Algunos ejemplos de claves son los números de la Seguridad Social , los ISBN , los números de matrícula de vehículos o los nombres de usuario.

En principio, cualquier clave puede ser referenciada por claves foráneas. Algunos sistemas de gestión de bases de datos SQL solo permiten una restricción de clave foránea sobre una clave primaria, pero la mayoría de los sistemas permiten que una restricción de clave foránea haga referencia a cualquier clave de una tabla.

Definición de claves en SQL

Definición de claves en SQL:

ALTER TABLE < identificador de tabla > ADD [ CONSTRAINT < identificador de restricción > ] { PRIMARY KEY | UNIQUE } ( < nombre de columna > [ { , < nombre de columna > } ... ] )

Asimismo, las claves pueden definirse como parte de la CREATE TABLEsentencia SQL.

CREATE TABLE table_name ( id_col INT , col2 CHARACTER VARYING ( 20 ), key_col SMALLINT NOT NULL , ... CONSTRAINT key_unique UNIQUE ( key_col ), ... )
CREATE TABLE table_name ( id_col INT PRIMARY KEY , col2 CHARACTER VARYING ( 20 ), ... key_col SMALLINT NOT NULL UNIQUE , ... )

Diferencias entre la restricción de clave primaria y la restricción única.

Restricción de clave primaria

  1. Una clave primaria no puede permitir valores nulos (una clave primaria no puede definirse en columnas que permitan valores nulos).
  2. Cada tabla no puede tener más de una clave primaria.
  3. En algunos sistemas de gestión de bases de datos relacionales (RDBMS) , una clave primaria genera un índice agrupado por defecto.

Restricción única

  1. Se puede definir una restricción de unicidad en las columnas que permiten valores nulos, en cuyo caso las filas que incluyen valores nulos pueden no ser realmente únicas en el conjunto de columnas definidas por la restricción.
  2. Cada tabla puede tener múltiples restricciones únicas.
  3. En algunos sistemas de gestión de bases de datos relacionales (RDBMS) , una restricción de unicidad genera un índice no agrupado por defecto.

Cabe destacar que, a diferencia de la restricción PRIMARY KEY, una restricción UNIQUE no implica NOT NULL para las columnas que participan en ella. Es necesario especificar NOT NULL para que la(s) columna(s) se conviertan en clave. Si bien es posible aplicar restricciones UNIQUE a columnas que admiten valores nulos, el estándar SQL establece que la restricción no garantiza la unicidad de dichas columnas (la unicidad no se aplica a las filas donde alguna de las columnas contiene un valor nulo).

Según el estándar SQL [ 2 ], una restricción de unicidad no garantiza la unicidad en presencia de valores nulos y, por lo tanto, puede contener varias filas con combinaciones idénticas de valores nulos y no nulos; sin embargo, no todos los sistemas de gestión de bases de datos relacionales (RDBMS) implementan esta característica según el estándar SQL. [ 3 ] [ 4 ]

Véase también

Referencias

  1. Awad, Elias (1985), Análisis y diseño de sistemas, Segunda edición , Richard D. Irwin, Inc., ISBN 0-256-02824-9
  2. Resumen de ANSI/ISO/IEC SQL Archivado el 25 de abril de 2012 en Wayback Machine
  3. "Restricciones - Material de referencia de bases de datos SQL - ¡Aprenda SQL, lea un manual de SQL, siga un tutorial de SQL o aprenda a estructurar una consulta SQL!" . www.sql.org . Consultado el 16 de agosto de 2018 .
  4. "Comparación de diferentes implementaciones de SQL" . troels.arvin.dk . Consultado el 16 de agosto de 2018 .
  • Términos de referencia de bases de datos relacionales, Claves : Una descripción general de los diferentes tipos de claves en un SGBDR