stringtranslate.com

Clave única

En los sistemas de administració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 principal de la relación. 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. Las claves únicas también se denominan claves alternativas . Las claves únicas son una alternativa a la clave principal de la relación. En SQL, las claves únicas tienen una UNIQUE restricció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 principal cuando se realiza una selección de una sola tabla o cuando se filtra en una cláusula where , pero no se suelen utilizar para unir varias tablas.

Resumen

Las claves proporcionan los medios para que los usuarios de bases de datos y el software de aplicación identifiquen, accedan y actualicen la información en una tabla de base de datos. Puede haber varias claves en una tabla dada. Por ejemplo, en una tabla de empleados, tanto el número de empleado como el nombre de inicio de sesión son individualmente ú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 integridad de datos de la base de datos. El DBMS evita actualizaciones que causarían valores de clave duplicados y, por lo tanto, garantiza que las tablas siempre cumplan con las reglas deseadas de unicidad. Por lo tanto, la selección adecuada de claves al diseñar una base de datos es un aspecto importante de la integridad de la base de datos.

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

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

Hay varios tipos de claves que se utilizan en el modelado y la implementación de bases de datos.

En la definición más básica, "una clave es un identificador único", [1] por lo que clave única es un pleonasmo . Las claves que están 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 usan en la otra tabla. Las claves externas pueden ser la clave principal en otra tabla; por ejemplo, un PersonID puede convertirse en el EmployeeID en la tabla Employee. En este caso, el EmployeeID es tanto una clave externa como la clave principal única, lo que significa que las tablas tienen una relación 1:1. En el caso en 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.

A continuación se muestra un ejemplo de una clave principal que se convierte en una clave externa 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 , Nacimiento )   Esquema de la tabla de libros :  Libro ( ISBN , ID de autor , Título , Editorial , Precio )    

En este caso, ID funciona como clave principal en la tabla "Autor", pero también como AuthorID funciona como clave externa en la tabla "Libro". La clave externa funciona como vínculo y, por lo tanto, como 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 valores de datos en una tabla de base de datos. Una clave candidata comprende una sola columna o un conjunto de columnas en una sola tabla de base de datos. No puede haber dos filas o registros de datos distintos en una tabla de base de datos que tengan el mismo valor de datos (o combinación de valores de datos) en esas columnas de clave candidata, ya que no se utilizan valores NULL. Según su diseño, una tabla de base de datos puede tener muchas claves candidatas, pero como máximo una clave candidata puede distinguirse como clave principal.

Una restricción de clave se aplica al conjunto de tuplas de una tabla en un momento dado. Una clave no es necesariamente un identificador único en toda la población de todas las instancias posibles de tuplas que podrían almacenarse en una tabla, pero sí implica una regla de integridad de datos que establece que no se deben permitir duplicados en la tabla de la base de datos. Algunos ejemplos posibles de claves son los números de la Seguridad Social , los ISBN , los números de registro de vehículos o los nombres de inicio de sesión de los usuarios.

En principio, cualquier clave puede ser referenciada por claves externas. Algunos DBMS SQL solo permiten una restricción de clave externa contra una clave principal, pero la mayoría de los sistemas permiten que una restricción de clave externa haga referencia a cualquier clave de una tabla.

Definición de claves en SQL

La 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 > } ... ] )                          

Del mismo modo, las claves se pueden definir como parte de la CREATE TABLEdeclaración SQL.

 CREAR TABLA nombre_tabla ( id_col INT , col2 CARÁCTER VARIABLE ( 20 ), clave_col SMALLINT NOT NULL , ... RESTRICCIÓN clave_única UNIQUE ( clave_col ), ... )                  
 CREAR TABLA nombre_tabla ( id_col INT CLAVE PRINCIPAL , col2 CARÁCTER VARIABLE ( 20 ), ... clave_col SMALLINT NOT NULL UNIQUE , ... )                  

Diferencias entre la restricción de clave principal y la restricción única

Restricción de clave principal

  1. Una clave principal no puede permitir valores nulos (no se puede definir una clave principal en columnas que permitan valores nulos).
  2. Cada tabla no puede tener más de una clave principal.
  3. En algunos RDBMS, una clave principal genera un índice agrupado de forma predeterminada.

Restricción única

  1. Se puede definir una restricción única en 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 RDBMS, una restricción única genera un índice no agrupado de forma predeterminada.

Tenga en cuenta que, a diferencia de la restricción PRIMARY KEY, una restricción UNIQUE no implica NOT NULL para las columnas que participan en la restricción. Se debe especificar NOT NULL para que las columnas sean una clave. Es posible poner restricciones UNIQUE en columnas que aceptan valores nulos, pero el estándar SQL establece que la restricción no garantiza la unicidad de las columnas que aceptan valores nulos (la unicidad no se aplica a las filas en las que alguna de las columnas contiene un valor nulo).

Según el estándar SQL [2] , una restricción única no impone 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 RDBMS implementan esta característica de acuerdo con 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 .

Enlaces externos