Adloun

Choisir une clef primaire

Exercice supplémentaire · niveau 1 (application) · mathématiques appliquées (ECG 2e année), chapitre 13 — Bases de données et travaux pratiques · Vocabulaire du modèle relationnel

Énoncé

La table produit est la suivante.

idlibelleprix
1Stylo2
2Cahier3
3Stylo5

Quel attribut peut servir de clef primaire ? Justifier pour les trois.

Corrigé

Le critère. Une clef primaire doit identifier chaque ligne de façon unique : deux enregistrements distincts ne peuvent pas y porter la même valeur.

libelle ne convient pas. La valeur « Stylo » apparaît deux fois, aux lignes et — deux stylos différents, l'un à et l'autre à . Une requête WHERE libelle = 'Stylo' rendrait deux lignes : le libellé ne désigne pas un produit.

prix ne convient pas. Ici ses trois valeurs , , se trouvent être distinctes, mais rien ne le garantit : deux produits peuvent parfaitement coûter le même prix, et le prochain article inséré à euros ferait tomber la règle. Une clef se choisit pour ce qu'elle garantit, jamais pour ce que le contenu actuel permet.

id convient. Ses valeurs , , sont distinctes, et c'est un identifiant créé précisément pour l'être. On le déclare ainsi :


CREATE TABLE produit (
    id       INTEGER PRIMARY KEY,
    libelle  TEXT,
    prix     INTEGER
);

Ce que la déclaration change. La base refusera désormais toute insertion d'une ligne portant un id déjà présent. C'est une garantie active, pas une simple annotation.

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.