Masar
Masar
Bac Tunisie
Entraîner la reconnaissance
BD-ABases de données et SQL

SQL LDD — V/F, CREATE/ALTER/DROP et intégrité référentielle

Idée directrice

Premier geste des bases de données attesté en synthèse SI (i-s1-04) : propositions V/F sur le LDD SQL (`CREATE`, `ALTER`, `DROP`), la clause ON DELETE CASCADE, et l’écriture d’une clé étrangère par `ALTER TABLE`. Source : devoir de synthèse BD, lycée Sadok Feki, décembre 2016.

Signature de reconnaissance — l'énoncé se trahit ainsi

« Dans le contexte des bases de données, et pour chaque proposition »

« commandes de définition de données en SQL »

« ON DELETE CASCADE »

Sujet principal

Exercice — dans l'esprit des sujets du bac

4 questionsCorrigé masqué

Dans le contexte des bases de données, répondre par V (vrai) ou F (faux) à chaque proposition, puis justifier brièvement.

  1. Les commandes de définition de données (LDD) en SQL sont exactement `CREATE`, `ALTER`, `COLUMN`.
  2. 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.
  3. 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);
    ```
  4. 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.

F ; V ; V ; F — LDD = CREATE/ALTER/DROP\boxed{\text{F ; V ; V ; F — LDD = CREATE/ALTER/DROP}}

Exercices d'entraînement — une nuance à la fois

Entraînement 01 / 02

Drill BD-A.1 — V/F sur clés et jointures

4 questionsCorrigé masqué

Répondre par vrai ou faux (bases de données relationnelles) :

  1. La valeur de la clé primaire d’une table est toujours unique.
  2. La clé primaire et la clé étrangère doivent être identiques seulement en nom (pas en domaine).
  3. Une table peut avoir plusieurs clés étrangères.
  4. Une requête de jointure ne peut s’écrire que sur une seule table.
Voir la correction commentéeAprès avoir posé votre démarche

1. Vrai. La clé primaire identifie de façon unique chaque ligne.

2. Faux. Clé primaire et clé étrangère doivent être compatibles en type/domaine ; l’identité de nom n’est ni nécessaire ni suffisante.

3. Vrai. Une table peut référencer plusieurs tables mères via plusieurs clés étrangères.

4. Faux. Une jointure met en relation au moins deux tables (ou deux occurrences). V ; F ; V ; F\boxed{\text{V ; F ; V ; F}}

Entraînement 02 / 02

Drill BD-A.2 — ordre LDD vs LMD

2 questionsCorrigé masqué

Proposition rencontrée dans un devoir de bases de données : « Lors de la gestion d’une base de données on commence par les requêtes de LMD puis les requêtes de LDD. »

  1. Cette proposition est-elle vraie ou fausse ? Justifier en une phrase.
  2. Classer chacune des commandes suivantes en LDD ou LMD : `CREATE TABLE`, `SELECT`, `ALTER TABLE`, `INSERT`, `DROP TABLE`, `DELETE`.
Voir la correction commentéeAprès avoir posé votre démarche

1. Faux. On définit d’abord la structure (LDD : CREATE/ALTER/DROP), puis on manipule les données (LMD : SELECT/INSERT/UPDATE/DELETE).

2. LDD : `CREATE TABLE`, `ALTER TABLE`, `DROP TABLE`. LMD : `SELECT`, `INSERT`, `DELETE`. LDD d’abord, puis LMD\boxed{\text{LDD d’abord, puis LMD}}

Méthode / Automatismes
  • LDD = structure (CREATE/ALTER/DROP) ; LMD = contenu (SELECT/INSERT/UPDATE/DELETE).
  • CASCADE agit sur la suppression des lignes filles, pas sur la mise à jour seule (sauf ON UPDATE).
  • FOREIGN KEY nomme la colonne locale et REFERENCES la table.colonne cible.
Pièges classiques
  • Confondre LDD et LMD (mettre SELECT dans le LDD).
  • Écrire la FK sur la table mère au lieu de la table fille.
  • Oublier REFERENCES … (colonne) : une FK orpheline n’est pas valide.