Académique Documents
Professionnel Documents
Culture Documents
Economie
&
Gestion
Bases de données
Bibliothèque Pandas
P a g e 4 | 28
Le club va participer à une compétition, seulement les adhérents nés en 2002 ou ayant
une ancienneté d’au moins de quatre ans vont y participer.
Problème d’espace de
Perte du temps et risque Problème d’ambiguïté de la
stockage à cause de la
d’erreur lors de la correction recherche
duplication des données
Relation
P a g e 5 | 28
Définitions :
Une Base de Données est un ensemble structuré de données enregistrées sur des mémoires
secondaires créé et tenu à jour pour les besoins d’un ensemble d’utilisateurs.
C’est l’outil permettant de créer des bases de données, mettre à jour les données de la
base (ajout, modification, suppression), de rechercher des données, et de les imprimer.
Vocabulaire :
Lignes(enregistrements)
Evaluation :
P a g e 6 | 28
Réalisation d’une base de données :
Soit la base de données simplifiée intitulée "Gestion_Notes" décrite
par le schéma textuel suivant :
Eleve ( ID_Eleve, nom, prenom, DateNaissance, classe )
Matiere ( ID_Matiere, Libelle_Matiere, Coefficient)
Notes ( Id_Eleve, ID_Matiere, Note )
Définitions :
Une table est une collection de données relatives à un sujet spécifique du monde réel.
Ces données sont organisées en colonnes (champs, attributs) et en lignes
(enregistrements).
Constatations
On remarque que les données d’une colonne ont le même type et la même signification :
La colonne ID_Eleve contient des données de la même forme texte de 4 caractères.
La colonne Date_Naissance contient des données de type date avec la même forme
jj/mm/aaaa.
Chaque table contient un certain nombre de champs appelés aussi attributs. Ces
champs représentent les caractéristiques des éléments qu’on souhaite stocker dans la
table. Par exemple, dans la table Eleve, on trouve ID_Eleve, Nom, Prenom,
Date_Naissance, Classe.
Lors de la création d’un champ, on
doit spécifier son nom, son type et ses
propriétés.
Dans la table Eleve, Le champ ID_Eleve identifie d’une façon unique un élève : 2
élèves peuvent avoir le même nom, le même prénom, la même date de naissance mais
2 élèves ne peuvent pas avoir le même ID_Eleve.
Dans ce cas, ce champ représente la clé primaire de la table Eleve. D’où, toute table
d’une base donnée doit avoir une clé primaire.
En pratique, une clé primaire est représentée par le symbole
P a g e 7 | 28
Création d’une table :
On se propose de créer la table Eleve de la base de données Gestion_Notes avec les
propriétés suivantes :
Reconnaitre les menus et les commandes nécessaires pour créer une table.
...............................................................................................................
...............................................................................................................
...............................................................................................................
Matiere
Champ Type Propriété
ID_Matiere Texte Taille=4
Libelle_Matiere Texte Taille=30
Coefficient Numérique Taille=Réel simple
Notes
Champ Type Propriété
ID_Eleve Texte Taille=4
ID_Matiere Texte Taille=4
Note Numérique Taille=Réel simple
Remarque
Une clé étrangère est un attribut ou un groupe d'attributs d'une table T1 devant
apparaître comme clé primaire dans une autre table T2.
P a g e 8 | 28
Relations entre les tables :
Nous allons prendre 3 exemples pour mieux comprendre le concept de relations.
À gauche et à droite nous retrouvons les tables avec, en titre, leur nom suivi de leurs
champs.
Au centre, nous utilisons un verbe qui peut être utilisé dans la relation entre les 2 tables.
Dans cet exemple, on peut dire qu’un Individu possède une seule Carte d’identité.
Dans le sens inverse, une Carte d’identité ne peut être possédée que par un seul Individu.
La relation est donc 1 à 1.
Ici, on peut dire qu’un Client peut recevoir plusieurs Factures. À l’inverse, une
facture ne peut être reçue que par un seul Client. La relation est donc 1 à plusieurs.
Enfin, dans cet exemple, nous pourrons dire qu’un étudiant peut suivre plusieurs
Cours, mais aussi qu’un Cours peut être suivi par plusieurs étudiants.
La relation est donc plusieurs à plusieurs.
Maintenant, nous allons mettre en application ce que nous venons de voir pour créer les
relations entre les tables de notre base de données.
Une note, dans une matière, n’est
affectée qu’à un seul élève
Un élève peut avoir plusieurs notes
Une note est associée à une matière
Plusieurs notes peuvent affectées à une
matière pour plusieurs élèves.
P a g e 9 | 28
Remarque
Reconnaitre les menus et les commandes nécessaires pour créer une relation.
...............................................................................................................
...............................................................................................................
...............................................................................................................
- Appliquer l'intégrité référentielle permet de vérifier que les champs liés dans les
deux tables sont parfaitement identiques par leur forme (type de données) et leur
contenu.
- Mettre à jour en cascade les champs correspondants permet la mise à jour
automatique dans la table liée des changements de contenu de la clé primaire dans
la table source.
- Effacer en cascade les enregistrements correspondants permet de supprimer
automatiquement dans la table liée les enregistrements effacés dans la table
source.
P a g e 10 | 28
Les requêtes :
Soit la base de données « gestion_notes_élèves »
Matière Elève
Note
Le directeur
Imprimer-moi la liste des élèves qui ont des notes en « informatique »>17
- Une requête est un moyen d’interroger une base de données (sélectionner, modifier,
Supprimer ou ajouter des données).
- Une fois la requête exécutée, le résultat peut être utilisé dans d’autres structures et
d’autres situations.
- Il existe plusieurs types de requêtes :
P a g e 11 | 28
Le directeur
R1 Afficher la liste des élèves (Nom, prénom)
Le directeur
R2 Afficher la liste des élèves de la classe « 4ECO1 »
Le directeur
R3 Afficher les matières (Libelle_matiere) dont le coefficient est >= 2
Le directeur
R4 Afficher la liste des élèves dont le nom commence par la lettre « B »
P a g e 12 | 28
Afficher les noms et les prénoms des élèves ayants une note supérieure à 15.
Afficher les noms et prénoms des élèves ayant une note supérieure à 17 en
« informatique ».
Afficher les élèves (nom, prénom) dont le nom est différent de « ben salem ».
Afficher les élèves (nom, prénom) dont le 2ème caractère du prénom est « a ».
Afficher les élèves (nom, prénom) dont l’avant dernier caractère du prénom est « i ».
Afficher les élèves (nom, prénom, date naissance) nés avant le 01/06/2003.
Afficher les élèves (nom, prénom, date naissance) nés avant avril 2003.
Afficher les élèves (nom, prénom, date naissance) qui ne sont pas nés pendant 2003.
P a g e 13 | 28
Afficher les élèves (nom, prénom, date naissance) nés entre 01/01/2003 et 01/05/2003.
Remarque
Toutes les requêtes crées précédemment sont des requêtes de ..........................
Supprimer les élèves de la classe « 4eco5 ».
Remarque
P a g e 14 | 28
Reconnaitre les menus et les commandes nécessaires pour créer cette requête.
...............................................................................................................
...............................................................................................................
...............................................................................................................
Remarque
Pour apparaitre la ligne Mise à jour, cliquer sur du menu Créer.
P a g e 15 | 28
Reporter de 3 jours tous les examens qui auront lieu à Nabeul.
Afficher les candidats (Nom, prénom, Date_nais) qui passeront un examen pour une
date donnée.
Afficher les candidats (Nom, prénom) qui passeront un examen pour un lieu donné.
P a g e 16 | 28
Afin de gérer les produits livrés à ces clients, une société utilise la
base de données simplifiée intitulée "Gestioncommerciale" décrite par
le schéma textuel suivant :
P a g e 17 | 28
Liste des commandes Détail Commande
CodeClient NummComm DateComm NummComm CodeProduit QteComm
Thom 1 10-01-2022 7 C12 10
UNI 2 26-01-2022 1 P75 8
MAN 3 13-02-2022 1 C59 15
RAT 4 30-03-2022 2 M32 13
MAN 5 15-05-2022 2 R11 3
UNI 6 01-06-2022 3 R11 5
MAN 7 10-06-2022
4 P75 12
6 C59 20
6 M32 10
6 P75 9
Réaliser les requêtes suivantes :
1. Liste des clients triée par ville.
2. Liste des clients à Sousse (masquer la ville).
3. Liste des clients hors Sousse.
4. Liste des clients sur Sousse dont la raison sociale commence par M.
5. Liste des clients sur Mahdia ou dont la raison sociale commence par M.
6. Liste des clients dans la ville de Mahdia ou Sousse.
7. Liste des commandes par client triée par Raison Sociale.
8. Liste des commandes des clients habitant Sousse.
9. Liste des commandes à partir du 06/03/2022.
10. Liste des commandes de la dernière semaine du mois de Mars.
11. Calculer le Prix HT par commande sachant que : Prix HT = PU * Qté
12. Nbre de Clients par ville (la fonction Compte).
13. Nbre de clients sur Sousse.
14. Nbre de commande par date.
15. Total HT par commande (la fonction Somme).
16. Moyenne des Prix HT par Commande.
17. Par client et par commande, calculer la moyenne des Prix HT.
18. Nbre de commandes par Client.
19. Total HT de toutes les commandes par client.
20. Total HT de toutes les commandes par date.
21. Le jour où la société à réaliser le maximum des commandes.
22. Le jour où la société à réaliser le minimum des commandes
23. Le meilleur client : celui qui a le plus grand total des commandes.
24. Le mauvais client.
P a g e 18 | 28
Analyse des données
P a g e 19 | 28
Mise en situation
600
600
500
500
400
Chambre à Coucher
Zouhour
Opéra
Clara
Dina
Mélina
Dorsaf
P a g e 20 | 28
% ventes
Living
17% chambre à coucher
23%
bureaux
8%
chambre d'enfants
Cuisine 14%
12%
Salon
26%
Définition
L’analyse de données (Data Analysis),, est de plus en plus utilisée dans les entreprises
de tous les secteurs:
Grâce aux technologies du numérique, les entreprises ont désormais accès à des vastes
volumes de données. Comprendre et analyser ces informations est un précieux atout.
Pourquoi ?
Extraire des informations exploitables pour prendre de meilleures décisions au sein
d’une entreprise.
Il s’agit en réalité de se baser sur le passé et le présent afin de prendre les bonnes
décisions pour le futur.
Ceci peut se révéler très utile pour la croissance d’une entreprise, pour développer de
nouveaux produits ou pour trouver des solutions aux problèmes.
La bibliothèque Pandas
La bibliothèque Pandas est spécifiquement conçue pour la manipulation et l’analyse de
données en langage Python. Elle est à la fois performante, flexible et simple
d’utilisation.
P a g e 21 | 28
Le nom « Pandas » est en fait la contraction du terme « Panel Data » désignant les
ensembles de données incluant des observations sur de multiples périodes temporelles.
Cette bibliothèque a été créée comme un outil pour l’analyse en Python.
Le fonctionnement de Pandas repose sur les « DataFrames » : des tableaux de données
en deux dimensions.
P a g e 22 | 28
Soit le tableau suivant représentant des smartphones d’une société MyPhone:
import pandas as ps
df = ps.read_csv (”tel.csv”,sep=”;”)
print (df )
Commande Rôle
ps.read_csv ( ) ..............................................................................................................................
P a g e 23 | 28
IdDataFrame.shape ou bien print ( IdDataFrame.shape )
IdDataFrame.size ou bien print ( IdDataFrame.size )
IdDataFrame.info ( ) ou bien print ( IdDataFrame.info ( ) )
IdDataFrame.describe ( ) ou bien print ( IdDataFrame.describe ( ) )
Manipulation d’un IdDataFrame.columns ou bien print ( IdDataFrame.columns )
DataFrame
IdDataFrame.rename ( columns = { "NomColonne1" : "NouveauNomColonne1", "NomColonne2" : "NouveauNomColonne2", … } , inplace= True )
Resultat = IdDataFrame.drop ( columns = [ "NomColonne1",…,"NomColonneN" ] )
Resultat = IdDataFrame.drop ( [ Indice_Ligne ] )
Resultat = IdDataFrame.drop ( IdDataFrame.index [ N° LigneInitial : N° LigneFinal ] )
P a g e 24 | 28
IdDataFrame ou bien print ( IdDataFrame )
IdDataFrame [ "NomColonne" ] ou bien print ( IdDataFrame [ "NomColonne" ] )
IdDataFrame [ [ "NomColonne1" , "NomColonne2" , …] ] ou bien print ( IdDataFrame [ [ "NomColonne1" , "NomColonne2" , …] ] )
Affichage des IdDataFrame [ "NomColonne" ] [ N° LigneInitial : N° LigneFinal ] ou bien print (IdDataFrame [ "NomColonne" ] [ N° LigneInitial : N° LigneFinal ])
données IdDataFrame.head ( n ) ou bien print ( IdDataFrame.head ( n ) )
d’un DataFrame IdDataFrame.tail ( n ) ou bien print ( IdDataFrame.tail ( n ) )
IdDataFrame.iloc [ N° Ligne ] ou bien print ( IdDataFrame.iloc [ N° Ligne ] )
IdDataFrame.iloc [ N° LigneInitial : N° LigneFinal ] ou bien print ( IdDataFrame.iloc [ N° LigneInitial : N° LigneFinal ] )
IdDataFrame.iloc [ N° Ligne , N° Colonne ] ou bien print ( IdDataFrame.iloc [ N° Ligne , N° Colonne ] )
P a g e 25 | 28
IdDataFrame.loc [ N° ligne , "NomColonne" ] = Valeur (ou Formule)
Modification et ajout des données dans un Id_DataFrame.loc [ N° ligne ] = [ Liste_Valeur ]
DataFrame Id_DataFrame [ "NomColonne" ] = Valeur (ou Formule)
Resultat = Id_DataFrame.drop_duplicates ( )
Nettoyage d’un DataFrame Resultat = Id_DataFrame.dropna ( )
Resultat = Id_DtaFrame.dropna ( axis = 1 )
P a g e 26 | 28
IdDataFrame [ IdDataFrame [ "NomColonne" ] OperateurComparaison Valeur ]
Affichage des données d’un DataFrame
selon une ou plusieurs conditions IdDataFrame [( IdDataFrame ["NomColonne"] OperateurComp Valeur) OperateurLogique (
IdDataFrame ["NomColonne"] OperateurComp Valeur )]
Tri des éléments d’un DataFrame_Trié = IdDataFrame.sort_values ( by = [ "NomColonne1" ,"NomColonne2" , …] , ascending = [ True/False ,
DataFrame True/False , … ] )
P a g e 27 | 28
import matplotlib.pyplot as alias_matplotlib
Création d’un IdDataFrame.plot.bar (x = "NomColonneAbscisse" , y = "NomColonneOrdonnée" , title = "TitreGraphique" , color = "CouleurGraphique" )
graphique IdDataFrame.plot.line (x = "NomColonneAbscisse" , y = "NomColonneOrdonnée" , title = "TitreGraphique" , color = "CouleurGraphique" )
alias_matplotlib.show ( )
P a g e 28 | 28