Dénormalisation des données

Transformer et analyser des données avec Microsoft Fabric

Luis Silva

Solution Architect - Data & AI

Qu'est-ce que la normalisation ?

  • Organiser les données pour réduire la redondance et accroître l'intégrité
  • Basée sur des principes établis en 1970 par l'informaticien Tedd Codd, inventeur du modèle relationnel
  • Troisième forme normale (3NF) : les attributs non clés dépendent seulement de la clé primaire
Transformer et analyser des données avec Microsoft Fabric

Qu'est-ce que la normalisation ?

  • On normalise en utilisant des clés et de nouvelles tables pour remplacer des attributs qui entraîneraient autrement de la redondance.

 

Schéma illustrant la division d'une table en trois pour réduire la redondance

Transformer et analyser des données avec Microsoft Fabric

Exemple de normalisation

Table d'exemple contenant des titres de jeux vidéo avec leurs éditeurs et genres. Ligne d'exemple : Titre Gran Turismo, Éditeur Sony, Genre Course

  • Beaucoup d'entrées textuelles répétées pour les valeurs de publisher et genre.
Transformer et analyser des données avec Microsoft Fabric

Exemple de normalisation

Table d'exemple avec titres de jeux vidéo, éditeurs et genres. Les descriptions texte des éditeurs et genres ont été déplacées dans des tables distinctes et remplacées par des identifiants numériques référant les tables maîtres

  • Les entrées texte pour publisher et genre n'apparaissent plus qu'une seule fois.
  • Des clés numériques remplacent publisher et genre dans la table Games et occupent moins d'espace
Transformer et analyser des données avec Microsoft Fabric

Dénormalisation

  • La dénormalisation utilise la redondance pour aplatir le modèle de données ; c'est l'inverse de la normalisation
  • Elle mène à moins de tables, au prix d'une redondance accrue

Schéma illustrant la fusion de plusieurs tables en une seule

Transformer et analyser des données avec Microsoft Fabric

Quand utiliser la normalisation ?

  • Systèmes transactionnels OLTP

    • Optimiser les écritures (insertions, mises à jour, suppressions)
    • Assurer l'intégrité des données
  • Tables de faits

    • Des millions de lignes
    • Réduire l'espace de stockage
    • Modèle plus simple à comprendre
    • Base du schéma en étoile

 

Schéma en étoile mettant en évidence la table de faits

Transformer et analyser des données avec Microsoft Fabric

Quand utiliser la dénormalisation ?

  • Tables de dimensions
    • Généralement beaucoup plus petites que les tables de faits
    • Redondance = Moins de jointures = Requêtes plus rapides
    • Le gain de performance compense le coût de stocker des données redondantes
    • Le schéma en étoile est plus simple que le schéma en flocon

 

Schéma en étoile mettant en évidence les tables de dimensions

Transformer et analyser des données avec Microsoft Fabric

Mettre en œuvre la dénormalisation

 

 

Icônes représentant trois outils : SQL, Spark et Dataflows

Transformer et analyser des données avec Microsoft Fabric

Mettre en œuvre la dénormalisation avec SQL

  • Instruction SELECT + JOIN
-- [dim_videogames] : table Videogames
-- [dim_genres] : table Genres
-- [dim_publishers] : table Publishers

SELECT game_id, title, gen.genre, pub.publisher
FROM dim_videogames_norm vidg
JOIN dim_genres gen
  ON vidg.genre_id = gen.genre_id
JOIN dim_publishers pub
  ON vidg.publisher_id = pub.publisher_id
Transformer et analyser des données avec Microsoft Fabric

Mettre en œuvre la dénormalisation avec Spark

  • DataFrame join( ) et select( )
# [videogamesDF] : DataFrame Videogames
# [genresDF] : DataFrame Genres
# [publishersDF] : DataFrame Publishers

videogames1DF = videogamesDF.join(genresDF, ["genre_id"])
videogamesdenormDF = videogames1DF.join(publishersDF, ["publisher_id"])
videogamesdenormDF.select("game_id", "title", "genre_id", "publisher_id").show()
Transformer et analyser des données avec Microsoft Fabric

Mettre en œuvre la dénormalisation avec Dataflows

  • Utiliser des requêtes pour charger les données
  • Utiliser les transformations Fusionner des requêtes ou Fusionner des requêtes comme nouvelle pour joindre les requêtes

Capture d'écran d'un Dataflow qui utilise Fusionner des requêtes comme nouvelle pour joindre les requêtes videogames, genres et publishers

Transformer et analyser des données avec Microsoft Fabric

Passons à la pratique !

Transformer et analyser des données avec Microsoft Fabric

Preparing Video For Download...