web-dev-qa-db-fra.com

Une table sans clé primaire est-elle normalisée?

Lors d'une conférence, mon conférencier nous a montré une table sans clé primaire. Après avoir posé des questions, il a dit que dans 3NF lorsque vous supprimez les dépendances transitives, il est acceptable d'avoir ensuite une table sans clé primaire.

Cependant, aucune clé primaire n'implique qu'il n'y a pas de dépendances fonctionnelles - mais 3NF est la suppression des dépendances transitives, et on m'a appris que chaque table doit avoir une clé primaire pour la normalisation car il s'agit de dépendances fonctionnelles.

Je sais qu'il est tout à fait possible de créer une table sans clé primaire, mais cette base de données est-elle considérée comme normalisée si cette table existe?

Je devrais ajouter, la table n'a pas de "clé unique", pas de primaire, pas de composite, pas d'étranger.

Le tableau présenté comporte trois attributs dont aucun n'est étiqueté comme principal ou unique. J'ai demandé si c'était une erreur et il a dit que c'était bien de ne pas en avoir. J'ai remis en question la remarque car aucune des informations dans le tableau ne peut être identifiée de manière unique et il a affirmé que c'était correct d'être comme ça. Cela va à l'encontre de ce qu'on m'a appris sur la normalisation.

9
Alex

Si une relation n'a aucune clé candidate (et que la clé primaire n'est qu'une des clés candidates), elle peut avoir des lignes en double, donc dans ce n'est pas une relation! (puisque les relations sont toujours des ensembles).

Dans ce cas, il est plus correct de l'appeler une table, pas une relation, comme vous l'avez fait dans votre question, et notez que plusieurs SGBDR peuvent en effet gérer les non-relations, permettant des tables sans aucune contrainte d'unicité, même si ce cas est très rare et génère des problèmes (anomalies) lors de l'utilisation des données.

Mais dans ce cas, parler de formes normales n'est pas approprié: toute la théorie de la normalisation est basée sur l'hypothèse fondamentale que les objets d'intérêt sont des relations, pas des multi-ensembles. En fait, cette théorie est basée sur l'hypothèse de relation universelle (quelque peu discutée), qui suppose que toutes les relations d'une base de données sont un sous-ensemble d'une projection d'une telle relation, qui contient tous les attributs de chaque relation. Et cet objet est en fait une relation (c'est-à-dire un ensemble), pas un multiset.

Le fait que, lorsque nous parlons de données du modèle de données relationnelles, nous échangeons parfois les deux termes, tables et relations, ne signifie pas qu'ils sont en fait synonymes, et cette différence est fondamentale lorsque nous parlons de théorie de la normalisation. N'oubliez pas que dans les livres, lorsqu'une forme normale est introduite, il est toujours dit quelque chose comme:

A relation est sous la forme normale xxx si ...

15
Renzo

3NF fait référence à un tableau conforme aux 3 premières règles de normalisation des données.

  1. Élimination des groupes répétitifs
  2. Élimination des données redondantes
  3. Élimination des colonnes ne dépendant pas de la clé

La troisième règle nécessite une clé. Vous avez raison, la table du conférencier n'était pas 3NF.

0
Metaphor