Ə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