Module 8 – Gestion des bases de données

Share Article

Introduction

Une base de données permet de stocker, organiser, rechercher et modifier des informations de manière structurée.

Exemples :

  • une liste de clients ;
  • un stock de produits ;
  • une gestion d’hôtel ;
  • une vidéothèque ;
  • une liste d’employés ;
  • des archives administratives.

Une base de données est souvent utilisée avec un SGBD, c’est-à-dire un Système de Gestion de Bases de Données.

Exemples de SGBD :

  • Microsoft Access ;
  • MySQL ;
  • MariaDB ;
  • PostgreSQL ;
  • SQLite ;
  • Oracle Database.

8.1 Modéliser une base de données à partir d’une situation concrète

1. Qu’est-ce qu’une base de données relationnelle ?

Une base de données relationnelle organise les données sous forme de tables.

Une table ressemble à un tableau.

Exemple : table Clients

id_clientnomprénomemail
1DupontMariemarie@mail.com
2MartinLucaslucas@mail.com

Chaque ligne représente un enregistrement.

Chaque colonne représente un champ.

Vocabulaire important

TermeDéfinition
TableEnsemble de données sur un même sujet
EnregistrementUne ligne dans une table
ChampUne colonne dans une table
SGBDLogiciel qui permet de gérer une base de données
Client de base de donnéesLogiciel ou interface permettant d’accéder à la base

2. La clé primaire

Une clé primaire est un champ qui permet d’identifier de manière unique chaque enregistrement.

Exemple :

id_clientnomprénom
1DupontMarie
2DupontMarie

Même si deux personnes ont le même nom et prénom, leur id_client est différent.

La clé primaire est donc généralement un identifiant unique comme :

  • id_client ;
  • id_produit ;
  • id_commande ;
  • id_employé.

3. La clé étrangère

Une clé étrangère est un champ qui fait référence à la clé primaire d’une autre table.

Exemple :

Table Clients

id_clientnom
1Dupont
2Martin

Table Commandes

id_commandedate_commandeid_client
1012026-05-121
1022026-05-132

Dans la table Commandes, le champ id_client est une clé étrangère.

Il permet de savoir quel client a passé quelle commande.


4. La jointure

Une jointure permet de relier plusieurs tables entre elles.

Exemple : on veut afficher les commandes avec le nom du client.

Au lieu d’avoir seulement ceci :

id_commandedate_commandeid_client
1012026-05-121

On veut obtenir ceci :

id_commandedate_commandenom
1012026-05-12Dupont

Pour cela, on relie la table Commandes à la table Clients grâce au champ id_client.


5. Pourquoi éviter les redondances ?

Une redondance signifie qu’une même information est répétée plusieurs fois inutilement.

Mauvais exemple :

commandeclientadresseproduit
1DupontRue AOrdinateur
2DupontRue ASouris
3DupontRue AClavier

L’adresse du client est répétée plusieurs fois.

Meilleure solution :

Table Clients

id_clientnomadresse
1DupontRue A

Table Commandes

id_commandeid_client
11
21
31

Cela évite :

  • les doublons ;
  • les erreurs ;
  • les pertes de temps ;
  • les incohérences.

6. Choisir les bons types de données

Chaque champ doit avoir un type adapté.

Type de donnéeExempleUtilisation
TexteDupontNom, prénom, adresse
Nombre entier15Quantité, identifiant
Nombre décimal19,99Prix, montant
Date2026-05-12Date de commande
BooléenOui/NonActif, payé, disponible
Emailtest@mail.comAdresse email

Exemple :

Table Produits

ChampType
id_produitentier
nom_produittexte
prixdécimal
stockentier
disponiblebooléen

7. Modéliser une base de données

Modéliser une base de données signifie réfléchir à son organisation avant de la créer.

Il faut se poser plusieurs questions :

  1. Quelles informations dois-je stocker ?
  2. Quelles sont les grandes catégories d’informations ?
  3. Quelles tables dois-je créer ?
  4. Quels champs dois-je mettre dans chaque table ?
  5. Quelle est la clé primaire de chaque table ?
  6. Quelles relations existent entre les tables ?
  7. Comment éviter les répétitions inutiles ?

