Les 1re, 2e et 3e formes normales

Les trois premières formes normales dans l'ordre : attributs atomiques, aucune dépendance partielle, aucune dépendance transitive ; diagnostic d'une relation et décomposition en 3FN.

  • 24 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • Première forme normale (1FN) : de quoi s'agit-il ?

    Voir la réponse

    Relation dont chaque attribut est atomique : une seule valeur par ligne et par colonne, sans liste ni groupe de colonnes répétées.

    Une colonne matieres qui contient « Maths, Réseaux » viole la 1FN ; matiere1, matiere2, matiere3 aussi, car c'est la même liste déguisée.

  • Ligne(n_cmd, n_produit, quantite, libelle) a pour clé (n_cmd, n_produit), avec (n_cmd, n_produit) → quantite et n_produit → libelle. Quelle est sa plus haute forme normale ?

    • 1FN
    • 2FN
    • 3FN
    • Elle n'est pas en 1FN
    Voir la réponse

    1FN

    Les valeurs sont atomiques, donc 1FN. Mais libelle dépend de n_produit seul, une partie de la clé : la 2FN est violée, et donc la 3FN aussi.

  • Mnémotechnique : chaque attribut non clé dépend de la clé (1FN), de … (2FN) et de … (3FN).

    Voir la réponse

    Mnémotechnique : chaque attribut non clé dépend de la clé (1FN), de toute la clé (2FN) et de rien que la clé (3FN).

    « Toute la clé » interdit la dépendance partielle ; « rien que la clé » interdit la dépendance transitive.

  • Dépendance partielle : de quoi s'agit-il ?

    Voir la réponse

    Dépendance d'un attribut non clé envers une partie seulement de la clé, quand celle-ci est composée.

    Avec la clé (n_cmd, n_produit), n_produit → libelle est partielle : le libellé se répète sur chaque commande du produit.

  • Facture(num, date, client, adresse_client) a pour clé num. L'adresse d'un client est répétée sur chacune de ses factures. Quelle forme normale est violée, et que faire ?

    • La 3FN : adresse_client dépend de client, pas de num ; la placer dans une table Client
    • La 1FN : l'adresse a plusieurs mots, donc elle n'est pas atomique
    • La 2FN : l'adresse dépend d'une partie seulement de la clé num
    • Aucune : num est une clé, donc la relation est en 3FN
    Voir la réponse

    La 3FN : adresse_client dépend de client, pas de num ; la placer dans une table Client

    La clé num n'a qu'un attribut : pas de dépendance partielle possible. La chaîne num → client → adresse_client est transitive, c'est la définition de la violation de 3FN.