Vous êtes sur la page 1sur 17

BI ET BASE DE DONNÉES

ORIENTÉE OBJET
S9 , Génie Informatique

Réalisé par :
● Ahcine Chaymaa
● Louzaoui Safaa
● Nassima jebbar

Supervisé par:
Mr.Norelislam EL HAMI

Année universitaire 2023/ 2024


Introduction

La base de données présentée ci-dessus est conçue pour prendre en charge un


projet de Business Intelligence (BI) axé sur le thème de la vente.
Elle offre une structure de données robuste et bien organisée pour stocker des
informations relatives aux clients, aux produits, aux commandes, aux
employés, aux fournisseurs, aux catégories, aux expéditions, aux évaluateurs,
et aux paiements.

Cette base de données est structurée autour de plusieurs types d'objets et de


tables imbriquées qui permettent de représenter de manière détaillée les
entités impliquées dans un processus de vente, du client passant une
commande à l'évaluation du produit, jusqu'à la réalisation du paiement.

Schéma de la Base de Données

La base de données se compose des éléments suivants :

● Types d'Adresse et Tables Associées :

Address_Type : Définit une adresse avec les champs street, city, state, et
postal_code.
Address_Table_Type : Tableau imbriqué de Address_Type.

Représente une adresse physique avec rue, ville, état et code postal.

● Attributs :
● street : VARCHAR2(255)
● city : VARCHAR2(100)
● state : VARCHAR2(50)
● postal_code : VARCHAR2(20)

● Types d'Identité et Tables Associées :


Identity_Type : Représente l'identité d'une personne avec les champs
first_name, last_name, email, gender, et phone_number.
Identity_Table_Type : Tableau imbriqué de Identity_Type.
Représente des informations d'identité personnelle.

Attributs :

● first_name : VARCHAR2(20)
● last_name : VARCHAR2(20)
● email : VARCHAR2(20)
● gender : VARCHAR2(20)
● phone_number : VARCHAR2(50)

● Types de Description et Tables Associées :

Description_Type : Définit les caractéristiques d'un produit.


Product_Descriptions_Type : Tableau imbriqué de Description_Type.
Représente des descriptions de produits.

Attributs :

● name : VARCHAR2(100)
● release_date : DATE
● prod_size : VARCHAR2(20)
● color : VARCHAR2(20)
● weight : NUMBER

● Types d'Avis sur les Produits et Tables Associées :

Review_Type : Représente un avis sur un produit.


Product_Reviews_Type : Tableau imbriqué de Review_Type.
Représente des avis sur les produits.

● Attributs :
● ReviewDate : DATE
● Rating : NUMBER
● Comments : VARCHAR2(255)

● Types de Détails de Commande et Tables Associées :

OrderDetailsType : Définit les détails d'une commande.


OrderDetail_Table_Type : Tableau imbriqué de OrderDetailsType.

● Représente les détails d'une commande.


● Attributs :
● Quantity : INT
● UnitPrice : DECIMAL(10, 2)
● Discount : DECIMAL(5, 2)

❖ Table des Clients :

Client : Stocke les informations du client avec des tables imbriquées


pour les adresses et les identités.
❖ Stocke des informations sur les clients.
❖ Attributs :
➢ client_id : NUMBER (Clé primaire)
➢ client_addresses : Table imbriquée de address_type (Stockée en
tant que client_addresses_tab)
➢ client_identities : Table imbriquée de identity_type (Stockée en
tant que client_identities_tab)

❖ Table des Catégories :

Categories : Enregistre les différentes catégories de produits.


● Stocke des catégories de produits.
● Attributs :
● CategoryID : INT (Clé primaire)
● CategoryName : VARCHAR(255)

❖ Table des Fournisseurs :
Suppliers : Contient les informations sur les fournisseurs avec une table
imbriquée pour les adresses.
● Stocke des informations sur les fournisseurs de produits.
● Attributs :
● SupplierID : INT (Clé primaire)
● SupplierName : VARCHAR(255)
● ContactName : VARCHAR(255)
● ContactEmail : VARCHAR(255)
● Phone : VARCHAR(20)
● Supplier_addresses : Table imbriquée de address_type (Stockée en
tant que Supplier_addresses_tab)

❖ Table des Employés :

Employees : Stocke les détails des employés avec des tables


imbriquées pour les adresses et les identités.
● Stocke des informations sur les employés.
● Attributs :
● EmployeeID : INT (Clé primaire)
● HireDate : DATE
● Position : VARCHAR(255)
● Employee_addresses : Table imbriquée de address_type (Stockée en
tant que Employees_addresses_tab)
● Employee_identities : Table imbriquée de identity_type (Stockée
en tant que Employees_identities_tab)

❖ Table des Expéditeurs :

