Partie 1
Avant-propos
Ce document a été conçu pour accompagner les étudiants dans la réalisation du TP n°1 :
Création d’une base de données relationnelle, initialement prévu sous Microsoft Access.
Conscients que la majorité d’entre nous utilise Ubuntu/Linux, nous proposons ici une
adaptation pratique avec MySQL, un système de gestion de bases de données libre et
largement utilisé dans le monde professionnel.
Si vous avez ouvert ce guide, c’est probablement parce que vous souhaitez comprendre
pas à pas comment créer une base de données, définir ses tables, établir les relations et
exploiter les données. L’objectif est de vous offrir un support clair, structuré et accessible,
afin que chacun puisse réussir ce TP même sans Access. Alors accrochez-vous !
Ce guide vous permettra de :
- Installer et configurer MySQL sur Ubuntu.
- Créer la base de données Gestion_Commerciale comme demandé dans le TP .
- Définir les tables (Clients, Commandes, Produits, Fournisseurs, etc.) avec leurs clés
primaires et étrangères.
- Mettre en place les relations et assurer l’intégrité référentielle.
- Exécuter des requêtes simples pour exploiter la base.
- Comprendre les erreurs fréquentes et savoir les corriger.
Ce document n’est pas un corrigé officiel, mais un support pédagogique pensé pour
faciliter votre apprentissage et renforcer vos compétences pratiques. Il s’inscrit dans
l’esprit de collaboration et d’entraide : chacun peut s’y appuyer pour progresser en
autonomie, tout en respectant les consignes du TP. Alors let’s go
1- Compréhension du TP
Avant de plonger dans les commandes MySQL et son installation, il est essentiel de bien
comprendre le sens du TP et la logique de la base de données que nous allons construire.
Beaucoup d’étudiants, en voyant le schéma relationnel avec des tables comme
Lignes_Commandes, se demandent : “Mais d’où ça sort ?” Ce guide commence donc par
une explication simple et rassurante.
La logique de la gestion commerciale
Le TP modélise une situation réelle : une entreprise qui gère ses clients, leurs commandes,
les produits vendus et les fournisseurs.
- Un client peut passer plusieurs commandes. ( 1, n) / Chaque commande
correspond à un seul client ( 1,1 )
- Une commande contient plusieurs produits. (1,n ,) / Un produit est contenu dans
plusieurs commandes ( 1,n)
- Un produit peut être livré par plusieurs fournisseurs. (1,n) / Un fournisseur peut
livrer plusieurs produits. (1,n)
C’est cette réalité qu’on traduit en tables et relations.
Du MCD au MLD
-MCD (Modèle Conceptuel de Données) : c’est le schéma “idée” qui montre les entités
(Clients, Commandes, Produits, Fournisseurs) et leurs relations.
- MLD (Modèle Logique de Données) : c’est la version plus technique, où chaque entité
Devient une table avec des clés primaires et étrangères.
-
Schéma du MCD
schéma du MLD
Explication des schémas
Chaque *entité* du MCD, accompagnée de ses *attributs*, est traduite dans le
MLD sous forme de *table*. Par exemple : `Client`, `Commande`, `Produit` et
`Fournisseur` deviennent des tables distinctes.
- Lorsqu’une *association binaire* relie deux entités avec des *cardinalités (1,1)
à (1,n)*, la *clé primaire (PK)* de l’entité du côté (1,n) devient une *clé étrangère
(FK)* dans la table du côté (1,1). Cela permet de respecter la relation tout en
évitant la redondance.
- Si deux entités sont reliées par une association de *cardinalité (1,n) à (1,n)*,
alors on crée une *table associative* supplémentaire. Cette table contient les
*clés primaires* des deux entités reliées. Ces deux clés primaires combinées
forment une *clé primaire composite* (ou composée) dans la table associative.
➤ C’est notamment le cas pour les associations `ligne_commande` (entre
commande et produit) et `fournisseur_produit` (entre fournisseur et produit).
Avec cette compréhension en place, la prochaine étape sera de préparer l’environnement :
installer MySQL sur Ubuntu pour pouvoir créer et manipuler la base Gestion_Commerciale.
À vos ordi !
Installation de MySQL sur Ubuntu
NB : éviter les erreurs de frappe le terminal ne fait pas de cadeau à cet
endroit 🤧 écrivez tel que vous voyez
Vérifier si MySQL est déjà installé
Ouvrez un terminal ( ctrl+Alt+ t ) et tapez :
Mysql –version
Si une version s’affiche, c’est que MySQL est déjà présent. Sinon, passez à l’installation.
Installer MySQL Server
Sur Ubuntu, utilisez la commande suivante :
Sudo apt update
Sudo apt install mysql-server
Finaliser l'installation :
Sudo mysql _secure_installation
Ouvrir MySQL
Sudo mysql
Si on vous demande un mot de passe c'est le mot de passe de votre ordinateur que vous
devez entrer
À ce niveau vous êtes déjà prêt à créer votre première base de données sur
my SQL
À la différence de Microsoft Access sur my SQL c'est sur le terminal que tout se joue
-Ne vous inquiétez pas si vous n’avez jamais utilisé MySQL. Les commandes sont simples
et répétitives.
Implémentation dans Access
3.1 Étape 0 : création d’une nouvelle base
Cette étape reproduit la “création d’une nouvelle base” du
TP, mais sous MySQL/Ubuntu. On va créer la base, vérifier
qu’elle existe
Créer la base de données nommée “ gestion_commerciale “ comme demander sur le TP
La commande est la suivante :
Surtout n'oubliez pas le point virgule ;
- Vérifier que la base de données a bien été enregistré
- avec la commande : SHOW DATABASES;
Ici c’est fait notre BD a bien été enregistré
En cas d'erreur pour supprimer une base de données la commande est la suivante :
DROP DATABASE nom de la base ;
3.2 Étape 1 : création des tables
Avant de créer une table, il faut toujours préciser dans quelle base de données elle sera
enregistrée.
Dans notre cas, nous avons déjà créé la base Gestion_Commerciale (Étape 0).
Pour “s’ancrer” dans cette base, utilisez la commande :
`sql
USE nom de la base !;
Cela signifie que toutes les tables que nous allons créer seront placées dans cette base.
Structure générale d’une table en MySQL
La commande de création d’une table suit une structure simple :
- NomTable : le nom de la table (ex. Clients).
- NomAttribut : le nom de chaque colonne (ex. Nom, Prenom).
- Type : le type de données (texte, nombre, date…).
- Contrainte (optionnelle) : règle appliquée au champ (ex. PRIMARY KEY, NOT NULL).
Les principaux types de données en MySQL
- INT : nombre entier (utile pour identifiants, quantités).
- VARCHAR(n) : texte court, limité à n caractères (utile pour noms, villes).
- TEXT : texte long (utile pour observations, descriptions).
- DATE : date (utile pour date de naissance, date de commande).
- DECIMAL(p,s) : nombre décimal avec précision (utile pour prix).
- BOOLEAN ou TINYINT(1) : vrai/faux (utile pour statut de paiement).
- CHAR(n) : chaîne de taille fixe n
- FLOAT, DOUBLE : pour les nombres réels
Les principales contraintes en MySQL
- PRIMARY KEY : définit la clé primaire (identifiant unique de la table).
- AUTO_INCREMENT : incrémente automatiquement la valeur (utile pour numéros de
clients, commandes).
- NOT NULL : empêche de laisser le champ vide.
- UNIQUE : interdit les doublons dans une colonne.
- FOREIGN KEY : définit une clé étrangère qui relie une table à une autre.
Cas concret : Table Clients
D’après le TP, la table Clients doit contenir :
- NoClient : identifiant unique du client → clé primaire.
- Nom, Prenom : informations personnelles.
- DateNaissance : date de naissance.
- BP : adresse / boîte postale.
- Telephone : numéro de téléphone.
- Ville : ville du client.
- Observations : remarques ou notes.
Traduction en MySQL :
`
Vérification
- Lister les tables créées :
`sql
SHOW TABLES;
- Vérifier la structure de la table :
`sql
DESCRIBE CLIENT ;
`N
Ça y est vous êtes prêt à créer toutes les autres table
1. Créer la table de base (sans le champ Sexe)
`sql
CREATE TABLE Clients (
NoClient INT AUTO_INCREMENT PRIMARY KEY,
Nom VARCHAR(50) NOT NULL,
Prenom VARCHAR(50) NOT NULL,
BP VARCHAR(50),
DateNaissance DATE,
Telephone VARCHAR(20),
Ville VARCHAR(50),
Observations TEXT
);
2. Ajouter un champ (équivalent à “Insérer une ligne” dans Access)
Ajouter le champ Sexe entre Ville et Observations :
`sql
ALTER TABLE Clients
ADD COLUMN Sexe VARCHAR(10) AFTER Ville;
3. Supprimer un champ (équivalent à “Supprimer la ligne” dans Access)
Supprimer le champ Telephone :
`sql
ALTER TABLE Clients
DROP COLUMN Telephone;
Si on veut le recréer ensuite :
`sql
ALTER TABLE Clients
ADD COLUMN Telephone VARCHAR(20) AFTER BP;
4. Déplacer un champ (équivalent à “glisser-déposer” dans Access)
Déplacer le champ Sexe avant BP :
`sql
ALTER TABLE Clients
MODIFY COLUMN Sexe VARCHAR(10) AFTER Prenom;
Déplacer le champ DateNaissance juste avant BP :
`sql
ALTER TABLE Clients
MODIFY COLUMN DateNaissance DATE AFTER Sexe;
5. Modifier le type de données (équivalent à “changer le type” dans Access)
Exemple : transformer Telephone en texte plus long :
`sql
ALTER TABLE Clients
MODIFY COLUMN Telephone VARCHAR(30);
6. Vérifier la structure après modifications
Toujours vérifier la table après chaque changement :
`sql
DESCRIBE Clients;
Comme dans Access où l’on pouvait insérer, supprimer ou déplacer des champs, MySQL
offre des commandes simples (ALTER TABLE) pour faire exactement la même chose. Ne
vous inquiétez pas si vous vous trompez : vous pouvez toujours supprimer un champ et le
recréer correctement.
J'espère que ce guide vous aura aidé à entamer le TP avec des bases solides
À suivre 🫵 ….
Handji’ Tech