Exercices corrigés de Bases de données
Ces 84 exercices accompagnent le cours de Bases de données et suivent son ordre, notion par notion. Chacun se corrige dans la page, au clic : pas de compte à créer, pas de fichier à rendre, et la correction dit ce qui ne va pas plutôt que de donner une note.
Les systèmes d'information7 exercices
Les cinq fonctions du SI, un livrable ou une activité, le dictionnaire et le classement des données, puis les dépendances, la clé qu'elles désignent, et la requête qui en réfute une.
Le cours : Introduction aux systèmes d'information
Installer et vérifier3 exercices
Lire un message avant d'agir, prévoir ce que rend SHOW GRANTS, et ce que la page et MySQL répondent à la même requête.
Le cours : Installation de MySQL et Looping
Modéliser11 exercices
Cardinalités, du MCD au MLD, où va la clé étrangère, une clé qui doit dater, CASCADE ou RESTRICT, puis écrire en SQL les tables d'un modèle, ou réparer un schéma faux.
Le cours : Du MCD au modèle relationnel
- Où va la clé étrangèreFacile
- Traduire une règle de gestion en cardinalitésFacile
- Compter les tables d'un MLDFacile
- Du MCD aux tables, en SQLAccessible
- Deux sortes de membres, trois tablesAccessible
- Le responsable qui s'en vaAccessible
- Réparer un schémaAccessible
- Supprimer un cours qui a des inscritsAccessible
- La table des emprunts, en SQLAccessible
- Emprunter deux fois le même livreIntermédiaire
- Une séance, trois entités et deux clésIntermédiaire
Normaliser6 exercices
Dire quelle forme normale manque à une table, sortir les dépendances partielles puis transitives, et écrire les tables qui en sortent.
Le cours : Normaliser une base
Algèbre relationnelle12 exercices
Écrire ses premières expressions, compter les lignes d'un résultat, le bruit du produit, pousser la sélection, dire « sans » et « tous les », retrouver les notes qui manquent, joindre une table à sa copie renommée, traduire une requête à deux jointures, et les pièges du NULL et de l'union.
Le cours : L'algèbre relationnelle et ses arbres
- Les employés du supportAccessible
- Compter les lignes d'un résultatAccessible
- Le bruit du produit cartésienAccessible
- Le cours qui n'est ni d'un côté ni de l'autreAccessible
- Les notes qui manquentIntermédiaire
- Dire « sans » en algèbreIntermédiaire
- Les clients d'une même villeIntermédiaire
- Une union acceptée n'est pas une union justeIntermédiaire
- De SQL vers l'algèbre, deux jointuresIntermédiaire
- Pousser la sélection vers les feuillesIntermédiaire
- Les couples qui manquentIntermédiaire
- Tous les projets des clients parisiensExigeant
Prévoir et modifier7 exercices
Prévoir les lignes d'une jointure et l'ordre logique d'une requête, puis créer une table qui refuse les erreurs, insérer, modifier et supprimer des lignes en visant juste.
Le cours : Les requêtes SQL : créer, modifier, interroger et joindre
- Combien de lignes une jointure renvoieAccessible
- L'ordre logique d'une requêteAccessible
- Revaloriser un seul serviceAccessible
- Fermer un cours qui a des inscritsAccessible
- Inscrire une étudiante sans dépendre de l'ordre des colonnesAccessible
- Une table qui refuse les erreurs de saisieIntermédiaire
- Renommer et retirer, sur la cléAccessible
Écrire des requêtes11 exercices
Filtrer, trier, dédoublonner, chercher par motif, parenthéser un OU, calculer sans alias dans WHERE, tester l'absence de valeur, choisir la jointure qui garde les bonnes lignes, et réparer le filtre qui annule une jointure externe.
Le cours : Les requêtes SQL : créer, modifier, interroger et joindre
- Filtrer puis trierFacile
- Ceux qui n'ont pas d'adresseFacile
- Des bornes inclusesAccessible
- Garder les cours sans enseignantAccessible
- Traverser la table de liaisonIntermédiaire
- Ceux qui ne sont inscrits nulle partIntermédiaire
- Le filtre qui annule la jointure externeExigeant
- Les villes, chacune une foisFacile
- Les dossiers de l'armoire DFacile
- Actifs, et de Lyon ou de BordeauxAccessible
- Le salaire annuel avec le treizième moisAccessible
Agréger et imbriquer13 exercices
Compter ce qui existe, zéro compris après une jointure externe, filtrer les lignes puis les groupes, laisser une sous-requête calculer la valeur de comparaison, dire « aucun » avec NOT EXISTS, comparer chaque ligne à son groupe, « tous les » en double négation, puis nommer une requête par WITH et créer une vue.
Le cours : SQL avancé : agrégats, sous-requêtes et vues
- Compter les lignes ou les valeursFacile
- La moyenne de chaque coursAccessible
- Filtrer les groupes, pas les lignesAccessible
- Au-dessus de la moyenne, sans la recopierIntermédiaire
- Le plus gros budget en heures, même à égalitéIntermédiaire
- La masse salariale par serviceAccessible
- Aucun inscrit parisienIntermédiaire
- Le projet principal de chaque employéExigeant
- Inscrits à tous les cours de coefficient 1,5Exigeant
- Le nombre de projets de chaque client, zéro comprisIntermédiaire
- Les cours où deux étudiants au moins ont 15Intermédiaire
- Une vue pour le pilotage des projetsIntermédiaire
- Les cours au-dessus de la moyenne générale, avec WITHIntermédiaire
Les transactions8 exercices
Les trente euros qui n'appartiennent à personne, ce que chaque niveau d'isolation tolère, nommer l'anomalie, ce que fait vraiment MySQL au niveau par défaut, puis quatre transactions à écrire : un virement et ses frais, un paiement sur deux tables, deux virements indépendants, un retrait qui vérifie lui-même le solde.
Le cours : Les transactions et les propriétés ACID
- Trente euros qui n'appartiennent à personneAccessible
- Ce que chaque niveau tolère encoreIntermédiaire
- Nommer l'anomalieAccessible
- Le niveau par défaut ne suffit pasIntermédiaire
- Le virement et ses fraisIntermédiaire
- Le paiement et son écritureIntermédiaire
- Deux virements, deux transactionsIntermédiaire
- Le retrait qui vérifie lui-mêmeAccessible
Exploiter une base6 exercices
Créer l'index qui sert deux conditions, compter les lignes qu'une requête lit selon ses index, lire les droits d'un compte, écrire la vue que voit le portail, puis une connexion qu'aucune saisie n'ouvre.
Le cours : Exploiter une base : index, droits, injection et sauvegardes
Les notions ci-dessus sont enseignées dans le cours de Bases de données, chapitre par chapitre. Les autres parcours sont dans les exercices corrigés.