Birinci Normal Form

Snowflake ile Veri Modellemesine Giriş

Nuno Rocha

Director of Engineering

Veri normalleştirme süreci

  • Veri normalleştirme: Yinelenmeyi ve bağımlılıkları en aza indirmek için veriyi yapılandıran çok adımlı süreç

UNF sonrası soluk adımlar

Snowflake ile Veri Modellemesine Giriş

Veri normalleştirme süreci (1)

  • Veri normalleştirme: Yinelenmeyi ve bağımlılıkları en aza indirmek için veriyi yapılandıran çok adımlı süreç

UNF'ten 1NF'e adımlar

Snowflake ile Veri Modellemesine Giriş

Veri normalleştirme süreci (2)

  • Veri normalleştirme: Yinelenmeyi ve bağımlılıkları en aza indirmek için veriyi yapılandıran çok adımlı süreç

UNF'ten 3NF'e adımlar

Snowflake ile Veri Modellemesine Giriş

Veri normalleştirme süreci (3)

  • Veri normalleştirme: Yinelenmeyi ve bağımlılıkları en aza indirmek için veriyi yapılandıran çok adımlı süreç

UNF'ten 3NF'e adımlar

Snowflake ile Veri Modellemesine Giriş

Birinci normal form

  • Birinci normal form (1NF): Her sütunda tekil atomik değerler olmasını sağlar

Kategori vurgulu tüm ürünler tablosu

Snowflake ile Veri Modellemesine Giriş

Birinci normal form (1)

  • UNF kategori verisi: L kategorisi değerleri güncelleyebilmek için ayrıştırılmamış

L içeren tüm ürünlerin listesi

Snowflake ile Veri Modellemesine Giriş

Birinci normal form (2)

  • Doğrulama adımı: 1NF uygunluğunu değerlendirmek için tekil değerleri sorgulayın.
SELECT DISTINCT category 
FROM allproducts;

Kategorilerin listesi

Snowflake ile Veri Modellemesine Giriş

1NF için Snowflake işlevleri

  • TRIM
  • LATERAL & FLATTEN
  • SPLIT
Snowflake ile Veri Modellemesine Giriş

1NF için Snowflake işlevleri

  • TRIM: Değerlerin başındaki ve sonundaki boşlukları kaldırır
SELECT TRIM(category)
FROM allproducts;

Kategori üzerinde TRIM işlevi

Snowflake ile Veri Modellemesine Giriş

1NF için Snowflake işlevleri

  • TRIM: Değerlerin başındaki ve sonundaki boşlukları kaldırır.
  • LATERAL & FLATTEN: Değer listesini tekil öğelerden oluşan bir tablo gibi işler.
  • SPLIT: Değerleri bir ayıraca göre böler.
SELECT TRIM(f.value)
FROM allproducts,
LATERAL FLATTEN(INPUT => SPLIT(allproducts.category, ',')) f;

Kategori üzerinde LATERAL, FLATTEN ve SPLIT

Snowflake ile Veri Modellemesine Giriş

1NF uygulama

  • Adım 1: UNF öznitelik değerlerini aktaracak yeni bir varlık oluşturun
CREATE OR REPLACE TABLE categories (
    category_id NUMBER(10,0) PRIMARY KEY,
    category VARCHAR(255)
);
Snowflake ile Veri Modellemesine Giriş

1NF uygulama

  • Adım 2.1: Yeni varlığı başlangıçta normalleşmemiş varlıktan gelen verilerle doldurun
  • INSERT INTO: Bir tabloya yeni satırlar ekler.
INSERT INTO categories (category_id, category)
___;
Snowflake ile Veri Modellemesine Giriş

1NF uygulama

  • Adım 2.2: Başlangıçta normalleşmemiş varlık olan allproducts’tan verileri seçin
INSERT INTO categories (category_id, category)
SELECT 
    ___,
    ___
FROM allproducts;
Snowflake ile Veri Modellemesine Giriş

1NF uygulama

  • Adım 2.3: Belirli bir öznitelikteki değerleri bölmek için işlev kullanın
INSERT INTO categories (category_id, category)
SELECT 
    ___, 
    TRIM(f.value)
FROM allproducts,
LATERAL FLATTEN(INPUT => SPLIT(allproducts.category, ',')) f;
Snowflake ile Veri Modellemesine Giriş

1NF uygulama

  • Adım 2.4: Benzersiz bir tanımlayıcı için satır numarasını seçin
INSERT INTO categories (category_id, category)
SELECT 
    ROW_NUMBER() OVER (ORDER BY TRIM(f.value)), 
    TRIM(f.value)
FROM allproducts,
LATERAL FLATTEN(INPUT => SPLIT(allproducts.category, ',')) f;
Snowflake ile Veri Modellemesine Giriş

1NF uygulama

  • Adım 2.4: Benzersiz kategori değerleri üretmek için verileri gruplayın
INSERT INTO categories (category_id, category)
SELECT 
    ROW_NUMBER() OVER (ORDER BY TRIM(f.value)), 
    TRIM(f.value)
FROM allproducts,
LATERAL FLATTEN(INPUT => SPLIT(allproducts.category, ',')) f
GROUP BY TRIM(f.value);
Snowflake ile Veri Modellemesine Giriş

Veri normalleştirmeye doğru

Tüm ürün verileri, UNF'ten 1NF'e

Snowflake ile Veri Modellemesine Giriş

Terimler ve işlevlere genel bakış

  • Veri normalleştirme: Yinelenmeyi ve bağımlılığı en aza indirmek için veriyi yapılandırma süreci
  • Normal formlar: Normalleştirme için yönergeler
  • Birinci normal form (1NF): Her sütunda tekil atomik değerler olmasını sağlar
  • INSERT INTO: Bir tabloya yeni satırlar ekler
  • TRIM: Değerlerin başındaki ve sonundaki boşlukları kaldırır
  • LATERAL FLATTEN(INPUT => SPLIT()): Değerleri satırlara böler
  • ROW_NUMBER() OVER (ORDER BY): Sıralı numara üretir
  • GROUP BY: Aynı değerlere sahip verileri gruplayıp toplar
Snowflake ile Veri Modellemesine Giriş

İşlevlere genel bakış

-- Bir varlığı sorgu sonucu ile doldurun
INSERT INTO table_name (column_name, other_columns)
SELECT 
    -- Satır numarasıyla benzersiz değer üretin
    ROW_NUMBER() OVER (ORDER BY TRIM(alias.value)),
    TRIM(alias.value)
FROM another_table,
-- Bir metin özniteliğini ayıraca göre bölün 
LATERAL FLATTEN(INPUT => SPLIT(another_table.column_name, 'delimiter_value'))alias
-- Değerlerin tekilliğini sağlamak için gruplayın
GROUP BY TRIM(alias.value);
Snowflake ile Veri Modellemesine Giriş

Vamos praticar!

Snowflake ile Veri Modellemesine Giriş

Preparing Video For Download...