La diferencia esencial entre la clave principal y la clave única es que la clave principal no acepta valores NULL, mientras que los valores NULL están permitidos dentro de las restricciones de clave única.
Gráfica comparativa
Bases para la comparación | Clave primaria | Llave unica |
---|---|---|
BASIC | Se utiliza para servir como un identificador único para cada fila en una tabla. | También determina de forma única una fila, que no se define como una clave principal. |
Aceptación de valor nulo | La clave principal no aceptará valores NULL. | Único aceptará un valor NULO. |
Número de claves que se pueden definir en la tabla. | Sólo una clave primaria | Más de uno |
Índice | Crea índice agrupado | Crea un índice no agrupado |
Definición de clave primaria
Se puede llamar a una columna como clave principal de su tabla si identifica de forma única cada tupla (fila) en esa tabla. Aplica restricciones de integridad a la tabla. Sólo se permite una clave principal en una tabla. La clave principal no acepta los valores duplicados y NULL. La clave principal se elige con cuidado, ya que los cambios pueden ocurrir de manera poco frecuente, lo que significa que una clave principal en una tabla cambia muy raramente.
Entendamos la noción de clave primaria con la ayuda de una tabla. Aquí estamos creando una tabla llamada Tabla de alumnos, que tiene atributos como Roll_number, Name, Batch, Phone_number, Citizen_ID.
Una clave principal puede ser referenciada por una clave externa. Crea un índice agrupado único en la tabla. En un índice agrupado, las filas de datos se ordenan y almacenan en una tabla o vistas sobre la base de sus valores clave. Solo puede haber un índice agrupado en una tabla, la razón detrás de esto es que las filas de datos en una tabla se pueden ordenar en un solo orden.
Definición de clave única
Similar a una clave primaria, las restricciones de clave única también identifican una tupla individual de forma única en una relación. Pero, hay ciertas diferencias entre ellos. Una tabla puede tener más de una clave única. Las restricciones de clave únicas solo pueden aceptar un valor NULL para una columna.
Entendamos esto con el ejemplo similar, donde tuvimos una tabla de Estudiante con los atributos Número de rollo, Nombre, Lote, Número de teléfono y Ciudadano_ID. El atributo de número de rollo se asigna con la clave principal.
Las restricciones únicas también son referenciadas por la clave externa. Se puede usar cuando alguien quiere imponer restricciones en una columna y en un grupo de columnas que no es una clave principal. A diferencia de la clave principal, genera el índice no agrupado . Los índices no agrupados tienen una estructura distinta de las filas de datos. Cada entrada clave-valor en ella apunta a la fila de datos que contiene el valor clave, por lo tanto, utiliza punteros.
Diferencias clave entre clave principal y clave única
- Cuando un atributo se declara como clave principal, no aceptará valores NULL. Por otro lado, cuando un atributo declarado como Único puede aceptar un valor NULO.
- Una tabla solo puede tener una clave principal, mientras que puede haber varias restricciones únicas en una tabla.
- Un índice agrupado se crea automáticamente cuando se define una clave primaria. En contraste, la clave Única genera el índice no agrupado.
Conclusión
La clave principal y la clave única sirven para el propósito de un identificador único para las filas de una tabla con los valores únicos en una columna o grupo de columnas. Estas restricciones de clave se diferencian significativamente cuando cada tabla puede tener como máximo una clave principal, mientras que una tabla puede tener varias claves únicas que no son primarias.