Denormalisasi Data

Transformasi dan Analisis Data dengan Microsoft Fabric

Luis Silva

Solution Architect - Data & AI

Apa itu Normalisasi?

  • Mengatur data untuk mengurangi redundansi dan meningkatkan integritas
  • Berdasarkan prinsip tahun 1970 oleh ilmuwan komputer Tedd Codd, pencipta model relasional
  • Third Normal Form (3NF): Atribut non-kunci hanya bergantung pada kunci utama
Transformasi dan Analisis Data dengan Microsoft Fabric

Apa itu Normalisasi?

  • Normalisasi dicapai dengan menggunakan kunci dan tabel baru untuk mengganti atribut yang dapat menimbulkan redundansi data.

 

Diagram yang menggambarkan pemisahan satu tabel menjadi tiga untuk mengurangi redundansi

Transformasi dan Analisis Data dengan Microsoft Fabric

Contoh normalisasi

Tabel sampel berisi judul video game serta penerbit dan genre. Contoh baris: Judul Gran Turismo, Penerbit Sony, genre Racing

  • Banyak entri teks berulang untuk nilai publisher dan genre.
Transformasi dan Analisis Data dengan Microsoft Fabric

Contoh normalisasi

Tabel sampel berisi judul video game serta penerbit dan genre. Deskripsi teks untuk penerbit dan genre dipindah ke tabel terpisah, dan entri teks di tabel games diganti dengan ID numerik yang mereferensikan tabel master publishers dan genres

  • Entri teks untuk nilai publisher dan genre kini hanya muncul sekali.
  • Kunci numerik yang menggantikan publisher dan genre di tabel Games lebih hemat ruang
Transformasi dan Analisis Data dengan Microsoft Fabric

Denormalisasi

  • Denormalisasi memakai redundansi untuk meratakan model data; kebalikan dari normalisasi
  • Denormalisasi menghasilkan lebih sedikit tabel dengan biaya redundansi yang lebih tinggi

Diagram yang menggambarkan penggabungan beberapa tabel menjadi satu

Transformasi dan Analisis Data dengan Microsoft Fabric

Kapan sebaiknya gunakan Normalisasi?

  • Sistem transaksional OLTP

    • Dioptimalkan untuk penulisan data (insert, update, delete individu)
    • Menjaga integritas data
  • Tabel fakta

    • Jutaan baris
    • Mengurangi ruang penyimpanan
    • Membuat model lebih mudah dipahami
    • Dasar skema bintang

 

Diagram skema bintang, menyorot tabel fakta

Transformasi dan Analisis Data dengan Microsoft Fabric

Kapan sebaiknya gunakan Denormalisasi?

  • Tabel dimensi
    • Umumnya jauh lebih kecil daripada tabel fakta
    • Redundansi = Lebih sedikit join = Kueri lebih cepat
    • Kinerja kueri yang lebih baik melebihi biaya penyimpanan data redundan
    • Skema bintang lebih sederhana daripada skema snowflake

 

Diagram skema bintang, menyorot tabel dimensi

Transformasi dan Analisis Data dengan Microsoft Fabric

Menerapkan denormalisasi

 

 

Ikon untuk tiga alat: SQL, Spark, dan Dataflows

Transformasi dan Analisis Data dengan Microsoft Fabric

Menerapkan denormalisasi dengan SQL

  • Pernyataan 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
Transformasi dan Analisis Data dengan Microsoft Fabric

Menerapkan denormalisasi dengan Spark

  • DataFrame join( ) dan 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()
Transformasi dan Analisis Data dengan Microsoft Fabric

Menerapkan denormalisasi dengan Dataflows

  • Gunakan kueri untuk memuat data
  • Gunakan transformasi Merge queries atau Merge queries as new untuk menggabungkan kueri

Tangkapan layar Dataflow yang memakai Merge queries as new untuk menggabungkan kueri videogames, genres, dan publishers

Transformasi dan Analisis Data dengan Microsoft Fabric

Ayo berlatih!

Transformasi dan Analisis Data dengan Microsoft Fabric

Preparing Video For Download...