Əsas məzmuna keçin

Normalization və Denormalization

Normalization, verilənlər bazası sxemasını təşkil etmək üçün istifadə olunan bir prosesdir ki, məlumat təkrarlanmasını azaltsın və məlumat bütövlüyünü təmin etsin.

Normalization Formaları​

  1. Birinci Normal Forma (1NF):

    • Hər sütun atomik (bölünməz) dəyərlər saxlamalıdır
    • Hər sətir unikal identifikator (primary key) ilə müəyyən edilməlidir
    • Eyni cədvəldə təkrarlanan qruplar olmamalıdır
  2. İkinci Normal Forma (2NF):

    • 1NF-in bütün tələblərini qarşılamalıdır
    • Bütün non-key atributlar primary key-dən tam funksional asılı olmalıdır
  3. Üçüncü Normal Forma (3NF):

    • 2NF-in bütün tələblərini qarşılamalıdır
    • Heç bir non-key atribut digər non-key atributdan tranzitiv asılı olmamalıdır
  4. Boyce-Codd Normal Forma (BCNF):

    • 3NF-in daha güclü versiyası
    • Hər funksional asılılıq üçün, determinant superkey olmalıdır
  5. Dördüncü Normal Forma (4NF):

    • BCNF-in bütün tələblərini qarşılamalıdır
    • Multi-valued dependencies aradan qaldırılmalıdır

Normalization-ın Üstünlükləri​

  • Məlumat təkrarlanmasının azaldılması
  • Məlumat bütövlüyünün təmin edilməsi
  • Daha az update anomaliyaları
  • Daha kiçik cədvəl ölçüləri
  • Daha yaxşı sorğu performansı (bəzi hallarda)

Normalization-ın Çatışmazlıqları​

  • Daha mürəkkəb sorğular (çoxlu JOIN əməliyyatları)
  • Bəzi hallarda oxuma performansının azalması
  • Daha mürəkkəb sxema dizaynı

Denormalization​

Denormalization, performans səbəbləri ilə normalization edilmiş verilənlər bazası sxemasına məqsədyönlü şəkildə redundancy (artıqlıq) əlavə etmək prosesidir.

Denormalization Texnikaları​

  1. Cədvəllərin Birləşdirilməsi:

    • Tez-tez birlikdə istifadə olunan cədvəllərin birləşdirilməsi
    • JOIN əməliyyatlarının sayını azaldır
  2. Hesablanmış Sütunlar:

    • Tez-tez hesablanan dəyərlərin saxlanması
    • Sorğu zamanı hesablama yükünü azaldır
  3. Məlumat Təkrarlanması:

    • Eyni məlumatın bir neçə cədvəldə saxlanması
    • JOIN əməliyyatlarını aradan qaldırır
  4. Materialized Views:

    • Sorğu nəticələrinin əvvəlcədən hesablanıb saxlanması
    • Mürəkkəb sorğuların performansını artırır

Denormalization-ın Üstünlükləri​

  • Daha yaxşı oxuma performansı
  • Daha az JOIN əməliyyatları
  • Daha sadə sorğular
  • Daha az indeks ehtiyacı

Denormalization-ın Çatışmazlıqları​

  • Məlumat təkrarlanması
  • Daha çox disk tutumu
  • Yazma əməliyyatlarının mürəkkəbləşməsi
  • Məlumat uyğunsuzluğu (inconsistency) riski

Nə Zaman Normalization və ya Denormalization İstifadə Etməli?​

  • Normalization üçün:

    • Məlumat bütövlüyü kritik əhəmiyyət daşıdıqda
    • Yazı əməliyyatları üstünlük təşkil etdikdə
    • Disk tutumu məhdud olduqda
  • Denormalization üçün:

    • Oxuma əməliyyatları üstünlük təşkil etdikdə
    • Performans kritik əhəmiyyət daşıdıqda
    • Mürəkkəb analitik sorğular tez-tez icra olunduqda
    • Disk tutumu bol olduqda