mathématiques appliquées (ECG 2e année) · Chapitre 13 · Application directe du cours
Choisir une clef primaire
Bases de données et travaux pratiques · Vocabulaire du modèle relationnel · niveau 1 (application)
Énoncé
La table produit est la suivante.
| id | libelle | prix |
|---|---|---|
| 1 | Stylo | 2 |
| 2 | Cahier | 3 |
| 3 | Stylo | 5 |
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.
Exercices semblables
- Lire le vocabulaire sur une table corrigé
- Tout lire corrigé
- Lire avec une condition corrigé
- Ajouter une ligne corrigé
- Modifier une valeur corrigé