Index Unique ou clé unique?
Quelle est la différence entre un indice unique et une clé unique?
5 réponses
la pièce unique n'est pas là où la différence réside. L'indice et la clé ne sont pas la même chose et ne sont pas comparables.
une clé est une colonne de données, ou plusieurs colonnes, qui sont forcées d'être uniques avec une contrainte, que ce soit une clé primaire ou explicitement niée contrainte unique. Tandis qu'un index est une structure pour stocker l'emplacement des données pour une récupération plus rapide.
à Partir de la documentation:
crée un index unique sur une table ou vue. Un indice unique est un indice dans lequel il n'est pas permis d'avoir deux rangées même valeur de clé d'index. Un cluster index sur une vue doit être unique
vous pouvez utiliser des contraintes uniques pour faire assurez-vous qu'aucune des valeurs sont en double inscrits dans des colonnes spécifiques de ne pas participer dans une clé primaire. Bien qu'il s'agisse à la fois d'une contrainte UNIQUE et une contrainte de CLÉ PRIMAIRE appliquer unicité, utiliser une contrainte UNIQUE au lieu d'une contrainte principale lorsque vous souhaitez appliquer la l'unicité d'une colonne, ou une combinaison de colonnes, qui n'est pas le principal clé.
Ce article MSDN comparant les deux, est ce que vous êtes après . La terminologie est telle que" contrainte " est ANSI, mais dans SQL Server vous ne pouvez pas désactiver une contrainte Unique...
dans la plupart des cas, il n'y a pas de différence - la contrainte est implémentée comme un index sous les couvertures. L'article du MSDN corrobore cela--la différence est dans les méta-données, pour des choses comme:
- bidouiller un taux de remplissage
- INCLURE fournit plus efficace couvrant les index (composite contrainte)
- un index filtré est comme une contrainte sur un sous-ensemble de lignes / ignorer plusieurs null etc.
"clé Unique" est une tautologie. Une clé (alias "clé Candidate") est une caractéristique logique de la base de données - une contrainte qui renforce l'unicité d'un ensemble d'attributs dans une table.
Un indice est un niveau physique fonctionnalité destinée à optimiser les performances d'une certaine façon. Il existe de nombreux types d'index.
la clé (ou mot-clé) et l'index sont des identificateurs d'une rangée de tableaux.
Bien que l'index soit une structure d'identification parallèle, contenant un pointeur vers la ligne identifiée, tandis que les clés sont des membres de terrain in situ.
la clé, en tant qu'identificateur, implique l'unicité (contrainte) et non nul (contrainte).
Il n'y a aucun sens dans NULL comme identifiant (puisque null ne peut rien identifier) ainsi que la valeur d'identification non unique.
Index Non ordonné en clusters peuvent contenir des données réelles, ne pas servir comme identificateur de données réelles, et donc non-unique [1]
il est regrettable que la clé ou l'index (identificateur) soit appelé par contrainte (règle ou restriction) ce que la plupart des réponses précédentes ont suivi ici.
Les touchessont utilisées dans le contexte de:
- alternate ou secondaire aka candidat clés, peuvent être multiples
- clé composite (quelques champs combinés)
- clé primaire (superkey), clé naturelle ou de remplacement, une seule, réellement utilisée pour l'intégrité référentielle
- clé étrangère
clé étrangère est la clé dans une autre table (où elle est la clé primaire) et même pas une clé à laquelle ils se réfèrent fréquemment. Cette utilisation s'explique par le fait que l'expression "contrainte par clé étrangère" est confondue avec "clé étrangère".
contrainte principale implique vraiment des contraintes non nulles et uniques + que la colonne référencée (ou les colonnes combinées) est un identifiant et malheureusement aussi substitué par "clé primaire" ou "clé primaire contrainte" alors que ce sont les deux qui ne peuvent être appelées ni par la seule contrainte (clé primaire) ou par la seule clé (primaire).
mise à Jour:
Ma question complémentaire:
[1]
argument UNIQUE pour Création D'INDEX-à quoi ça sert?
clé Unique: il s'agit d'une contrainte qui impose des limites à la base de données. Cette limitation est qu'elle ne permettra pas les valeurs dupliquées . Par exemple, si vous voulez sélectionner une colonne comme clé primaire, elle ne doit pas être nulle et UNIQUE.
index Unique: c'est un index qui améliore les performances tout en exécutant des requêtes sur votre base de données. Dans l'index unique, il ne permet pas non plus les valeurs dupliquées dans l'index . c'est à dire.pas de deux lignes ont la même valeur de clé d'index.