web-dev-qa-db-fra.com

Quelles sont les différences entre une super clé et une clé candidate?

Quelles sont les différences entre une super clé et une clé candidate? J'ai déjà parlé de wiki, de dotnet spider et du livre 4e édition de Database Concepts. Mais je suis incapable de comprendre le concept. Quelqu'un peut-il s'il vous plaît expliquer avec un bon exemple?

40
Dinesh Kumar

Candidate key est un super key à partir duquel vous ne pouvez supprimer aucun champ.

Par exemple, une version du logiciel peut être identifiée par une version majeure/mineure ou par la date de construction (nous supposons des versions nocturnes).

Stocker la date dans trois champs n'est pas une bonne idée bien sûr, mais supposons que ce soit à des fins de démonstration:

year  month date  major  minor
2008  01    13     0      1
2008  04    23     0      2
2009  11    05     1      0
2010  04    05     1      1

Donc (year, major, minor) ou (year, month, date, major) sont des super clés (car elles sont uniques) mais pas des clés candidates, car vous pouvez supprimer year ou major et le jeu de colonnes restant sera toujours une super clé.

(year, month, date) et (major, minor) sont des clés candidates, car vous ne pouvez en supprimer aucun champ sans rompre l'unicité.

70
Quassnoi

Une super clé est une combinaison de colonnes qui identifie de manière unique une ligne dans une table. Une clé candidate est une super clé dans laquelle aucune colonne ne peut être supprimée sans perdre la propriété d'identification unique. Cette propriété est parfois appelée minimalité ou (meilleure) irréductibilité.

Une super clé ≠ une clé primaire en général. La clé primaire est simplement une clé candidate choisie comme clé principale. Cependant, dans la théorie de la dépendance, les clés candidates sont importantes et la clé primaire n’est pas plus importante que les autres clés candidates. Les clés candidates non principales sont également appelées clés alternatives. 

Considérez ce tableau d'éléments:

CREATE TABLE elements
(
    atomic_number   INTEGER NOT NULL PRIMARY KEY
                    CHECK (atomic_number > 0 AND atomic_number < 120),
    symbol          CHAR(3) NOT NULL UNIQUE,
    name            CHAR(20) NOT NULL UNIQUE,
    atomic_weight   DECIMAL(8,4) NOT NULL,
    period          SMALLINT NOT NULL
                    CHECK (period BETWEEN 1 AND 7),
    group           CHAR(2) NOT NULL
                    -- 'L' for Lanthanoids, 'A' for Actinoids
                    CHECK (group IN ('1', '2', 'L', 'A', '3', '4', '5', '6',
                                     '7', '8', '9', '10', '11', '12', '13',
                                     '14', '15', '16', '17', '18')),
    stable          CHAR(1) DEFAULT 'Y' NOT NULL
                    CHECK (stable IN ('Y', 'N'))
);

Il possède trois identifiants uniques: numéro atomique, nom d'élément et symbole. Chacun de ceux-ci est donc une clé candidate. De plus, à moins que vous n'utilisiez une table ne pouvant contenir qu'une seule ligne de données (auquel cas l'ensemble vide (de colonnes) est une clé candidate), vous ne pouvez pas avoir une clé candidate inférieure à une colonne. les clés candidates sont irréductibles.

Considérons une clé composée de {numéro atomique, nom d'élément, symbole}. Si vous fournissez un ensemble cohérent de valeurs pour ces trois champs (par exemple, {6, Carbon, C}), vous identifiez de manière unique l'entrée d'un élément - Carbon. Cependant, il s'agit en réalité d'une super clé qui n'est pas une clé candidate car elle n'est pas irréductible. vous pouvez éliminer deux des trois champs sans perdre la propriété d'identification unique.

Comme autre exemple, considérons une clé composée de {numéro atomique, période, groupe}. Là encore, il s'agit d'un identifiant unique pour une ligne. {6, 2, 14} identifie Carbon (à nouveau). Sans les lanthanoïdes et les actinoïdes, la combinaison de {période, groupe} serait unique, mais à cause d'eux, elle ne le serait pas. Cependant, comme précédemment, le numéro atomique est suffisant en soi pour identifier un élément de manière unique. Il s'agit donc d'une super clé et non d'une clé candidate.

22
Jonathan Leffler

super clé est la combinaison de champs par laquelle la ligne est identifiée de manière unique et la clé candidate est la super clé minimale.

15
Shakti Singh

A Super key est un ensemble ou une ou plusieurs colonnes permettant d'identifier de manière unique les lignes d'une table. 

Les clés candidates sont sélectionnées dans le jeu de super touches, la seule chose à laquelle nous tenons compte lors de la sélection de la clé candidate est la suivante: elle ne doit pas avoir d'attribut redondant. C’est la raison pour laquelle ils sont également qualifiés de super clé minimale.

Dans la table Employee, il y a trois colonnes: Emp_Code,Emp_Number,Emp_Name

Super touches:  

Tous les ensembles suivants sont capables d'identifier de manière unique les lignes de la table employee.

{Emp_Code}
{Emp_Number}
{Emp_Code, Emp_Number}
{Emp_Code, Emp_Name}
{Emp_Code, Emp_Number, Emp_Name}
{Emp_Number, Emp_Name}

Clés du candidat:

Comme je l'ai indiqué ci-dessus, ce sont les super clés minimales sans attributs redondants.

{Emp_Code}
{Emp_Number}

Clé primaire:

La clé primaire est sélectionnée parmi les ensembles de clés candidates par le concepteur de base de données. Donc, soit {Emp_Code} ou {Emp_Number} peut être la clé primaire.

4
K.Suthagar

Fondamentalement, une clé candidate est une clé générique à partir de laquelle aucun attribut ne peut être élagué.

Une Super Key identifie de manière unique les lignes/les nuplets dans une table/relation d'une base de données. Il est composé d'un ensemble d'attributs qui, combinés, peuvent prendre des valeurs uniques sur les lignes/les nuplets d'une table/relation. Une clé candidate est construite par une clé super, supprimant/élaguant de manière itérative les attributs non-clés, tout en conservant un invariant: le clé nouvellement créé doit encore identifier de manière unique les lignes/lignes.

Une clé candidate peut être considérée comme une super clé minimale, en termes d'attributs.

Les clés candidates peuvent être utilisées pour référencer uniquement des lignes/des nuplets, mais du point de vue du moteur de SGBDR, il est beaucoup plus lourd de maintenir des index sur celles-ci. 

4
Paolo Maresca

Super-clé: ensemble d'attributs ou une combinaison d'attributs identifiant de manière unique le tuple dans une relation donnée. La super-clé possède deux propriétés.

Clé candidate: ensemble minimal de super-clés ayant les deux propriétés suivantes: Uniqueness et Ensemble ou attribut irréductible

1
sonal

Une clé candidate est choisie comme clé primaire. Les autres clés candidates sont appelées clés alternatives .

1
Habeeb Perwad

Super clé: la super clé est un ensemble d'attributs dans une relation (table) .qui peut définir chaque élément de la relation (table) de manière unique.

Clé candidate: nous pouvons dire que la super-clé minimale est la clé candidate. Le candidat est le plus petit sous-ensemble de super clé. Et peut définir de manière unique chaque tupple.

0
Rohit Das

Super clé: Une super clé est un ensemble d'attributs pour lequel les valeurs sont garanties comme étant uniques pour tous les ensembles possibles de n-uplets dans une table à tout moment.

Clé candidate: Une clé candidate est une super clé 'minimale', c'est-à-dire le plus petit sous-ensemble d'attribut de super-clé qui est unique.

0
minto5z