Clément PRUVOST – Data Analyst
Voyage au bout de la Data: Partie I
Se former au
SQL
2023
Des opportunités exceptionnelles
« On est parti dans la vie avec les conseils des parents. Ils
n’ont pas tenu devant l’existence. »
Guignol’s Band – L.F Céline.
Les métiers qu’ont exercé nos parents diffèrent des nôtres. Ils
nous poussent inexorablement vers la technique pour
gagner en productivité. Est-ce une mauvaise chose ? Non.
De plus en plus
d’entreprises adoptent
une approche « Data
driven » dans leurs prises
de décisions.
En conséquence, la
demande en Data
Analyst explose les
prévisions. Pourquoi ne
pas se former ?
Aborder la Data sereinement
Cependant, le monde de la Data n’est pas si simple à
aborder: on s’y perd dans de nombreux concepts. Notre
porte d’entrée, ce sera celle du Data Analyst. Vous tracerez
votre route ensuite comme il vous entendra.
Data Analyst: Exploite les bases de données pour extraire les
informations clés pour le métier. Est amené à la réalisation de
reporting. Doit aussi parfois travailler à la « propreté » de la
donnée.
Compétences: SQL & Utilisation d’un ETL, Data visualisation
(Power BI, Tableau, Excel).
Data Engineer: Collecte et met à disposition les données pour
une entreprise. Travaille avec le Data Architect pour assurer la
cohérence des tables au sein du système informationnel.
Compétences: SQL, ETL, Automatisation de flux, Spark.
Data Scientist: Mise au point d’algorithmes et de modèles de
données permettant d’effectuer des prévisions et/ou générer
des outputs à partir de ces dernières.
Compétences: Mathématiques (statistiques avancées),
programmation (Python), Machine learning…
Ma démarche
Théorique: Comprendre les
concepts d’enregistrements,
de tables, de modèle
relationnel. Aujourd’hui !
SQL: Apprendre les bases du
langage utilisé pour
l’extraction de données.
Du SQL au reporting: Intégrer
des requêtes dans un rapport.
Prochainement
Power BI: Fonctions avancées.
Clément PRUVOST – Data Analyst
Se former au SQL – Chapitre 1
Bases
théoriques
2023
1. « Les enfants, à table…! »
Je ne vous apprends rien quand je vous dis qu’Excel
est un tableur, n’est-ce pas ?
Chaque onglet constitue une table
en deux dimensions, qu’il est
d’ailleurs possible d’extraire via
Power Query.
Par conséquent, vous avez déjà
touché au moins une fois à une
table dans votre vie. C’est rassurant,
non?
Une table est un ensemble de données organisées
sous forme de tableau. Chaque colonne correspond
à une catégorie d’information. Un format est défini
pour chaque colonne (Texte, entier, nombre à virgule
flottante). Une colonne d’information contient la clé-
primaire.
2. A l’intérieur de ces tables, on trouve…
Les lignes qui composent la table sont appelés les
enregistrements (records).
Chaque enregistrement est identifiable par une
clé primaire: c’est une catégorie d’information
permettant d’identifier un enregistrement de façon
unique.
Exemple: Le Pokédex, dans Pokémon.
ID (Clé primaire) Nom Description
001 Bulbizarre Type plante.
004 Salamèche Type feu.
007 Carapuce Type eau.
La clé primaire est l’ID, permettant
d’identifier de façon unique un Pokémon.
3a. Relier les tables les unes aux autres
Les tables sont reliées les unes aux autres via une
clé étrangère. La clé étrangère d’une table est la clé
primaire d’une autre. Elle permet de réaliser la
jointure.
N
Client Exemple: Un client a plusieurs
ID_CLIENT portefeuilles, dans lesquels se
NOM trouvent plusieurs investissements.
PRENOM Ces investissements ont plusieurs
PROFIL_INVESTISSEUR performances.
Portefeuille Investissement N Performance
N
ID_PORTEFEUILLE N ID_INVEST
1 ID_PERFORMANCE
ID_CLIENT NOM_INVEST DATE
NOM_PORTEFEUILLE 1 CATEGORIE VALEUR_A_DATE
ID_PORTEFEUILLE ID_INVEST
1
3b. La cardinalité
La cardinalité compte le minimum et le maximum
de possibilités entre deux objets.
Exemple: Un client peut avoir N Portefeuilles.
N
Client
ID_CLIENT
NOM
Une performance n’est associée
PRENOM
qu’à un seul investissement.
PROFIL_INVESTISSEUR
Portefeuille Investissement N Performance
N
ID_PORTEFEUILLE N ID_INVEST
1 ID_PERFORMANCE
ID_CLIENT NOM_INVEST DATE
NOM_PORTEFEUILLE 1 CATEGORIE VALEUR_A_DATE
ID_PORTEFEUILLE ID_INVEST
1
3c. Table de faits, table de dimensions
Une table de faits est une table contenant de nombreux
enregistrements et les clés étrangères des dimensions par lesquelles
on l’analyse. On peut y faire des agrégations.
Une table de dimensions ne donne que des informations
supplémentaires à la table de faits permettant de l’analyser sous
d’autres angles.
N
Client
ID_CLIENT Les performances des
NOM investissements peuvent être
PRENOM analysées par investissement, par
PROFIL_INVESTISSEUR portefeuille, par client.
Portefeuille Investissement N Performance
N
ID_PORTEFEUILLE N ID_INVEST
1 ID_PERFORMANCE
ID_CLIENT NOM_INVEST DATE
NOM_PORTEFEUILLE 1 CATEGORIE VALEUR_A_DATE
ID_PORTEFEUILLE ID_INVEST
1
Pistes pour aller plus loin sur la théorie:
Bien entendu, nous n’avons que résumé l’essentiel.
Je vous invite donc à réaliser plusieurs recherches
pour comprendre les concepts:
- Les propriétés ACID,
- Le modèle étoile (et distinguer table de faits et
dimensions).
Des références intéressantes:
Nom du cours:
Bien choisir sa base données.
Nom du cours:
Modélisez vos bases de données.
On continue ?
Clément PRUVOST – Data Analyst
Se former au SQL – Chapitre 2
B.A-BA du
Langage SQL
2023
Avant toute chose:
Nous garderons le modèle
relationnel suivant pour l’ensemble
des exemples.
N
Client
ID_CLIENT
NOM
PRENOM
PROFIL_INVESTISSEUR
Portefeuille Investissement N Performance
N
ID_PORTEFEUILLE N ID_INVEST
1 ID_PERFORMANCE
ID_CLIENT NOM_INVEST DATE
NOM_PORTEFEUILLE 1 CATEGORIE VALEUR_A_DATE
ID_PORTEFEUILLE ID_INVEST
1
Terminologie I
SQL
SQL = Structured Query Language.
C’est un langage informatique
permettant d’exploiter et de
manipuler les données d’une base
de données relationnelle.
Il date de 1974. Il n’est pas tout
jeune. Et pourtant, il n’a pas pris une
ride.
Terminologie II
ETL
ETL = Extract, Transform, Load
Logiciel permettant d’extraire d’une
base de données des informations,
de les transformer puis ensuite de
les charger dans un Datalake.
Exemples: Colle AWS, Talend.
Terminologie III
Editeur de requêtes
Permet de réaliser les requêtes sur
une base de données et de les
tester. C’est sur quoi vous
travaillerez principalement.
Exemples: Teradata SQL Assistant,
SQL Server Management, TOAD.
Paré à affronter votre destinée ?
Clément PRUVOST – Data Analyst
Se former au SQL – Chapitre 2 - A
Select
& Where
2023
L’instruction SELECT
L’instruction SELECT permet
sélectionner des colonnes d’une table.
Exemple:
SELECT NOM,PRENOM (les colonnes)
FROM
CLIENT (la table)
Vous pouvez aussi sélectionner toutes les
colonnes de cette façon:
SELECT *
FROM
CLIENT
La clause WHERE
La clause WHERE permet d’ajouter
une condition.
Exemple 1: Tous les clients s’appelant « Clément »
SELECT NOM,PRENOM (les colonnes)
FROM CLIENT
WHERE
PRENOM =‘Clément’
Exemple 2 : Tous les clients dont le nom commence par
‘DUP’.
SELECT NOM,PRENOM (les colonnes)
FROM CLIENT
WHERE
NOM like ‘DUP%’
Bonus: ‘Like’ permet de donner en condition qu’une chaîne de caractères commence,
termine ou contient des éléments précis. Le % définit le reste variable de la chaîne de
caractère.
Clément PRUVOST – Data Analyst
Se former au SQL – Chapitre 2 - B
Fonctions
d’Agrégation
2023
C’est quoi une fonction d’agrégation ?
Comme son nom l’indique, elle permet d’agréger
une valeur numérique selon une catégorie
d’information.
Il est nécessaire de préciser cette catégorie à la
fin de la requête, via l’instruction GROUP BY.
SUM()
Comme son nom l’indique, elle
permet de faire la somme des valeurs.
Si je veux obtenir la somme des performances
par ID_INVEST.
SELECT ID_INVEST, SUM(VALEUR_A_DATE)
FROM
PERFORMANCES
GROUP BY ID_INVEST
COUNT()
Permet de compter les occurrences
d’apparition d’une catégorie.
Si je veux obtenir le NOMBRE de performances
par ID_INVEST.
SELECT ID_INVEST, COUNT(VALEUR_A_DATE)
FROM
PERFORMANCES
GROUP BY ID_INVEST
Clément PRUVOST – Data Analyst
Se former au SQL – Chapitre 2 - C
Jointures
2023
2 jointures à retenir pour aujourd’hui:
LEFT JOIN: Permet d’obtenir
d’une TABLE B les éléments
qui sont présents dans la
TABLE A.
INNER JOIN: Permet de ne
garder d’une TABLE A que
les éléments qui sont
présents dans la table B.
LEFT JOIN: Exemple de structure
Je veux obtenir la liste
d’investissements par portefeuille, en
utilisant la clé étrangère de
l’ID_PORTEFEUILLE.
J’utilise l’ALIAS PORT pour
PORTEFEUILE,
L’ALIAS INV pour INVESTISSEMENT.
SELECT PORT.NOM_PORTEFEUILLE,
INVEST.NOM_INVEST
FROM
PORTEFEUILLE PORT
LEFT JOIN INVESTISSEMENT INV on
INV.ID_PORTEFEUILLE=PORT.ID_PORTEFEUILLE
LEFT JOIN: Exemple de structure
SELECT PORT.NOM_PORTEFEUILLE,
INVEST.NOM_INVEST
FROM
PORTEFEUILLE PORT
LEFT JOIN INVESTISSEMENT INV on
INV.ID_PORTEFEUILLE=PORT.ID_PORTEFEUILLE
• L’ALIAS(INV, PORT) permet d’identifier la
table, et ses colonnes en découlant. On
ajoute un point après l’alias pour
désigner une colonne.
• ON permet de réaliser la jointure avec la
condition qui suit.
Clément PRUVOST – Data Analyst
Se former au SQL – Chapitre 2 - D
Création
d’une requête
complexe
2023
Allez-y !
Je veux obtenir par client la
valeur agrégée des
investissements.
Solution ?
Solution:
Select cli.nom_client, sum(perf.valeur_a_date)
From
PERFORMANCES PERF
LEFT JOIN INVESTISSEMENT INV ON
PERF.ID_INVEST=INV.ID_INVEST
LEFT JOIN PORTEFEUILLE PORT ON
PORT.ID_PORTEFEUILLE=INV.ID_PORTEFEUILLE
LEFT JOIN CLIENT CLI on CLI.ID_CLIENT=PORT.ID_CLIENT
GROUP BY 1
Pour s’entraîner et aller plus loin :
DATACAMP
Chaque mois, DATACAMP fait des
promotions. Datacamp permet de
s’entraîner directement sur des jeux
de données, via l’interface. Rien n’est
à installer.
Un essai gratuit est disponible.
Clément PRUVOST – Data Analyst
Voyage au bout de la Data: Partie I
Prochainement…
2023
Prochainement
Théorique: Comprendre les
concepts d’enregistrements,
Nous de
aborderons les deux
tables, de parties
modèle restantes pour
Aujourd’hui !
relationnel.
que vous ayez une base des outils de Data
visualisation à disposition. Nous prendrons
SQL: Apprendre les bases du
l’exemple
langage de Power
utilisé pour BI.
l’extraction de données.
Du SQL au reporting: Intégrer
des requêtes dans un rapport.
Prochainement
Power BI: Fonctions avancées.
Clément PRUVOST – Data Analyst
Merci pour
votre lecture.
2023