Llave unica - Unique key

En el modelado e implementación relacional de bases de datos , una clave única (también conocida como clave candidata o simplemente clave ) es un conjunto de atributos (columnas) dentro de una tabla de base de datos relacional (también llamada relación ), de manera que:

  1. la tabla no tiene dos filas o registros distintos con los mismos valores para estas columnas
  2. este conjunto de columnas es mínimo; es decir, eliminar cualquier columna de la clave daría como resultado valores duplicados en el subconjunto resultante.

Cuando una columna o un conjunto de columnas se define como exclusivo del sistema de gestión de la base de datos , el sistema verifica que cada conjunto de valores sea único antes de asignar la restricción . Una vez que las columnas se definen como únicas, se producirá un error si se intenta una inserción con valores que ya existen. Algunos sistemas no permitirán que se actualicen los valores clave, todos los sistemas no permitirán duplicados. Esto asegura que se mantenga la unicidad tanto en la tabla principal como en cualquier relación que se vincule posteriormente a ella.

Resumen

Las claves proporcionan los medios para que los usuarios de la base de datos y el software de aplicación identifiquen, accedan y actualicen la información en una tabla de la base de datos. Puede haber varias claves en una tabla determinada. Por ejemplo, en una tabla de empleados, tanto el número de empleado como el nombre de inicio de sesión son únicos individualmente. 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 las actualizaciones que causarían valores de clave duplicados y, por lo tanto, asegura que las tablas siempre cumplan con las reglas deseadas para la 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 primaria ; otras claves se denominan claves alternativas .

Cualquier clave puede constar de uno o más atributos. Por ejemplo, un número de seguro 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 que consta de dos atributos para un vuelo programado.

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

Nombre clave Definición
Sencillo Una clave hecha de un solo atributo.
Concatenados Una clave hecha de más de un atributo unidos como una sola clave, como un nombre parcial o completo con un número generado por el sistema agregado como se usa a menudo para direcciones de correo electrónico.
Compuesto Una clave hecha de al menos dos atributos o claves simples, solo existen claves simples en una clave compuesta.
Compuesto Como una clave compuesta, pero los atributos individuales no necesitan ser claves simples.
Natural Una clave creada a partir de datos que existen fuera de la base de datos actual. En otras palabras, los datos no son generados por el sistema, como un número de seguro social importado de otro sistema.
Sustituto Una clave artificial hecha de datos que el sistema asigna o genera cuando existe otra clave candidata. Las claves sustitutas suelen ser valores de ID numéricos y, a menudo, se utilizan por motivos de rendimiento.
Candidato Una clave que puede convertirse en la clave principal.
Primario La clave que se selecciona como clave principal. Solo se selecciona una clave dentro de una entidad para que sea la clave principal. Esta es la clave que se le permite migrar a otras entidades para definir las relaciones que existen entre las entidades. Cuando se crea una instancia del modelo de datos en una base de datos física, es la clave que más utiliza el sistema al acceder a la tabla o al unir las tablas al seleccionar datos.
Alterno Una clave no principal que se puede usar para identificar solo una fila en una tabla. Las claves alternativas se pueden utilizar como clave principal en una selección de tabla única.
Extranjero Una clave que ha migrado a otra entidad.

En la definición más básica, "una clave es un identificador único", por lo que la 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, según el diseño y cómo se utilizan en la otra tabla. Las claves externas pueden ser la clave principal en otra tabla; por ejemplo, PersonID puede convertirse en EmployeeID en la tabla de empleados. En este caso, 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 de que la entidad persona contenga la identificación del padre biológico, no se esperaría que la identificación del padre sea única 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.

Author Table Schema:

Author(ID, Name, Address, Born)

Book Table Schema:

Book(ISBN, AuthorID, Title, Publisher, Price)

Aquí, ID sirve como clave principal en la tabla 'Autor', pero también como AuthorID sirve como clave externa en la tabla 'Libro'. La clave externa sirve como enlace y, por lo tanto, como conexión, entre las dos tablas relacionadas en esta base de datos de muestra.

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 hay dos filas o registros de datos distintos en una tabla de base de datos que puedan tener el mismo valor de datos (o combinación de valores de datos) en esas columnas de clave candidatas, ya que no se utilizan valores NULL. Dependiendo de 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 clave se aplica al conjunto de tuplas en una tabla en cualquier momento dado. Una clave no es necesariamente un identificador único en 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 no debe permitir duplicados en la tabla de la base de datos. Algunos posibles ejemplos de claves son los números de seguro 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 permitirán 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 <table identifier> 
      ADD [ CONSTRAINT <constraint identifier> ] 
      { PRIMARY KEY | UNIQUE } ( <column name> [ {, <column name>}... ] )

Asimismo, las claves se pueden definir como parte de la CREATE TABLEdeclaración 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 principal y la restricción única

Restricción de clave principal

  1. Una clave principal no puede permitir valores nulos (una clave principal no se puede definir en columnas que permiten 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 nulos, en cuyo caso las filas que incluyen 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 ÚNICA no implica NOT NULL para las columnas que participan en la restricción. Se debe especificar NOT NULL para que la (s) columna (s) sea una clave. Es posible poner restricciones ÚNICAS en columnas que aceptan valores NULL, pero el estándar SQL establece que la restricción no garantiza la unicidad de las columnas que aceptan valores NULL (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, una restricción única no impone la unicidad en presencia de 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.

Ver también

Referencias

enlaces externos