web-dev-qa-db-fra.com

Quelle est la différence entre la clé primaire et la super clé dans le SGBD

Je suis nouveau dans les SGBD et j'apprends toujours la théorie.

Je suis vraiment confus avec cette activité clé et après avoir googlé, je l'ai réduit à seulement 2 clés que je n'obtiens pas (clé principale et super clé).

J'ai quelques questions sur le SGBD. Je vous serais reconnaissant de bien vouloir me répondre.

1) Quelle est la différence entre la clé primaire et la super clé dans le SGBD? Je l'apprécie beaucoup si vous pouvez utiliser un exemple complet pour expliquer correctement

2) La clé primaire et la clé super les deux peuvent-elles avoir plusieurs colonnes combinées pour former la clé primaire et la clé super?

3) La clé primaire est-elle un sous-ensemble de la clé Super ou vice versa?

22
MikeHil

Un Super Key est simplement un non-minimal Candidate Key, c'est-à-dire avec des colonnes supplémentaires non strictement nécessaires pour assurer l'unicité de la ligne.

Un Clé primaire est un minimum Clé candidate, c'est-à-dire que toutes les colonnes constitutives sont strictement requises afin d'assurer l'unicité.

En tant que développeur/concepteur de base de données de 30 ans d'expérience, je n'avais jamais entendu le terme Super Key jusqu'à ce que je vois cette question et que je la recherche. Le concept de Super Key semble plus pertinent pour le sujet de la conception des performances et du schéma physique car il correspond directement au concept d'un index non cluster unique avec des colonnes supplémentaires pour une meilleure couverture des requêtes.

24
Pieter Geerkens

Super Keys: Super key représente le sur-ensemble d'une clé. Une super clé est un ensemble d'un ou plusieurs attributs qui sont pris collectivement et peuvent identifier tous les autres attributs de manière unique.

Par exemple, nous avons une table

Book (BookId, BookName, Author)

Donc, dans ce tableau, nous pouvons avoir

   (BookId)
   (BookId,BookName)
   (BookId, BookName, Author)
   (BookId, Author)
   (BookName, Author)

Comme notre super clé. Chaque super clé est capable d'identifier de façon unique chaque tuple (enregistrement).

Clés candidates Les clés candidates sont une super clé qui n'a pas d'attributs redondants. En d'autres termes, les clés candidates sont des super clés minimales. Par exemple, dans l'illustration ci-dessus

   (BookId)
   (BookName,Author)

Ces deux clés peuvent être des clés candidates, car les clés restantes ont des attributs redondants. Les moyens dans l'enregistrement de super clé (BookId, BookName) peuvent être identifiés de manière unique par juste bookid et donc Bookname est un attribut redondant

Clé primaire: il s'agit d'une clé candidate choisie par le concepteur de base de données pour identifier les entités dans un ensemble d'entités. OR Une clé utilisée pour identifier de façon unique chaque enregistrement est appelée clé primaire.

À partir des clés candidates ci-dessus, n'importe laquelle peut être la clé primaire. Et l'autre qui n'est pas choisi comme clé primaire sera connu comme clé alternative

17
Payal Trivedi

De ma réponse stackoverflow.com :

Une clé candidate est un ensemble de colonnes qui identifie de manière unique les lignes et qui ne contient aucun sous-ensemble plus petit ("approprié") de colonnes qui identifie de manière unique les lignes.

Une super-clé est un ensemble de colonnes qui identifie de manière unique les lignes. Une clé candidate est donc une super-clé qui ne contient pas de super-clé plus petite.

En SQL, vous ne pouvez pas déclarer une clé candidate vide. De plus, UNIQUE NOT NULL et PRIMARY KEY (qui en termes de contraintes signifie simplement UNIQUE NOT NULL) déclarent des super-clés, pas des clés en soi. Si l'ensemble de colonnes d'une telle déclaration ne contient pas un ensemble de colonnes plus petit déclaré en tant que super-clé, la super-clé qu'il déclare est une clé candidate.

De ma réponse stackoverflow.com re une table donnée:

