Denormalizzazione dei dati

Trasforma e analizza i dati con Microsoft Fabric

Luis Silva

Solution Architect - Data & AI

Cos’è la Normalizzazione?

  • Organizza i dati per ridurre la ridondanza e aumentare l’integrità
  • Basata sui principi del 1970 di Tedd Codd, inventore del modello relazionale
  • Terza Forma Normale (3NF): gli attributi non-chiave dipendono solo dalla chiave primaria
Trasforma e analizza i dati con Microsoft Fabric

Cos’è la Normalizzazione?

  • La normalizzazione usa chiavi e nuove tabelle per sostituire attributi che altrimenti creerebbero ridondanza.

 

Diagramma che illustra la suddivisione di una tabella in tre per ridurre la ridondanza

Trasforma e analizza i dati con Microsoft Fabric

Esempio di normalizzazione

Tabella di esempio con titoli di videogiochi, editori e generi. Riga esempio: Titolo Gran Turismo, Editore Sony, Genere Racing

  • Molte voci testuali duplicate per i valori di publisher e genre.
Trasforma e analizza i dati con Microsoft Fabric

Esempio di normalizzazione

Tabella di esempio con titoli di videogiochi, editori e generi. Le descrizioni testuali di editori e generi sono state spostate in tabelle separate e nel Games table i testi sono stati sostituiti da ID numerici che le referenziano

  • Le voci testuali per publisher e genre ora compaiono una sola volta.
  • Le chiavi numeriche che sostituiscono publisher e genre nella tabella Games occupano meno spazio
Trasforma e analizza i dati con Microsoft Fabric

Denormalizzazione

  • La denormalizzazione usa la ridondanza per appiattire il modello dati; è l’opposto della normalizzazione
  • Porta a meno tabelle a scapito di maggiore ridondanza

Diagramma che illustra l’unione di più tabelle in una

Trasforma e analizza i dati con Microsoft Fabric

Quando usare la Normalizzazione?

  • Sistemi transazionali OLTP

    • Ottimizzati per scritture (insert, update, delete singoli)
    • Garantire l’integrità dei dati
  • Tabelle dei fatti

    • Milioni di righe
    • Ridurre lo spazio di archiviazione
    • Modello più semplice da capire
    • Base per lo schema a stella

 

Diagramma di uno schema a stella con la tabella dei fatti evidenziata

Trasforma e analizza i dati con Microsoft Fabric

Quando usare la Denormalizzazione?

  • Tabelle di dimensione
    • In genere molto più piccole delle tabelle dei fatti
    • Ridondanza = Meno join = Query più veloci
    • Le prestazioni migliorate superano il costo di archiviare dati ridondanti
    • Lo schema a stella è più semplice del fiocco di neve

 

Diagramma di uno schema a stella con le tabelle di dimensione evidenziate

Trasforma e analizza i dati con Microsoft Fabric

Implementare la denormalizzazione

 

 

Icone di tre strumenti: SQL, Spark e Dataflows

Trasforma e analizza i dati con Microsoft Fabric

Denormalizzazione con SQL

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

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
Trasforma e analizza i dati con Microsoft Fabric

Denormalizzazione con Spark

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

videogames1DF = videogamesDF.join(genresDF, ["genre_id"])
videogamesdenormDF = videogames1DF.join(publishersDF, ["publisher_id"])
videogamesdenormDF.select("game_id", "title", "genre_id", "publisher_id").show()
Trasforma e analizza i dati con Microsoft Fabric

Denormalizzazione con Dataflows

  • Usa query per caricare i dati
  • Usa le trasformazioni Unisci query o Unisci query come nuova per unire le query

Schermata di un Dataflow che usa “Unisci query come nuova” per unire le query videogames, genres e publishers

Trasforma e analizza i dati con Microsoft Fabric

Passiamo alla pratica!

Trasforma e analizza i dati con Microsoft Fabric

Preparing Video For Download...