Shippers : Enregistre les informations sur les expéditeurs.


● Stocke des informations sur les entreprises de transport.
● Attributs :
● ShipperID : INT (Clé primaire)
● ShipperName : VARCHAR(255)
● Phone : VARCHAR(20)

❖ Table des Produits :


Products : Stocke les détails des produits avec des tables imbriquées
pour les descriptions et les avis.
❖ Stocke des informations sur les produits.
❖ Attributs :
➢ ProductID : INT (Clé primaire)
➢ ProductName : VARCHAR(255)
➢ CategoryID : INT (Clé étrangère faisant référence à Categories)
➢ SupplierID : INT (Clé étrangère faisant référence à Suppliers)
➢ Price : DECIMAL(10, 2)
➢ QuantityInStock : INT
➢ Descriptions : Table imbriquée de description_type (Stockée en
tant que description_type_tab)
➢ Reviews : Table imbriquée de review_type (Stockée en tant que
review_type_tab)

❖ Table des Commandes :

Orders : Enregistre les détails des commandes avec des tables


imbriquées pour l'adresse d'expédition et les détails de la commande.
Inclut également une référence à un expéditeur.
❖ Stocke des informations sur les commandes.
❖ Attributs :
➢ OrderID : INT (Clé primaire)
➢ ProductID : INT (Clé étrangère faisant référence à Products)
➢ client_id : INT (Clé étrangère faisant référence à client)
➢ EmployeeID : INT (Clé étrangère faisant référence à Employees)
➢ OrderDate : DATE
➢ ShipDate : DATE
➢ ShipAdress : Table imbriquée de address_type (Stockée en tant que
ShipAdress_tab)
➢ TotalAmount : DECIMAL(10, 2)
➢ OrderDetails : Table imbriquée de OrderDetailsType (Stockée en
tant que OrderDetails_tab)
➢ ShipperID : INT (Clé étrangère faisant référence à Shippers)

❖ Table des Paiements :


Payments : Stocke les informations sur les paiements liés aux
commandes.
● Stocke des informations sur les paiements.
● Attributs :
● PaymentID : INT (Clé primaire)
● OrderID : INT (Clé étrangère faisant référence à Orders)
● PaymentDate : DATE
● PaymentAmount : DECIMAL(10, 2)
● PaymentMethod : VARCHAR(255)

Modèle en étoile

Dans le modèle en étoile, les tables de dimension représentent des entités


principales qui fournissent des informations descriptives détaillées, tandis que
la table de faits enregistre les mesures ou les événements liés à ces entités.
Le schéma comprend les tables suivantes :

❖ Tables de Dimension

Dimclient :
Columns: client_id (Clé primaire), gender, city, state
Description: Cette table stocke des informations détaillées sur les clients,
telles que leur identifiant, genre, ville et état.

DimProducts:
Columns: ProductID (Clé primaire), ProductName, CategoryID (Clé
étrangère), Price, QuantityInStock
Description: Elle contient des informations sur les produits: identifiant, nom,
catégorie, prix et quantité en stock.

Dimpayment:
Columns: PaymentID (Clé primaire), PaymentDate, PaymentAmount,
PaymentMethod
Description: Cette table enregistre les détails des paiements effectués, tels
que l'identifiant du paiement, la date, le montant et la méthode de paiement.
❖ Table de Faits

FactOrders:
Columns: OrderID (Clé primaire), OrderDate, TotalAmount, ProductID (Clé
étrangère), client_id (Clé étrangère), PAYMENTID (Clé étrangère)
Description: Cette table de faits relie les dimensions en enregistrant des
informations sur les commandes, telles que l'identifiant de commande, la date,
le montant total, l'identifiant du produit, l'identifiant du client et l'identifiant du
paiement associé.

Datamart

On a créé le Datamart en extrayant des données de plusieurs tables, les


combinant de manière à fournir une vue consolidée et analytique des
informations. Voici une explication détaillée du Datamart que vous avez créé :

❖ Table du Datamart

Columns:
OrderID (Clé primaire)
OrderDate
TotalAmount
ProductID
ProductName
CategoryID
Price
QuantityInStock
client_id
gender
city
state
ExtendedAmount (Calculé comme Price * TotalAmount)
PaymentID
PaymentDate
PaymentAmount
PaymentMethod
Description:

Cette table du Datamart combine des informations critiques de différentes


tables pour offrir une vision consolidée des commandes, des produits, des
clients et des paiements associés.

● Processus de Combinaison des Tables

FactOrders (fo): La table de faits initiale contenant des informations sur les
commandes, liée à DimProducts, Dimclient, et Dimpayment.

DimProducts (dp): Informations sur les produits, jointes à la table FactOrders


via ProductID.

Dimclient (dc): Détails sur les clients, joint à la table FactOrders via client_id.

