Adloun

Ce que la jointure fait disparaître

Exercice · niveau 3 (difficile) · mathématiques appliquées (ECG 2e année), chapitre 13 — Bases de données et travaux pratiques · Interroger une base

Énoncé

La table client a trois lignes, d'identifiants , et . La table commande en a quatre, de client_id valant , , et . Combien de lignes rend leur jointure interne sur l'égalité des identifiants ? Qu'est-ce qui manque, et pourquoi ?

Corrigé

Chaque commande s'apparie au plus une fois. client.id est la clef primaire : aucune valeur ne s'y répète. Une ligne de commande trouve donc zéro ou un partenaire, jamais deux.

Ligne par ligne. Les client_id valant , et trouvent chacun leur client — trois appariements. Le client_id valant n'en trouve aucun, puisqu'il n'existe pas de client .

Le compte. La jointure rend donc trois lignes.

Ce qui manque, et pourquoi. Deux choses, pour deux raisons opposées :

Le point à retenir. Compter les lignes du résultat est un audit gratuit : si la jointure rend moins de lignes que la table commande, c'est qu'il existe des orphelines. Et conclure « il n'y a que deux clients » à la lecture du résultat serait faux : le troisième existe, il est simplement inactif.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.