Normalizasiya nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Verilənlər bazası kontekstində məlumatların normallaşdırılması, məlumatların təkrarlanmasını azaltmaq və məlumatların bütövlüyünü artırmaq üçün məlumatların təşkili prosesidir. Bu, böyük cədvəlləri kiçik cədvəllərə bölmə və onların əlaqələrini qurma yolu ilə həyata keçirilir.
Əsas məqsəd:
- Məlumatların təkrarlanmasının qarşısını almaq.
- Məlumatların bütövlüyünü artırmaq (əlavə etmə, yeniləmə və silmə zamanı anomaliyaların qarşısını almaq).
- Saxlama və sorğuların səmərəliliyini artırmaq (bəzən).
Normalizasiya prosesi, normal formalara (NF) əsaslanır. Ən çox yayılmışları:
- Birinci normal forma (1NF): Hüceyrələrdə məlumatların atomar olması, təkrarlanan sütun qruplarının olmaması.
- İkinci normal forma (2NF): 1NF-dədir və hər bir qeyri-əsas atribut tam olaraq bütün əsas açara bağlıdır.
- Üçüncü normal forma (3NF): 2NF-dədir və qeyri-əsas atributların tranzitiv funksional asılılıqları yoxdur.
Nümunə:
"Sifarişlər_Məhsullar" cədvəli:
| Sifariş ID | Sifariş Tarixi | Məhsul ID | Məhsul Adı | Məhsul Qiyməti | Miqdar | Müştəri Adı | Müştəri Ünvanı |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Telefon | 500 | 1 | Ivan Pétrov | Pushkina küçəsi, 10 |
| 1 | 2023-10-27 | 102 | Qulaqlıq | 100 | 2 | Ivan Pétrov | Pushkina küçəsi, 10 |
| 2 | 2023-10-27 | 101 | Telefon | 500 | 1 | Maria Ivanova | Lermontova küçəsi, 5 |
Normalizasiya sonrası (3NF-ə qədər):
"Sifarişlər" cədvəli:
| Sifariş ID | Sifariş Tarixi | Müştəri ID |
|---|---|---|
| 1 | 2023-10-27 | 1 |
| 2 | 2023-10-27 | 2 |
"Sifariş Sətirləri" cədvəli:
| Sətir ID | Sifariş ID | Məhsul ID | Miqdar |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
"Məhsullar" cədvəli:
| Məhsul ID | Məhsul Adı | Məhsul Qiyməti |
|---|---|---|
| 101 | Telefon | 500 |
| 102 | Qulaqlıq | 100 |
"Müştərilər" cədvəli:
| Müştəri ID | Müştəri Adı | Müştəri Ünvanı |
|---|---|---|
| 1 | Ivan Pétrov | Pushkina küçəsi, 10 |
| 2 | Maria Ivanova | Lermontova küçəsi, 5 |
Lakin, çox yüksək normalizasiya sorğular zamanı JOIN-lərin sayını artıraraq performansı azalda bilər. Buna görə, verilənlər bazası dizaynında, adətən, normalizasiya dərəcəsi və performans arasında balans axtarılır. Denormalizasiya, performansı artırmaq üçün məqsədli şəkildə normal formalara zidd olmaqdır və adətən artıq redundans əlavə etməklə həyata keçirilir.