Les anomalies d'une table redondante

Les trois anomalies d'une table redondante (insertion, modification, suppression), la redondance qui les cause et la décomposition qui les supprime, sur une table à plat d'inscriptions et de commandes.

  • 22 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

  • Redondance : de quoi s'agit-il ?

    Voir la réponse

    Même information enregistrée plusieurs fois dans la base, de sorte qu'une copie peut différer d'une autre.

    Elle gaspille de la place, mais le vrai coût est la cohérence : chaque copie en plus est une copie à tenir à jour.

  • Léa déménage et on exécute la requête ci-dessous. Que contient ensuite la table pour Léa ?

    ```sql
    -- Inscription(etudiant, adresse, cours, enseignant)
    -- Léa : 2 lignes (Réseaux, Bases), adresse '3 rue Haute'
    UPDATE inscription
    SET adresse = '12 rue Basse'
    WHERE etudiant = 'Léa' AND cours = 'Bases';
    `

    • Deux adresses différentes, selon la ligne lue
    • La nouvelle adresse sur ses deux lignes, SQL propage la modification
    • Une erreur de clé étrangère, car l'adresse est référencée ailleurs
    • Aucune modification, la clause WHERE visant deux colonnes
    Voir la réponse

    Deux adresses différentes, selon la ligne lue

    Un seul enregistrement est modifié : la ligne Réseaux garde 3 rue Haute. Rien dans le schéma n'exprime que les deux adresses doivent être égales.

  • Une anomalie de … survient quand une même information est recopiée sur plusieurs lignes et qu'une partie seulement de ces lignes est mise à jour.

    Voir la réponse

    Une anomalie de modification survient quand une même information est recopiée sur plusieurs lignes et qu'une partie seulement de ces lignes est mise à jour.

    Un UPDATE ... WHERE trop étroit la provoque sans erreur : SQL ne sait pas que les copies devaient rester identiques.

  • Anomalie de modification : de quoi s'agit-il ?

    Voir la réponse

    Incohérence qui apparaît quand on modifie une information recopiée sur plusieurs lignes sans les modifier toutes.

    Après le déménagement d'un client, ses anciennes commandes portent une adresse et les nouvelles une autre : la base n'a plus de réponse unique.

  • Deux factures du même client portent deux adresses différentes, parce que l'adresse est recopiée dans chaque commande. Quelle est la bonne correction ?

    • Un ORDER BY sur la date, pour lire en premier l'adresse la plus récente de la commande
    • Une colonne adresse2 pour garder l'ancienne adresse à côté de la nouvelle, sur chaque commande
    • Un VARCHAR plus long, pour que l'adresse tienne en entier
    • Une table Client portant l'adresse, référencée par clé étrangère
    Voir la réponse

    Une table Client portant l'adresse, référencée par clé étrangère

    Trier ou ajouter une colonne laisse la copie en place. Seule la décomposition donne une seule source. (Si l'adresse d'une facture doit rester celle du jour d'émission, c'est un choix de dénormalisation voulu, pas une anomalie.)