Exercice — dans l'esprit des sujets du bac
Dans le contexte des bases de données, répondre par V (vrai) ou F (faux) à chaque proposition, puis justifier brièvement.
- Les commandes de définition de données (LDD) en SQL sont exactement `CREATE`, `ALTER`, `COLUMN`.
- La clause ON DELETE CASCADE maintient l’intégrité référentielle : lorsqu’on supprime une ligne de la table « mère », les lignes correspondantes de la table « fille » sont supprimées.
- Pour ajouter la clé étrangère `NumClient` à la table `Commande` en référençant `Client(NumCl)`, la commande correcte est :
```sql
ALTER TABLE Commande
ADD CONSTRAINT CT1 FOREIGN KEY (NumClient) REFERENCES Client (NumCl);
``` - Les commandes LDD se limitent à `CREATE` et `SELECT` ; `DROP` appartient au LMD.
Voir la correction commentéeAprès avoir posé votre démarche
1. F. Les commandes de définition de données en SQL sont CREATE, ALTER et DROP (pas `COLUMN` seul). `COLUMN` n’est pas une commande LDD autonome.
2. V. ON DELETE CASCADE maintient l’intégrité référentielle de suppression en cascade : supprimer une ligne de la table mère entraîne la suppression des lignes filles liées par la clé étrangère.
3. V. La syntaxe `ALTER TABLE Commande ADD CONSTRAINT … FOREIGN KEY (NumClient) REFERENCES Client (NumCl)` ajoute correctement la clé étrangère sur `Commande` vers la clé primaire `NumCl` de `Client`.
4. F. `SELECT` est une commande LMD (manipulation). Le LDD regroupe `CREATE`, `ALTER`, `DROP`. On ne « commence » pas la conception par le LMD avant le LDD.