Dimpayment (dpm): Informations sur les paiements, jointes à la table


FactOrders via PAYMENTID.

● Colonnes Calculées
ExtendedAmount: Le montant étendu est calculé en multipliant le prix du
produit par le montant total de la commande. Cela fournit une mesure
agrégée utile pour l'analyse.

● Objectif du Datamart
Le Datamart résultant offre une vue intégrée des commandes, des produits,
des clients et des paiements, facilitant l'analyse globale des ventes, des
comportements d'achat et des performances financières.
Utilisation Potentielle
PARTIE VISUALISATION:

Cette partie vise à décrire la mise en œuvre d'une analyse sur un schéma en étoile à
travers l'utilisation d'un script Python intégrant diverses bibliothèques.

● Analyse et Visualisation:

Pour faciliter l'exploration des données du schéma en étoile, un script Python a été
élaboré. Ce script utilise Pandas pour la manipulation des données, cx_Oracle pour se
connecter à la base de données, Dash pour la création d'un tableau de bord interactif
et Plotly pour la visualisation des données extraites.

● Connexion à la Base de Données :

Le script se connecte à la base de données en utilisant SQLAlchemy pour


récupérer les données nécessaires à partir des tables de dimension et de la
table de faits.

● Tableaux de Bord :

Le tableau de bord interactif créé avec Dash présente plusieurs visualisations


clés :
● Graphique à barres illustrant le montant total par catégorie de produit et par
genre.
● Visualisation des ventes totales par ville et mode de paiement.
● Classement des produits les plus vendus.
● Analyse de la moyenne des montants de paiement par méthode de
paiement.
● Représentation graphique de la distribution des montants de paiement par
méthode (Violin Plot).

● Cohérence et Interprétation:

Graphique Total du Montant par Catégorie de Produit et par Genre:


Ce graphique offre un aperçu du montant total des ventes par catégorie de produit,
en mettant en évidence la répartition entre les genres. Il permet de comprendre
quelles catégories de produits ont généré les revenus les plus élevés et comment
cette répartition varie en fonction du genre des clients.

Visualisation des Ventes Totales par Ville et Mode de Paiement:

Cette représentation graphique met en évidence la corrélation entre les ventes


totales réalisées dans différentes villes et les modes de paiement utilisés. Elle peut
aider à identifier les villes où certaines méthodes de paiement sont plus populaires,
ainsi que les variations de chiffre d'affaires associées à ces différences géographiques.

Classement des Produits les Plus Vendus:

Ce graphique présente les produits les plus vendus en termes de quantité,


fournissant ainsi une vision claire des articles populaires ou à forte demande. Il
permet de distinguer les produits qui contribuent le plus aux ventes globales, offrant
des indications cruciales pour les stratégies de gestion des stocks ou pour promouvoir
certains produits.

Analyse de la Moyenne des Montants de Paiement par Méthode de Paiement:

Cette visualisation présente la moyenne des montants de paiement pour chaque


méthode de paiement utilisée. Elle permet de comparer les différentes méthodes de
paiement et de déterminer lesquelles ont tendance à être associées à des montants
de paiement plus élevés. Cela peut influencer les décisions commerciales concernant
les options de paiement à privilégier ou à promouvoir.

Distribution des Montants de Paiement par Méthode - Violin Plot:

Ce graphique en violon montre la distribution des montants de paiement pour


chaque méthode de paiement. Il offre une vue détaillée des écarts, des tendances
centrales et des valeurs aberrantes pour chaque méthode.

Pair Plot - Exploration des Relations entre Variables Numériques :


Ce graphique montre une matrice de nuages de points (scatter plots) pour explorer
les relations entre plusieurs variables numériques telles que le montant étendu, le
prix, la quantité en stock et le montant du paiement. Il permet de rechercher des
tendances, des corrélations ou des schémas potentiels entre ces variables.
FacetGrid - Ventes Totales par Ville et Méthode de Paiement :
Ce graphique utilise la fonction de facettes pour présenter plusieurs graphiques en
barres, un pour chaque ville, montrant les ventes totales en fonction des différentes
méthodes de paiement. Il offre une comparaison visuelle claire des ventes réalisées
dans chaque ville, permettant d'analyser les préférences de paiement spécifiques à
chaque région.

Box Plot - Montant Total par Catégorie de Produit et Genre (Graphique en Boîte) :

Ce graphique en boîte met en évidence la répartition du montant total des ventes en


fonction de la catégorie de produit et du genre des clients. Il fournit des informations
sur la dispersion, la médiane, les quartiles et les valeurs aberrantes éventuelles pour
ces catégories et genres. Il permet de comparer la variation des montants entre
différentes catégories de produits pour chaque genre.

Vous aimerez peut-être aussi