Je suis nouveau sur MySQL et je suis vraiment dérouté par les différents termes que j'ai rencontrés. J'ai essayé de chercher la réponse sur Google, mais les résultats sont vraiment déroutants et lorsque j'essaie de comprendre, il me semble que c'est la même chose.
Quelles sont exactement les différences entre clé, super-clé, super-clé minimale, clé candidate et clé primaire?
Je copie ici certaines des informations que j'ai collectées
Clé Une clé est un simple ou une combinaison de plusieurs champs. Son but est d'accéder aux lignes de données de la table ou de les récupérer en fonction des besoins. Les clés sont définies dans des tables pour accéder aux données stockées ou les séquencer rapidement et en douceur. Ils sont également utilisés pour créer des liens entre différentes tables.
Types de clés
Clé primaire L'attribut ou la combinaison d'attributs identifiant de manière unique une ligne ou un enregistrement dans une relation est appelée clé primaire.
Clé secondaire Un champ ou une combinaison de champs servant 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 à plusieurs enregistrements.
Clé candidate ou clé alternative Une relation ne peut avoir qu'une seule clé primaire. Il peut contenir plusieurs champs ou combinaisons de champs pouvant être utilisés comme clé primaire. Un champ ou une combinaison de champs est utilisé comme clé primaire. Les champs ou les combinaisons de champs qui ne sont pas utilisés comme clé primaire sont appelés clés candidates ou clés alternatives.
Clé composite ou clé de concaténation Une clé primaire composée d'au moins deux attributs est appelée clé composite.
Tri ou touche de contrôle Champ ou combinaison de champs utilisé pour séquencer physiquement les données stockées, appelé clé de tri. Il est également connu que la clé de contrôle.
Une super-clé est une combinaison d'attributs pouvant être utilisés de manière unique pour identifier un enregistrement de base de données. Une table peut avoir plusieurs superkeys. Les clés candidates sont un sous-ensemble spécial de superkeys qui ne contiennent aucune information superflue.
Exemple pour la super clé : Imaginez une table avec les champs <Name>
, <Age>
, <SSN>
et <Phone Extension>
. Cette table a beaucoup de super clés possibles. Trois d'entre eux sont <SSN>
, <Phone Extension, Name>
et <SSN, Name>
. 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 les enregistrements de manière unique.
Clé étrangère Une clé étrangère est un attribut ou une combinaison d'attribut 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 est référée est appelée table parent.
J'ai toujours eu du mal à me souvenir de toutes les clés; je garde donc les notes ci-dessous à portée de main, j'espère qu'ils aideront quelqu'un! Faites-moi savoir si cela peut être amélioré.
Key: attribut ou combinaison d'attributs identifiant de manière unique une entité/un enregistrement dans une table relationnelle.
PK: une clé unique, unique et non nulle. C'est l'une des clés candidates
Clé étrangère: FK est une clé d'une table (enfant) qui identifie de manière unique une ligne d'une autre table (parent). Un FK n'est pas unique dans la table enfant. C'est une clé candidate dans la table parente. L'intégrité référentielle est maintenue car la valeur dans FK est présente en tant que valeur dans PK dans la table parente, sinon elle est NULL.
Unique Key: une clé unique pouvant être NULL ou non.
Clé naturelle: PK dans OLTP. Ce peut être un PK dans OLAP.
Clé de substitution: il s'agit de la PK de substitution dans OLAP qui joue le rôle de substitut De la PK dans OLTP. Clé artificielle générée en interne dans OLAP.
Composite Key: PK composée de plusieurs attributs
SuperKey: clé pouvant être utilisée de manière unique pour identifier un enregistrement de base de données, pouvant contenir des attributs supplémentaires qui ne sont pas nécessaires pour identifier de manière unique les enregistrements
Candidate Key: une clé candidate peut être utilisée de manière unique pour identifier un enregistrement de base de données sans aucune donnée superflue. Ils ne sont pas Null et uniques. C'est une super clé minimale.
Autre clé: une clé candidate qui n'est pas la clé primaire est appelée clé alternative.
Candidate Key/s with Extraneous data: considérez que Peut être utilisé pour identifier un enregistrement dans la table des employés, mais qu'une seule clé candidate Est suffisante pour cette tâche. Alors .__ devient les données superflues.
Notez que la clé électronique, la clé étrangère, la clé unique, la clé naturelle, la clé de substitution, Les clés composites sont définies comme des objets de base de données; où la clé naturelle est une PK dans OLTP et pourrait être une PK dans l'OLAP cible. Pour le reste des clés, il appartient au concepteur/architecte de la base de données de décider si Les contraintes d'intégrité uniques/non nulles/référentielles doivent être appliquées ou ne pas.
Ci-dessous, j'ai essayé d'utiliser la théorie des ensembles pour simplifier la représentation de l'appartenance aux clés w.r.t. L'un et l'autre.
key = { All of the below keys }
PK = { PK }
Foreign Key = { Key with Not Null constraint }
Unique Key = { {Candidate Key/s}, {attributes containing NULL} }
Natural key = { PK }
Surrogate Key = { PK }
Composite Key = { PK }
Super Key = { {Candidate Key/s}, {Candidate Key/s with Extraneous data} }
Candidate Key = { PK, {Alternate Key/s} }
Alternate Key = { {Candidate Keys} - PK }
Candidate Key/s with Extraneous data = { }
Je l'ai résumé ci-dessous:
Remarques: un-aperçu-de-la-base-de-bases-de-clés-primaire-clé-composite-clé-substitut-clé-et-al
La clé primaire est un sous-ensemble de la super clé. Ce qui est uniquement défini et les autres champs en dépendent. Dans une table, il ne peut s'agir que d'une clé primaire et d'un sous-ensemble reste de clé candidate ou de clé alternative.
Superkey - Un attribut ou un ensemble d'attributs qui définit de manière unique un tuple dans une relation. Cependant, une super-clé peut contenir des attributs supplémentaires qui ne sont pas nécessaires pour une identification unique.
Clé candidate - Une super-clé telle qu'aucun sous-ensemble approprié n'est une super-clé dans la relation. Donc, fondamentalement, a deux propriétés: chaque clé candidate identifie de manière unique Tuple dans la relation; & aucun sous-ensemble approprié de la clé composite n'a la propriété d'unicité.
Clé composite - Lorsqu'une clé candidate est composée de plusieurs attributs.
Clé primaire - La clé candidate choisie pour identifier les nuplets uniquement dans la relation.
Clé alternative - Clé candidate qui n'est pas une clé primaire.
Clé étrangère - Un attribut ou un ensemble d'attributs dans une relation qui correspond à la clé candidate d'une relation.
Largement fondé sur la réponse acceptée, mais avec quelques ajustements afin de mieux correspondre aux définitions données dans certains cours:
SUPER KEY:
Attribut ou ensemble d'attributs utilisés pour identifier de manière unique des nuplets dans la base de données.
CLÉ DU CANDIDAT:
CLÉ PRIMAIRE:
une des clés candidates utilisée pour identifier les enregistrements dans la base de données uniquement
pas nul
Candidate Key: la clé candidate peut être définie comme un ensemble minimal d'attributs pouvant être unique identifier un tuple est appelé clé candidate. Par exemple, STUD_NO dans ci-dessous Relation étudiante.
- La valeur de la clé candidate est unique et non nulle pour chaque tuple.
- Il peut y avoir plus d'une clé candidate dans une relation. Par exemple, STUD_NO et STUD_PHONE sont des clés candidates pour relation ÉTUDIANT.
- La clé candidate peut être simple (avoir un seul attribut) ou composite. Par exemple, {STUD_NO, COURSE_NO} est un composite
clé candidate pour la relation STUDENT_COURSE.
Super Key: l'ensemble d'attributs pouvant identifier un tuple de manière unique est appelé Super Key. Par exemple, STUD_NO, (STUD_NO, STUD_NAME), etc. Ajout de zéro ou plusieurs attributs à la clé candidate génère une super clé. Une clé candidate est une super clé, mais le contraire est pas vrai. Clé primaire: Il peut y avoir plus d'une clé candidate dans un relation à partir de laquelle on peut être choisi comme clé primaire. Par exemple, STUD_NO ainsi que STUD_PHONE sont des clés candidates pour la relation STUDENT mais STUD_NO peuvent être choisis comme clé primaire (une seule clé sur Plusieurs clés candidates).
Autre clé: la clé candidate autre que la clé primaire est appelée clé alternative. Par exemple, STUD_NO et STUD_PHONE sont tous deux.. Les clés candidates pour la relation STUDENT mais STUD_PHONE seront alternées clé (une seule parmi plusieurs clés candidates).
Clé étrangère: si un attribut ne peut prendre que les valeurs qui sont Présent comme valeurs d'un autre attribut, ce sera la clé étrangère de l'attribut auquel il fait référence. La relation qui est en cours référencé est appelé relation référencée et attribut correspondant est appelé attribut référencé et la relation qui fait référence à relation référencée est appelée relation de référence et correspondante attribut est appelé attribut de référencement. Attribut référencé de L'attribut de référencement doit être la clé primaire. Par exemple, STUD_NO dans STUDENT_COURSE est une clé étrangère de STUD_NO dans la relation STUDENT.
Super clé: Super clé est un ensemble d'un ou plusieurs attributs dont les valeurs identifient Tuple dans la relation de manière unique.
Clé candidate: La clé candidate peut être définie comme un sous-ensemble minimal de super clé. Dans certains cas, la clé candidate ne peut pas être utilisée seule car il existe un seul attribut qui est le sous-ensemble minimal. Exemple,
Employé (id, ssn, nom, adresse)
Ici, la clé candidate est (id, ssn) car nous pouvons facilement identifier le tuple à l’aide de id ou de ssn. Bien que le sous-ensemble minimal de super clé soit id ou ssn. mais les deux peuvent être considérés comme des clés candidates.
Clé primaire: La clé primaire est l'une des clés candidates.
Exemple : Etudiant (Identifiant, Nom, Service, Résultat)
Ici
Super clé: {Id, Id + Nom, Id + Nom + Département} car la super clé est un ensemble d'attributs.
Candidate Key: Id car Id seul est le sous-ensemble minimal de super clé.
Clé primaire: Id car Id est l'une des clés candidates.