sql server - studio - ¿Índice único o clave única?
restriccion unique sql server (5)
"Llave única" es una tautología. Una clave (también conocida como "Candidate Key") es una característica lógica de la base de datos, una restricción que impone la exclusividad de un conjunto de atributos en una tabla.
Un índice es una función de nivel físico destinada a optimizar el rendimiento de alguna manera. Hay muchos tipos de índice.
¿Cuál es la diferencia entre un índice único y una clave única?
Este artículo de MSDN que compara los dos es lo que buscas . La terminología es tal que "restricción" es ANSI, pero en SQL Server no se puede deshabilitar una restricción única ...
Para la mayoría de los propósitos, no hay diferencia: la restricción se implementa como un índice debajo de las coberturas. El artículo de MSDN respalda esto: la diferencia está en los metadatos, para cosas como:
- ajustando FILLFACTOR
- INCLUDE proporciona índices de cobertura más eficientes (restricción compuesta)
- Un índice filtrado es como una restricción sobre un subconjunto de filas / ignorar múltiples nulos, etc.
La pieza única no es donde radica la diferencia. El índice y la clave no son lo mismo, y no son comparables.
Una clave es una columna de datos, o varias columnas, que están forzadas a ser únicas con una restricción, ya sea clave principal o restricción exclusiva denegada explícitamente. Mientras que un índice son estructuras para almacenar la ubicación de datos para una recuperación más rápida.
De los documentos:
Crea un índice único en una tabla o vista. Un índice único es aquel en el que no se permite que dos filas tengan el mismo valor de clave de índice. Un índice agrupado en una vista debe ser único
Puede usar restricciones ÚNICAS para asegurarse de que no se ingresen valores duplicados en columnas específicas que no participan en una clave principal. Aunque tanto una restricción ÚNICA como una restricción PRIMARY KEY refuerzan la unicidad, use una restricción ÚNICA en lugar de una restricción PRIMARY KEY cuando desee imponer la exclusividad de una columna, o combinación de columnas, que no sea la clave principal.
Tanto la clave (también conocida como keyword) como el índice son identificadores de una fila de la tabla.
Aunque el índice es una estructura de identificación paralela, que contiene un puntero a la fila identificada, mientras que las claves son miembros de campo in situ.
La clave, como identificador, implica unicidad (restricción) y NO NULO (restricción). No tiene sentido en NULL como identificador (ya que null no puede identificar nada) así como un valor de identificación no único.
El índice no agrupado puede contener datos reales, no sirve como identificador de datos reales, y por lo tanto no es exclusivo [1]
Es una práctica desafortunada que la clave o índice (identificador) se llame por restricción (regla o restricción) a lo que siguieron la mayoría de las respuestas anteriores.
Las claves se usan en contexto de:
- las claves candidatas alternativas aka aka, pueden ser múltiples
- clave compuesta (algunos campos combinados)
- clave principal (superclave), clave natural o sustituta, solo una, realmente utilizada para la integridad referencial
- clave externa
La clave externa es la clave en otra tabla (donde es clave principal) e incluso no es una clave a la que se refieren con frecuencia. Tal uso se explica por el acceso directo confuso del término "restricción de clave externa" a solo "clave externa".
La restricción de clave primaria implica realmente NOT NULL y restricciones ÚNICAS + que la columna referenciada (o columnas combinadas) es identificador y desafortunadamente sustituida por "clave principal" o "restricción de clave primaria" mientras que ambas no pueden invocarse solo (clave primaria ) restricción o por única clave (primaria).
Actualizar:
Mi pregunta relacionada:
[1]
Argumento ÚNICO para la creación de ÍNDICES: ¿para qué sirve?
Clave única: es una restricción que impone limitaciones en la base de datos. Esa limitación es que no permitirá valores duplicados. Por ejemplo, si desea seleccionar una columna como clave principal, NO debería ser NULA Y ÚNICA.
Índice único: es un índice que mejora el rendimiento al ejecutar consultas en su base de datos. En el índice único, tampoco permite valores duplicados en el índice. es decir, no dos filas tendrán el mismo valor de clave de índice.