Veri Denormalizasyonu

Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Luis Silva

Solution Architect - Data & AI

Normalizasyon nedir?

  • Fazlalığı azaltmak ve bütünlüğü artırmak için veriyi düzenleme
  • 1970’te ilişkisel modeli icat eden bilgisayar bilimci Tedd Codd’un ilkelerine dayanır
  • Üçüncü Normal Form (3NF): Anahtar olmayan öznitelikler yalnızca birincil anahtara bağlıdır
Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Normalizasyon nedir?

  • Normalizasyon, fazlalığa yol açacak öznitelikleri anahtarlar ve yeni tablolarla değiştirme yoluyla sağlanır.

 

Fazlalığı azaltmak için bir tablonun üçe bölünmesi fikrini gösteren diyagram

Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Normalizasyon örneği

Video oyunu adları ile yayınevleri ve türlerini içeren örnek tablo. Örnek satır: Oyun adı Gran Turismo, Yayınevi Sony, Tür Yarış

  • publisher ve genre değerleri için çok sayıda yinelenen metin girişi vardır.
Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Normalizasyon örneği

Video oyunu adları ile yayınevleri ve türlerini içeren örnek tablo. Yayınevi ve tür açıklamaları ayrı tablolara taşınmış; oyunlar tablosundaki metin girişleri bu ana tabloları referans veren sayısal kimliklerle değiştirilmiştir

  • publisher ve genre değerlerine ait metin girişleri artık yalnızca bir kez görünür.
  • Games tablosunda publisher ve genre yerine sayısal anahtarlar daha az yer kaplar
Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Denormalizasyon

  • Denormalizasyon, modeli yassılaştırmak için fazlalık kullanır; normalizasyonun tersidir
  • Daha az tablo sağlar, ancak fazlalığı artırır

Birden çok tablonun tek tabloda birleştirilmesi fikrini gösteren diyagram

Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Normalizasyonu ne zaman kullanmalısınız?

  • OLTP işlem sistemleri

    • Veri yazmalarını optimize eder (tekil ekleme, güncelleme, silme)
    • Veri bütünlüğünü sağlar
  • Olgu (fact) tabloları

    • Milyonlarca satır
    • Depolama alanını azaltma
    • Modeli anlamayı kolaylaştırma
    • Yıldız şemanın temeli

 

Yıldız şemasının, olgu tablosunu vurgulayan diyagramı

Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Denormalizasyonu ne zaman kullanmalısınız?

  • Boyut (dimension) tabloları
    • Genelde olgu tablolarından çok daha küçüktür
    • Fazlalık = Daha az join = Daha hızlı sorgu
    • Yinelemeli verinin depolama maliyetine karşın sorgu performansı iyileşir
    • Yıldız şema, kar tanesi şemadan daha basittir

 

Yıldız şemasının, boyut tablolarını vurgulayan diyagramı

Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Denormalizasyonun uygulanması

 

 

Üç aracı temsil eden simgeler: SQL, Spark ve Dataflows

Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

SQL ile denormalizasyonun uygulanması

  • SELECT + JOIN ifadesi
-- [dim_videogames]: Videogames tablosu
-- [dim_genres]: Genres tablosu
-- [dim_publishers]: Publishers tablosu

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
Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Spark ile denormalizasyonun uygulanması

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

videogames1DF = videogamesDF.join(genresDF, ["genre_id"])
videogamesdenormDF = videogames1DF.join(publishersDF, ["publisher_id"])
videogamesdenormDF.select("game_id", "title", "genre_id", "publisher_id").show()
Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Dataflows ile denormalizasyonun uygulanması

  • Verileri yüklemek için sorguları kullanın
  • Sorguları birleştirmek için Merge queries veya Merge queries as new dönüşümlerini kullanın

Sorguları birleştirmek için Merge queries as new kullanan, videogames, genres ve publishers sorgularını birleştiren bir Dataflow ekran görüntüsü

Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Hadi pratik yapalım!

Microsoft Fabric ile Verileri Dönüştür ve Analiz Et

Preparing Video For Download...