Quelle est la différence entre primary
, unique
et foreign key constraints
et indexes
?
Je travaille sur Oracle 10g
et SQL Server 2008
La clé primaire et la clé unique sont des contraintes d'intégrité d'entité
La clé primaire permet à chaque ligne d'une table d'être identifiée de manière unique et garantit qu'aucune ligne en double n'existe et qu'aucune valeur nulle n'est entrée.
Une contrainte de clé unique est utilisée pour empêcher la duplication des valeurs de clé dans les lignes d'une table et autoriser les valeurs nulles. (Dans Oracle, un null n'est pas égal à un autre null).
voir Différences entre INDEX, PRIMARY, UNIQUE, FULLTEXT dans MySQL?
Clé primaire: identifier de manière unique chaque ligne, elle ne peut pas être nulle. il ne peut pas s'agir d'un doublon.
Clé étrangère: créer une relation entre deux tables. peut être nul. peut être un doublon
Voici quelques références pour vous:
Contrainte de clé primaire et étrangère.
Clé primaire: une clé primaire est un champ ou une combinaison de champs qui identifient de manière unique un enregistrement dans une table, de sorte qu'un enregistrement individuel puisse être localisé sans confusion.
Clé étrangère: une clé étrangère (parfois appelée clé de référence) est une clé utilisée pour lier deux tables ensemble. En règle générale, vous prenez le champ de clé primaire d'une table et l'insérez dans l'autre table où il devient une clé étrangère (il reste une clé primaire dans la table d'origine).
Index , d'autre part, est un attribut que vous pouvez appliquer sur certaines colonnes afin d'accélérer la récupération des données sur ces colonnes.
Clé/index: Une clé est un aspect d'une conception de base de données LOGIQUE, un index est un aspect d'une conception de base de données PHYSIQUE. Une clé correspond à une contrainte d'intégrité, un index est une technique d'enregistrement physique de valeurs qui peut être utilement appliquée lors de l'application de ces contraintes.
Primaire/étranger: une clé "primaire" est un ensemble d'attributs dont les valeurs doivent former une combinaison unique dans l'ensemble du tableau. Il peut y avoir plus d'un ensemble (> 1 clé), et le mot "principal" est un vestige des premiers jours où le concepteur a ensuite été contraint de choisir l'une de ces multiples clés comme étant "la plus importante/pertinente" . La raison en était principalement en combinaison avec des clés étrangères:
Comme une clé "primaire", une clé "étrangère" est également un ensemble d'attributs. Les valeurs de ces attributs doivent former une combinaison qui est une valeur de clé primaire existante dans la table référencée. Je ne sais pas exactement à quel point cette règle s'applique toujours dans SQL aujourd'hui. La terminologie est restée de toute façon.
Unique: mot-clé utilisé pour indiquer qu'un index ne peut pas accepter les entrées en double. Les index uniques sont évidemment un excellent moyen d'appliquer les clés primaires. Dans la mesure où le mot "unique" est utilisé dans des contextes de conception LOGIQUE, il est superflu, bâclé, inutile et déroutant. Les clés (c'est-à-dire les clés primaires) sont uniques par définition.
1) A primary key
est un ensemble d'un ou plusieurs attributs qui identifie de manière unique Tuple dans la relation.
2) A foreign key
est un ensemble d'attributs d'un schéma de relation qui peut identifier de manière unique des tuples sur un autre schéma de relation.
La clé primaire empêche principalement la duplication et montre l'unicité des colonnes La clé étrangère montre principalement la relation sur deux tables