Chapitre 2 - Partie 3 : Bases de données relationnelles et SGBD
1. Qu'est-ce qu'une base de données relationnelle ?
Section intitulée « 1. Qu'est-ce qu'une base de données relationnelle ? »1.1 Définition
Section intitulée « 1.1 Définition »Une base de données relationnelle est un ensemble structuré de données organisées selon le modèle relationnel :
- les données sont réparties dans des relations (tables) ;
- les relations sont liées entre elles par des clés étrangères ;
- le tout respecte les contraintes d'intégrité (domaine, entité, référence).
1.2 Exemples concrets
Section intitulée « 1.2 Exemples concrets »Les bases de données relationnelles sont omniprésentes :
| Contexte | Données gérées |
|---|---|
| Site e-commerce | Clients, produits, commandes, paiements |
| Réseau social | Utilisateurs, publications, commentaires, relations d'amitié |
| Hôpital | Patients, médecins, rendez-vous, prescriptions |
| Lycée | Élèves, professeurs, classes, notes, emplois du temps |
| Banque | Comptes, clients, transactions, virements |
1.3 De la conception à la réalisation
Section intitulée « 1.3 De la conception à la réalisation »La construction d'une base de données suit un processus en étapes :
- Analyse des besoins : quelles informations faut-il stocker ?
- Conception du schéma : quelles relations, quels attributs, quelles clés ?
- Création : mise en place du schéma dans un SGBD ;
- Peuplement : insertion des données ;
- Exploitation : requêtes, mises à jour, maintenance.
2. Le système de gestion de bases de données (SGBD)
Section intitulée « 2. Le système de gestion de bases de données (SGBD) »2.1 Définition
Section intitulée « 2.1 Définition »Un SGBD (Système de Gestion de Bases de Données) est un logiciel qui permet de créer, gérer et interroger une base de données. C'est l'intermédiaire entre les utilisateurs (ou les programmes) et les données stockées.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ Utilisateur │ │ Application │ │ Utilisateur ││ 1 │ │ Web │ │ 2 │└──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ └───────────────────┼───────────────────┘ │ ┌──────▼──────┐ │ SGBD │ │ (moteur) │ └──────┬──────┘ │ ┌──────▼──────┐ │ Fichiers │ │ sur disque │ └─────────────┘2.2 Exemples de SGBD
Section intitulée « 2.2 Exemples de SGBD »| SGBD | Type | Utilisation typique |
|---|---|---|
| SQLite | Embarqué (fichier unique) | Applications mobiles, petits projets, enseignement |
| MySQL / MariaDB | Client-serveur | Sites Web (WordPress, etc.) |
| PostgreSQL | Client-serveur | Applications exigeantes, données géographiques |
| Oracle Database | Client-serveur | Grandes entreprises, banques |
| Microsoft SQL Server | Client-serveur | Environnements Windows, entreprises |
3. Les services rendus par un SGBD
Section intitulée « 3. Les services rendus par un SGBD »3.1 Persistance des données
Section intitulée « 3.1 Persistance des données »Les données sont stockées sur le disque dur (mémoire de masse) et survivent à l'arrêt du programme ou de la machine. Contrairement aux variables en mémoire vive, les données d'une base sont pérennes.
Le SGBD gère automatiquement :
- l'écriture des données sur le disque ;
- la récupération après une panne (mécanismes de journalisation) ;
- les sauvegardes et restaurations.
3.2 Gestion des accès concurrents
Section intitulée « 3.2 Gestion des accès concurrents »Plusieurs utilisateurs ou programmes peuvent accéder simultanément à la même base de données. Le SGBD garantit que les opérations ne se perturbent pas mutuellement.
Transaction : une séquence d'opérations qui forme un tout indivisible. Soit toutes les opérations réussissent, soit aucune n'est appliquée (principe du tout ou rien).
3.3 Efficacité de traitement des requêtes
Section intitulée « 3.3 Efficacité de traitement des requêtes »Le SGBD optimise automatiquement les requêtes pour les exécuter le plus rapidement possible, même sur de très gros volumes de données :
- utilisation d'index (structures de données accélérant la recherche, similaires à l'index d'un livre) ;
- optimiseur de requêtes qui choisit la meilleure stratégie d'exécution ;
- mise en cache des données fréquemment consultées.
3.4 Sécurisation des accès
Section intitulée « 3.4 Sécurisation des accès »Le SGBD contrôle qui a le droit de faire quoi sur les données :
- Authentification : vérification de l'identité de l'utilisateur (login / mot de passe) ;
- Autorisation : droits d'accès différenciés (lecture seule, lecture-écriture, administration) ;
- Audit : journalisation des opérations effectuées pour traçabilité.
| Rôle | Droits typiques |
|---|---|
| Administrateur | Créer/supprimer des tables, gérer les utilisateurs |
| Professeur | Lire et modifier les notes de ses élèves |
| Élève | Lire ses propres notes uniquement |
| Application Web | Lire et écrire certaines tables via un compte dédié |
4. Utiliser SQLite avec Python
Section intitulée « 4. Utiliser SQLite avec Python »4.1 Créer une base et une table
Section intitulée « 4.1 Créer une base et une table »import sqlite3
connexion = sqlite3.connect("lycee.db")curseur = connexion.cursor()
curseur.execute(""" CREATE TABLE IF NOT EXISTS Eleves ( id INTEGER PRIMARY KEY, nom TEXT NOT NULL, prenom TEXT NOT NULL, classe TEXT, date_naissance TEXT )""")
connexion.commit()connexion.close()4.2 Insérer des données
Section intitulée « 4.2 Insérer des données »connexion = sqlite3.connect("lycee.db")curseur = connexion.cursor()
curseur.execute(""" INSERT INTO Eleves (nom, prenom, classe, date_naissance) VALUES ('Dupont', 'Alice', 'T3', '2008-03-15')""")
eleves = [ ('Martin', 'Bob', 'T1', '2008-07-22'), ('Durand', 'Clara', 'T3', '2007-12-01'), ('Petit', 'David', 'T2', '2008-01-30')]curseur.executemany(""" INSERT INTO Eleves (nom, prenom, classe, date_naissance) VALUES (?, ?, ?, ?)""", eleves)
connexion.commit()connexion.close()4.3 Interroger la base
Section intitulée « 4.3 Interroger la base »connexion = sqlite3.connect("lycee.db")curseur = connexion.cursor()
curseur.execute("SELECT nom, prenom FROM Eleves WHERE classe = 'T3'")resultats = curseur.fetchall()
for ligne in resultats: print(ligne)# ('Dupont', 'Alice')# ('Durand', 'Clara')
connexion.close()5. Usage responsable des données
Section intitulée « 5. Usage responsable des données »Les bases de données contiennent souvent des données personnelles (nom, adresse, données de santé, etc.). Leur utilisation est encadrée par la loi :
-
Le RGPD (Règlement Général sur la Protection des Données, 2018) impose en Europe :
- le consentement de la personne pour la collecte de ses données ;
- le droit d'accès, de rectification et de suppression ;
- la minimisation : ne collecter que les données strictement nécessaires ;
- la sécurisation : protéger les données contre les accès non autorisés.
-
La CNIL (Commission Nationale de l'Informatique et des Libertés) veille au respect de ces règles en France.
À retenir
Section intitulée « À retenir »| Concept | Description |
|---|---|
| Base de données relationnelle | Ensemble de relations liées par des clés, respectant le modèle relationnel |
| SGBD | Logiciel gérant la base : SQLite, MySQL, PostgreSQL, etc. |
| Persistance | Les données survivent à l'arrêt du programme |
| Accès concurrents | Plusieurs utilisateurs simultanés sans conflit |
| Efficacité | Optimisation des requêtes, index, cache |
| Sécurisation | Contrôle des droits d'accès (authentification, autorisation) |
| RGPD | Cadre juridique européen de protection des données personnelles |
© 2026 Corentin Dupont - LyCode
Créé avec Astro Starlight