Module 3Manipuler les données
Chapitre 9 sur 9
Examen blanc et fiche mémo
Te tester sur l'ensemble du module et garder une fiche mémo de Merise et du SQL.
- ≈ 90 min
- 2 leçons
- 3 exercices
- TP
Module 3Manipuler les données
Chapitre 9 sur 9
Te tester sur l'ensemble du module et garder une fiche mémo de Merise et du SQL.
Objectifs
Avec ce chapitre, tu sauras…
Fais cet examen en 3 heures, sans le cours. Les parties A à C se font sur papier, la partie D sur ordinateur avec MySQL.
Leçon 1
| Partie | Contenu | Points | Chapitres |
|---|---|---|---|
| A | questions à choix multiples | 8 | 1 à 8 |
| B | dictionnaire, dépendances fonctionnelles, MCD | 12 | 1 et 2 |
| C | normalisation et MLD | 6 | 3 |
| D | SQL : création, requêtes, administration | 14 | 5 à 8 |
| Total | 40 |
Leçon 2
| Étape | À retenir |
|---|---|
| cahier des charges | contexte, données, règles de gestion ; périmètre : buts, livrables, tâches, contraintes (budget, temps, portée) |
| dictionnaire | code, désignation, type, taille, observation ; pas de données calculées ; contrôler imprécisions, polysémies, synonymes |
| DF | A → B : A détermine une seule valeur de B ; DF directes ; source composée A + B → C |
| graphe → MCD | sources → identifiants d'entités ; DF entre sources → association non porteuse ; source composée → association porteuse ; règles sans DF → association |
| cardinalités |
1Une donnée calculée…
2codeForm → titreForm signifie…
3Une association (0,N) – (0,N) devient dans le MLD…
4Un attribut non clé qui dépend d'un autre attribut non clé viole…
5Pour supprimer toutes les lignes en gardant la table :
6Pour compter les étudiants par ville :
7Pour garder les lignes sans correspondance de la table de gauche :
8Pour annuler les opérations d'une transaction :
L'essentiel du chapitre
UPDATE ou de DELETE sans WHERE par erreur ; IS NULL ; condition sur un agrégat dans HAVING ; LEFT JOIN pour ne rien perdre.| 0,1 / 1,1 / 0,N / 1,N, lues depuis l'entité ; min 0 facultatif, 1 obligatoire ; max 1 exclusif, N multiple |
| formes normales | 1FN atomique ; 2FN toute la clé ; 3FN rien que la clé ; FNBC toute source de DF est une clé ; 4FN pas de multivaluées indépendantes |
| MCD → MLD | entité → table ; (…,N)-(1,1) → clé étrangère côté (1,1) ; (…,N)-(…,N) → table à clé composée ; ternaire → table |
| Besoin | Syntaxe |
|---|---|
| base | CREATE DATABASE b CHARACTER SET utf8mb4; USE b; |
| table | CREATE TABLE t (id INT AUTO_INCREMENT PRIMARY KEY, nom VARCHAR(30) NOT NULL, prix DECIMAL(8,2) CHECK (prix > 0)); |
| clé étrangère | FOREIGN KEY (col) REFERENCES autre (col) ON DELETE CASCADE |
| structure | ALTER TABLE t ADD / MODIFY / DROP COLUMN …; DROP TABLE t; |
| données | INSERT INTO t (a, b) VALUES (…); UPDATE t SET a = … WHERE …; DELETE FROM t WHERE …; |
| lecture | SELECT DISTINCT a AS x FROM t WHERE … ORDER BY a DESC LIMIT 10; |
| filtres | BETWEEN, IN (…), LIKE '%x_', IS NULL, AND, OR, NOT |
| agrégats | COUNT(*), SUM, AVG, MIN, MAX ; GROUP BY ; HAVING |
| jointures | FROM a JOIN b ON b.fk = a.pk ; LEFT JOIN pour garder toutes les lignes de a |
| sous-requête | WHERE x > (SELECT AVG…) ; IN (SELECT …) ; EXISTS (SELECT …) |
| vue | CREATE VIEW v AS SELECT …; |
| droits | CREATE USER 'u'@'localhost' IDENTIFIED BY '…'; GRANT SELECT ON b.* TO 'u'@'localhost'; REVOKE … |
| transaction | START TRANSACTION; … COMMIT; ou ROLLBACK; |
| index | CREATE INDEX i ON t (col); EXPLAIN SELECT …; |
| sauvegarde | mysqldump -u root -p b > b.sql ; mysql -u root -p b < b.sql |
# clés étrangères). (4 pts)RDV (numRdv, dateRdv, numDossier, nomPatient, matricule, nomMedecin) est-elle en 3FN ? Justifie et corrige. (2 pts)Tableau: La conception
Sur la base du centre de formation (données du chapitre 6) :
PAIEMENT (numéro auto-incrémenté, date, montant positif, mode parmi espèces, carte ou virement, CIN de l'étudiant, code de la session) avec toutes ses contraintes. (3 pts)comptable qui peut lire toutes les tables et ajouter des paiements, et écris la commande de sauvegarde de la base. (3 pts)« La clinique Al Amal veut gérer ses rendez-vous. Un patient (numéro de dossier, CIN, nom, prénom, téléphone, date de naissance) peut prendre plusieurs rendez-vous. Un médecin (matricule, nom, spécialité, numéro de cabinet) reçoit plusieurs rendez-vous. Un rendez-vous a un numéro, une date, une heure et un motif ; il concerne un seul patient et un seul médecin. Chaque médecin a une seule spécialité ; une spécialité (code, libellé) peut concerner plusieurs médecins. Lors d'un rendez-vous, le médecin peut prescrire plusieurs médicaments (code, nom, laboratoire), avec une posologie pour chacun. »
Tableau: Le SQL