8. Exemple : gestion d’une vidéothèque

Situation : on veut gérer une vidéothèque avec des clients, des films et des emprunts.

Tables possibles

Table Clients

id_clientnomprénomemail

Table Films

id_filmtitregenreannée

Table Emprunts

id_empruntid_clientid_filmdate_empruntdate_retour

Relations

Un client peut faire plusieurs emprunts.

Un film peut être emprunté plusieurs fois.

La table Emprunts relie donc les clients et les films.


8.2 Exploiter une base de données

1. Qu’est-ce que SQL ?

SQL signifie Structured Query Language.

C’est un langage utilisé pour :

  • créer des tables ;
  • ajouter des données ;
  • rechercher des données ;
  • modifier des données ;
  • supprimer des données.

SQL est utilisé dans de nombreux SGBD comme MySQL, MariaDB, PostgreSQL ou SQLite.


2. DDL : langage de définition des données

Le DDL sert à créer ou modifier la structure de la base.

Exemples de commandes DDL :

  • CREATE TABLE : créer une table ;
  • ALTER TABLE : modifier une table ;
  • DROP TABLE : supprimer une table.

Exemple : créer une table

CREATE TABLE Clients (
    id_client INT PRIMARY KEY,
    nom VARCHAR(50),
    prenom VARCHAR(50),
    email VARCHAR(100)
);

Explication :

  • id_client est un nombre entier ;
  • PRIMARY KEY indique la clé primaire ;
  • VARCHAR(50) signifie texte de maximum 50 caractères.

3. Ajouter des données

Pour ajouter un enregistrement, on utilise INSERT INTO.

INSERT INTO Clients (id_client, nom, prenom, email)
VALUES (1, 'Dupont', 'Marie', 'marie@mail.com');

4. Consulter des données

Pour consulter les données, on utilise SELECT.

Afficher toute une table

SELECT *
FROM Clients;

Le symbole * signifie : afficher tous les champs.

Afficher seulement certains champs

SELECT nom, prenom
FROM Clients;

5. Faire une recherche avec un critère

On utilise WHERE.

SELECT *
FROM Clients
WHERE nom = 'Dupont';

Cette requête affiche uniquement les clients dont le nom est Dupont.


6. Recherche avec plusieurs critères

On peut utiliser AND et OR.

Exemple avec AND

SELECT *
FROM Produits
WHERE prix < 50 AND stock > 0;

Cette requête affiche les produits :

  • dont le prix est inférieur à 50 ;
  • et dont le stock est supérieur à 0.

Exemple avec OR

SELECT *
FROM Produits
WHERE categorie = 'Livre' OR categorie = 'DVD';

Cette requête affiche les produits qui sont dans la catégorie Livre ou DVD.


7. Trier les résultats

On utilise ORDER BY.

SELECT *
FROM Produits
ORDER BY prix ASC;

ASC signifie ordre croissant.

SELECT *
FROM Produits
ORDER BY prix DESC;

DESC signifie ordre décroissant.


8. Les opérateurs de groupe

Les opérateurs de groupe permettent de faire des calculs.

FonctionRôle
COUNT()Compter
SUM()Additionner
AVG()Calculer une moyenne
MIN()Trouver la plus petite valeur
MAX()Trouver la plus grande valeur

Compter les produits

SELECT COUNT(*)
FROM Produits;

Calculer la somme des stocks

SELECT SUM(stock)
FROM Produits;

Calculer le prix moyen

SELECT AVG(prix)
FROM Produits;

Trouver le prix le plus bas

SELECT MIN(prix)
FROM Produits;

Trouver le prix le plus élevé

SELECT MAX(prix)
FROM Produits;

9. Utiliser GROUP BY

GROUP BY permet de regrouper les résultats.

Exemple : calculer le nombre de produits par catégorie.

SELECT categorie, COUNT(*)
FROM Produits
GROUP BY categorie;

