Vous êtes sur la page 1sur 36

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

Vous aimerez peut-être aussi