Retour à l’accueil

Étude de projet

Base de données SQL - CréaBD Safran

SQL Base de données Modélisation SQLite

Ce projet présente la conception d’un système d’information orienté gestion commerciale et logistique. L’objectif était de passer d’un besoin métier à une base relationnelle cohérente, contrôlée et exploitable par des requêtes SQL.

Schéma relationnel final

SR — Tables et clés étrangères

Chaque entité devient une table et chaque association non-binaire ou avec attributs devient une table dédiée (contient, possede, fournit, alimente). Les clés étrangères propagent les identifiants pour garantir la cohérence des données.

commercial

  • id_commercant
  • nom_commercant
  • prenom_commercant
  • email_commercant UNIQUE
  • telephone_commercant

magasin

  • id_magasin
  • nom_magasin
  • localisation

client

  • id_client
  • nom_client
  • adresse_client
  • email_client UNIQUE
  • telephone_client

produit

  • id_produit
  • nom_produit
  • reference_interne UNIQUE
  • prix_unitaire
  • description

fournisseur

  • id_fournisseur
  • nom_fournisseur
  • adresse_fournisseur
  • tel_fournisseur
  • mail_fournisseur UNIQUE

commande

  • id_commande
  • date_commande
  • date_livraison
  • etat_commande
  • id_client → client
  • id_commercant → commercial

facture

  • id_facture
  • date_facture
  • montant_total
  • statut_facture
  • id_commande UNIQUE

historique_de_vente

  • id_vente
  • quantite_vendue
  • prix_vente
  • date_vente
  • id_commande
  • id_produit
  • id_client

recommandation

  • id_recommandation
  • score_recommandation
  • raison
  • id_commercant
  • id_produit
  • id_client

stock

  • id_stock
  • quantite_disponible
  • seuil_alerte
  • numero_lot
  • id_produit

possede (assoc.)

  • id_client
  • id_magasin

contient (assoc.)

  • id_commande
  • id_produit
  • quantite_commandee

fournit (assoc.)

  • id_fournisseur
  • id_produit

alimente (assoc.)

  • id_vente
  • id_recommandation

Extraits de code

Quelques requêtes clés

creation_base.sql · table commande
CREATE TABLE commande (
  id_commande     INTEGER PRIMARY KEY AUTOINCREMENT,
  date_commande   DATE NOT NULL,
  etat            TEXT NOT NULL CHECK(etat IN ('en_cours', 'livree', 'annulee')),
  montant_total   DECIMAL(10, 2) CHECK(montant_total >= 0),
  id_client       INTEGER NOT NULL,
  id_commercial   INTEGER NOT NULL,
  FOREIGN KEY(id_client) REFERENCES client(id_client),
  FOREIGN KEY(id_commercial) REFERENCES commercial(id_commercial)
);
requetes.sql · top 3 produits vendus
-- Top 3 des produits les plus vendus toutes commandes confondues
SELECT
  p.libelle,
  SUM(lc.quantite) AS total_vendu
FROM ligne_commande lc
JOIN produit p ON p.id_produit = lc.id_produit
JOIN commande c   ON c.id_commande = lc.id_commande
WHERE c.etat <> 'annulee'
GROUP BY p.libelle
ORDER BY total_vendu DESC
LIMIT 3;
requetes.sql · alertes de stock
-- Produits sous le seuil d'alerte, par magasin
SELECT
  m.nom        AS magasin,
  p.libelle    AS produit,
  s.quantite,
  p.seuil_alerte
FROM stock s
JOIN produit p ON p.id_produit = s.id_produit
JOIN magasin m ON m.id_magasin = s.id_magasin
WHERE s.quantite < p.seuil_alerte
ORDER BY m.nom, p.libelle;

Contexte

Modéliser un système de gestion complet

Le projet part d’un cas inspiré de Safran et demande de représenter les données utiles à la gestion de clients, commandes, produits, fournisseurs, stocks, factures, historiques de vente et recommandations. La priorité n’était pas seulement de créer des tables, mais de garantir que les informations restent cohérentes.

Technologies utilisées

  • SQL pour la création, l’insertion et l’analyse.
  • SQLite pour la base livrée.
  • Contraintes relationnelles pour sécuriser les données.
  • Rapport de conception pour expliquer les choix.

Entités principales

  • commercial, magasin, client.
  • produit, fournisseur, stock.
  • commande, facture, historique_de_vente.
  • recommandation et tables d’association.

Base relationnelle

Modèle, intégrité et exploitation

Modèle de données

Les fichiers SQL structurent une base composée d’entités métier et de relations explicites. Le modèle permet de suivre les ventes, les commandes, les stocks et les recommandations à partir d’identifiants cohérents.

Contraintes et intégrité

Le script de création utilise des clés primaires, des clés étrangères, CHECK, UNIQUE, des dates cohérentes, des montants positifs et des états contrôlés pour les commandes et factures.

Requêtes d’analyse

Les requêtes couvrent le suivi des commandes à traiter, des factures en attente, des produits sous seuil d’alerte, du total des ventes par client et du top 3 des produits vendus.

Lecture métier

Le projet montre que la donnée n’est pas isolée du besoin. Chaque table et chaque requête répondent à une question concrète de gestion ou de pilotage.

Preuves du projet

Livrables et fichiers SQL

Rapport partie 1

Rapport de cadrage & conception

Document de cadrage et de conception de la première partie.

Télécharger le rapport
Création

Script de création de la base

Tables, clés primaires, clés étrangères et contraintes d’intégrité.

Télécharger le script

Ce que ce projet démontre

Une approche complète de la donnée

  • Passer d’un besoin métier à une modélisation relationnelle.
  • Construire un schéma cohérent avec des contraintes utiles.
  • Écrire des requêtes SQL lisibles pour exploiter les données.
  • Comprendre l’intérêt de la normalisation et de l’intégrité.
  • Documenter un travail technique pour qu’il soit vérifiable.