Pour les ensembles de colonnes X et Y, nous pouvons écrire X -> Y. Nous disons que X est le ensemble déterminant et Y est le ensemble déterminé of/in dépendance fonctionnelle ( [~ # ~] fd [~ # ~]) X -> Y.

Nous disons que X détermine fonctionnellement Y et Y est déterminé fonctionnellement par X. Nous disons que X est le déterminant de X - > Y. Dans {C} -> Y, nous disons C détermine fonctionnellement Y. Dans X -> {C}, nous disons X détermine fonctionnellement C. Lorsque X est un surensemble de Y, nous disons que X -> Y est trivial.

Nous disons X -> Y tient table T lorsque chaque sous-rangée de valeurs pour X apparaît toujours/seulement avec la même sous-rangée de valeurs pour Y. Ou nous disons X -> Y est un FD of/in T. Lorsque X est un déterminant de certains FD dans le tableau T on dit que X est un déterminant de/in T.

A superkey d'une table T est un ensemble de colonnes qui détermine fonctionnellement chaque attribut. A clé candidate ( [~ # ~] ck [~ # ~]) est une super-clé qui ne contient aucune plus petite super-clé. Nous pouvons choisir un CK comme clé primaire ( [~ # ~] pk [~ # ~]) puis appeler les autres CKs touches alternatives. Une colonne est prime lorsqu'elle se trouve dans un CK.

(Comme je l'ai commenté là-bas, "Les quatre phrases en gras pour FD, cales, super-clés et CK auraient suffi.")

(Une table avec un CK vide est contrainte de contenir au plus une ligne. Un ensemble de colonnes déterminé par l'ensemble vide est contraint d'avoir la même valeur de sous-ligne dans chaque ligne.)

2
philipxy

Clé Une clé est un champ unique ou une combinaison de plusieurs champs. Son objectif est d'accéder ou de récupérer des lignes de données de la table en fonction des besoins. Les clés sont définies dans des tableaux pour accéder ou séquencer les données stockées rapidement et en douceur. Ils sont également utilisés pour créer des liens entre différentes tables.

Types de clés Les tableaux ou relations suivants seront utilisés pour définir différents types de clés.

Clé primaire L'attribut ou la combinaison d'attributs qui identifie de façon unique une ligne ou un enregistrement dans une relation est appelé clé primaire.

Clé secondaire Un champ ou une combinaison de champs qui sert de base à la récupération est appelé clé secondaire. La clé secondaire est un champ non unique. Une valeur de clé secondaire peut faire référence à de nombreux enregistrements.

Clé candidate ou clé alternative Une relation ne peut avoir qu'une seule clé primaire. Il peut contenir de nombreux champs ou une combinaison de champs pouvant être utilisés comme clé primaire. Un champ ou une combinaison de champs est utilisé comme clé primaire. Les champs ou la combinaison de champs qui ne sont pas utilisés comme clé primaire sont appelés clé candidate ou clé alternative.

Clé composite ou clé concaténée Une clé primaire composée de deux ou plusieurs attributs est appelée clé composite.

Clé de tri ou de contrôle Champ ou combinaison de champs utilisé pour séquencer physiquement les données stockées appelées clé de tri. Il est également connu sous le nom de clé de contrôle.

Une super-clé est une combinaison d'attributs qui peuvent être utilisés uniquement pour identifier un enregistrement de base de données. Une table peut avoir plusieurs super-clés. Les clés candidates sont un sous-ensemble spécial de super-clés qui ne contiennent aucune information étrangère.

Exemple de super clé: Imaginez une table avec les champs Name, Age, SSN et <Phone Extension>. Ce tableau contient de nombreuses super-clés possibles. Trois d'entre eux sont SSN, poste téléphonique et nom. Parmi ceux répertoriés, seul SSN est une clé candidate, car les autres contiennent des informations qui ne sont pas nécessaires pour identifier de manière unique les enregistrements.

Clé étrangère Une clé étrangère est un attribut ou une combinaison d'attributs dans une relation dont la valeur correspond à une clé primaire dans une autre relation. La table dans laquelle la clé étrangère est créée est appelée table dépendante. La table à laquelle la clé étrangère fait référence est appelée table parent.

pour Touche Super minimale référez-vous à ce lien, il est plus clair là-bas http://www.answers.com/topic/superkey-1

1
Ved Prakash