Résultat possible :

categorieCOUNT(*)
Livre12
DVD8
Informatique5

10. Les jointures en SQL

Une jointure permet de relier deux tables.

Exemple :

Table Clients

id_clientnom
1Dupont

Table Commandes

id_commandeid_clientdate_commande
10112026-05-12

Requête avec jointure

SELECT Commandes.id_commande, Commandes.date_commande, Clients.nom
FROM Commandes
JOIN Clients
ON Commandes.id_client = Clients.id_client;

Cette requête affiche les commandes avec le nom du client.


11. Modifier des données

Pour modifier des informations, on utilise UPDATE.

UPDATE Clients
SET email = 'nouveau@mail.com'
WHERE id_client = 1;

Attention : il faut toujours mettre un WHERE.

Sans WHERE, toutes les lignes seraient modifiées.


12. Supprimer des données

Pour supprimer un enregistrement, on utilise DELETE.

DELETE FROM Clients
WHERE id_client = 1;

Attention : sans WHERE, toute la table serait vidée.

DELETE FROM Clients;

Cette requête supprime tous les clients.


Exemple complet : gestion d’un hôtel

Situation

Un hôtel veut gérer :

  • ses clients ;
  • ses chambres ;
  • ses réservations.

Tables

Table Clients

ChampTypeRôle
id_clientINTClé primaire
nomVARCHARNom du client
prenomVARCHARPrénom du client
emailVARCHAREmail du client

Table Chambres

ChampTypeRôle
id_chambreINTClé primaire
numeroINTNuméro de chambre
typeVARCHARSimple, double, suite
prix_nuitDECIMALPrix par nuit

Table Reservations

ChampTypeRôle
id_reservationINTClé primaire
id_clientINTClé étrangère
id_chambreINTClé étrangère
date_debutDATEDébut du séjour
date_finDATEFin du séjour

Création des tables en SQL

CREATE TABLE Clients (
    id_client INT PRIMARY KEY,
    nom VARCHAR(50),
    prenom VARCHAR(50),
    email VARCHAR(100)
);

CREATE TABLE Chambres (
    id_chambre INT PRIMARY KEY,
    numero INT,
    type VARCHAR(50),
    prix_nuit DECIMAL(10,2)
);

CREATE TABLE Reservations (
    id_reservation INT PRIMARY KEY,
    id_client INT,
    id_chambre INT,
    date_debut DATE,
    date_fin DATE,
    FOREIGN KEY (id_client) REFERENCES Clients(id_client),
    FOREIGN KEY (id_chambre) REFERENCES Chambres(id_chambre)
);

Ajouter des données

INSERT INTO Clients
VALUES (1, 'Dupont', 'Marie', 'marie@mail.com');

INSERT INTO Chambres
VALUES (1, 101, 'Double', 90.00);

INSERT INTO Reservations
VALUES (1, 1, 1, '2026-06-01', '2026-06-05');

Consulter les réservations avec le nom du client

SELECT Reservations.id_reservation, Clients.nom, Chambres.numero, Reservations.date_debut, Reservations.date_fin
FROM Reservations
JOIN Clients ON Reservations.id_client = Clients.id_client
JOIN Chambres ON Reservations.id_chambre = Chambres.id_chambre;

À retenir

Une base de données relationnelle est composée de tables.

Chaque table contient des champs et des enregistrements.

Une clé primaire identifie chaque ligne de manière unique.

Une clé étrangère permet de relier deux tables.

Une jointure permet d’exploiter les relations entre plusieurs tables.

SQL permet de créer, consulter, modifier et supprimer des données.

Il faut organiser les données correctement pour éviter les redondances.

Les fonctions comme COUNT, SUM, AVG, MIN et MAX permettent d’obtenir des statistiques sur les données.

You might also like

3ème année

Charte graphique – Brand Identiy

Exercice Transformez votre logo avec les exemples que j’ai donné. Soyez-le plus complet possible. Aidez-vous de AI ou de site de génération de Brand identity

#Mindey

@mindey