Requisito previo: claves en el modelo relacional
Una clave principal es una columna de la tabla que identifica de manera única cada tupla (fila) en esa tabla. La clave principal impone restricciones de integridad a la tabla. Solo se permite usar una clave principal en una tabla. La clave principal no acepta ningún valor duplicado ni NULL. El valor de la clave principal en una tabla cambia muy rara vez, por lo que se elige con cuidado donde los cambios pueden ocurrir de manera rara. Una clave principal de una tabla puede ser referenciada por una clave externa de otra tabla.
Para una mejor comprensión de la clave principal, tomamos la tabla denominada tabla Student, que tiene atributos como Roll_number, Name, Batch, Phone_number, Citizen_ID.
El atributo de número de lista nunca puede tener un valor idéntico y NULL, porque cada estudiante inscrito en una universidad puede tener un número de lista único, por lo tanto, dos estudiantes no pueden tener el mismo número de lista y cada fila en una tabla se identifica de manera única con el número de lista del estudiante. Entonces, podemos hacer que el atributo Roll_number sea una clave principal en este caso.
Las restricciones de clave única también identifican una tupla individual de forma única en una relación o tabla. Una tabla puede tener más de una clave única a diferencia de la clave principal. Las restricciones de clave única pueden aceptar solo un valor NULL para la columna. Las restricciones únicas también son referenciadas por la clave externa de otra tabla. Se puede usar cuando alguien quiere imponer restricciones únicas en una columna y un grupo de columnas que no es una clave principal.
Para una mejor comprensión de la clave única, tomamos la tabla Student con los atributos Roll_number, Name, Batch, Phone_number y Citizen_ID.
El atributo de número de registro ya está asignado con la clave principal y Citizen_ID puede tener restricciones únicas donde cada entrada en una columna de Citizen_ID debe ser única porque cada ciudadano de un país debe tener su número de identificación único como el número Aadhaar. Pero si el estudiante migra a otro país en ese caso, él o ella no tendría ningún Citizen_ID y la entrada podría tener un valor NULL ya que solo se permite un NULL en la restricción única.
Diferencias clave entre la clave principal y la clave única:
La clave principal no aceptará valores NULL, mientras que la clave única puede aceptar valores NULL.
- Una tabla puede tener solo una clave principal, mientras que puede haber varias claves únicas en una tabla.
- Un índice agrupado se crea automáticamente cuando se define una clave principal, mientras que la clave única genera el índice no agrupado.
Cuadro comparativo:
Parámetro | CLAVE PRIMARIA | LLAVE UNICA |
---|---|---|
Básico | Se utiliza para servir como un identificador único para cada fila de una tabla. | Determina de forma única una fila que no es clave principal. |
Aceptación de valor NULL | No se pueden aceptar valores NULL. | Can acepta valores NULL. |
Número de claves que se pueden definir en la tabla | Solo una clave principal | Más de una clave única |
Índice | Crea un índice agrupado | Crea un índice no agrupado |
Autoincremento | Una clave principal admite el valor de incremento automático. | Una clave única no admite el valor de incremento automático. |
Modificación | No podemos cambiar o eliminar valores almacenados en claves primarias. | Podemos cambiar valores clave únicos. |
Publicación traducida automáticamente
Artículo escrito por Ankit_Bisht y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA