100%
GRIMOIRE
GrimoireCorpus DindonVolumes de SynthèseLe Socle du Fer
FRENAR
← PrécédentSuivant →
RATIO
LE SOCLE DU FER · SUPPORT DE COURS · SEMAINE 25
◆◆◆
BASES DE DONNÉES
RELATIONNELLES
Semaine 25 sur 26 · Bloc 9 — Web & BDD
10h théorie · 25h pratique
◆ OBJECTIFS PÉDAGOGIQUES DE LA SEMAINE

1. Comprendre le modèle relationnel (tables, clés, relations)
2. Installer et administrer un SGBD (MySQL ou PostgreSQL)
3. Créer des bases, des tables et exécuter des requêtes SQL de base
4. Sauvegarder et restaurer une base de données
5. Connecter l'application web de S24 à la base de données

◆◆◆
⚠ AVERTISSEMENT — PÉRENNITÉ DES VERSIONS CITÉES

MySQL et PostgreSQL sont cités comme SGBD de référence. D'autres solutions existent (MariaDB, SQLite). Les syntaxes d'administration varient légèrement entre les versions. Le formateur adapte les procédures au SGBD effectivement installé dans l'environnement de formation.

Amine RAITI · Architecte Infrastructure & SRE
Document public · CC BY-NC-SA 4.0 · AI Powered by Amine
Opération Dindon
RATIO
PLAN DE COURS · 10H
FIL CONDUCTEUR THÉORIQUE
25.1 · Modèle relationnel3h
— Table : ensemble de lignes (enregistrements) et de colonnes (attributs)
— Clé primaire : identifiant unique d'un enregistrement (analogie avec l'adresse MAC en réseau — un identifiant unique par entité)
— Clé étrangère : lien entre deux tables, garantit l'intégrité référentielle
— Relations 1-N et N-N : comment modéliser les associations entre entités
25.2 · SQL de base — CRUD4h
— CREATE : créer une base, une table, définir les types de colonnes
— INSERT : insérer des données
— SELECT : interroger les données (avec WHERE, ORDER BY, JOIN basique)
— UPDATE : modifier des données existantes
— DELETE : supprimer des données (avec précaution — pas de "ctrl+Z" en SQL sans transaction)
25.3 · Administration d'un SGBD2h
— Création de comptes utilisateurs SGBD avec droits limités (principe du moindre privilège, lien S15)
— Sauvegarde d'une base de données (dump) et restauration
— Surveiller les connexions et les requêtes actives
25.4 · Base de données et application web1h
— La base de données stocke les données persistantes de l'application web (S24)
— La connexion se fait via un compte SGBD dédié avec droits minimaux
— Ne jamais exposer le SGBD directement sur Internet — accès uniquement depuis l'application web sur le réseau interne (pare-feu local, lien S15)
RATIO
TP1 · INSTALLATION ET ADMINISTRATION DU SGBD · 12H

Matériel : VM Linux, accès au serveur web de S24.

(2h) Installation du SGBD, sécurisation initiale (suppression des comptes anonymes, désactivation de l'accès root distant, création du compte administrateur local).
(2h) Création d'une base de données, d'un utilisateur dédié avec droits limités à cette seule base — application du principe du moindre privilège.
(4h) Création du schéma de la base fournie (3 tables liées par des clés étrangères), insertion de données de test, requêtes SELECT avec filtre (WHERE), tri (ORDER BY), jointure entre tables (INNER JOIN).
(2h) Sauvegarde de la base complète (dump SQL), suppression de la base, restauration depuis le dump, vérification de l'intégrité des données restituées.
(2h) Connexion de l'application web de S24 à la base de données créée, vérification que l'application affiche correctement les données de la base.
CORRIGÉ TP1

Exemple de requête JOIN attendue : si la base contient une table "utilisateurs" et une table "commandes" liées par une clé étrangère, la requête SELECT u.nom, c.produit FROM utilisateurs u INNER JOIN commandes c ON u.id = c.utilisateur_id retourne les couples utilisateur/commande — démontrer que les données de deux tables peuvent être combinées sans duplication.

Vérification de la restauration : comparer le nombre de lignes dans chaque table avant et après restauration — ils doivent être identiques.

RATIO
TP2 · SQL AVANCÉ ET SÉCURISATION · 13H

Matériel : SGBD configuré au TP1, application web de S24.

(3h) Requêtes SQL avancées : agrégations (COUNT, SUM, AVG avec GROUP BY), sous-requêtes simples, mise à jour conditionnelle (UPDATE avec WHERE), transaction basique (BEGIN, COMMIT, ROLLBACK).
(3h) Sécurisation du SGBD : vérifier que le port du SGBD n'est pas accessible depuis l'extérieur (pare-feu local, lien S15), tester que la connexion depuis le réseau externe est refusée, documenter les règles appliquées.
(3h) Planification de la sauvegarde automatique de la base : script shell (lien S10) déclenchant un dump quotidien, planifié via cron (lien S10), stocké dans un répertoire dédié avec rotation de 7 jours.
(2h) Scénario de corruption simulée : le formateur supprime une table de la base, l'application web affiche une erreur — l'apprenant identifie la cause, restaure depuis la sauvegarde la plus récente.
(2h) Documentation de l'architecture complète déployée (web + BDD) : schéma, comptes, droits, politique de sauvegarde.
CORRIGÉ TP2

Script de sauvegarde attendu : appel à l'outil de dump du SGBD avec les identifiants de connexion, redirection de la sortie vers un fichier horodaté, nettoyage des fichiers plus anciens que 7 jours — même structure que le script de sauvegarde de S10 appliquée ici aux données SQL.

◆ FICHE DE SYNTHÈSE — AUTO-ÉVALUATION SEMAINE 25
1. Je sais expliquer le modèle relationnel (tables, clés primaires, clés étrangères).
2. Je sais créer une base de données et des tables en SQL.
3. Je sais exécuter des requêtes SELECT avec filtre, tri et jointure.
4. Je sais créer un utilisateur SGBD avec droits limités.
5. Je sais sauvegarder et restaurer une base de données.
6. Je sais sécuriser l'accès au SGBD par pare-feu local.
7. Je sais planifier une sauvegarde automatique de la base via cron.
8. Je sais connecter une application web à sa base de données.
← PrécédentSuivant →