Normallaşdırma vs Denormalizasiya
Relational verilənlər bazaları əlaqələrdən (əlaqəli cədvəllər) ibarətdir. Cədvəllər sütunlardan ibarətdir. Əgər cədvəllər iki böyükdürsə (yəni bir cədvəldə çoxlu sütunlar), onda verilənlər bazası anomaliyaları baş verə bilər. Cədvəllər iki kiçikdirsə (yəni verilənlər bazası bir çox kiçik cədvəllərdən ibarətdir), sorğu üçün səmərəsiz olardı. Normallaşdırma və Denormallaşdırma verilənlər bazası işini optimallaşdırmaq üçün istifadə olunan iki prosesdir. Normallaşdırma məlumat cədvəllərində mövcud olan ehtiyatları minimuma endirir. Denormalizasiya (normallaşdırmanın əksi) lazımsız məlumat və ya qrup məlumatları əlavə edir.
Normallaşdırma nədir?
Normallaşdırma, əlaqəli verilənlər bazalarında verilənlərdə mövcud olan artıqlıqları minimuma endirmək üçün həyata keçirilən bir prosesdir. Bu proses əsasən böyük cədvəlləri daha az ehtiyatla ("Normal formalar" adlanır) kiçik cədvəllərə böləcək. Bu kiçik cədvəllər yaxşı müəyyən edilmiş əlaqələr vasitəsilə bir-biri ilə əlaqəli olacaqdır. Yaxşı normallaşdırılmış verilənlər bazasında verilənlərdəki hər hansı dəyişiklik və ya dəyişiklik yalnız bir cədvəlin dəyişdirilməsini tələb edəcəkdir. Birinci Normal Forma (1NF), İkinci Normal Forma (2NF) və Üçüncü Normal Forma (3NF) Edqar F. Codd tərəfindən təqdim edilmişdir. Boyce-Codd Normal Forması (BCNF) 1974-cü ildə Codd və Raymond F. Boyce tərəfindən təqdim edilmişdir. Yüksək Normal Formalar (4NF, 5NF və 6NF) müəyyən edilmişdir, lakin onlar nadir hallarda istifadə olunur.
1NF-ə uyğun gələn cədvəl onun həqiqətən əlaqəni təmsil etdiyinə (yəni, təkrarlanan heç bir qeydi ehtiva etmədiyinə) və əlaqəli qiymətləndirilən heç bir atributun (yəni.e. bütün atributların atom dəyərləri olmalıdır). Cədvəlin 2NF-ə uyğun olması üçün o, 1NF-ə uyğun olmalıdır və hər hansı bir namizəd açarının bir hissəsi olmayan hər hansı bir atribut (yəni, əsas olmayan atributlar) cədvəldəki namizəd açarların hər hansı birinə tam şəkildə bağlı olmalıdır. Codd-un tərifinə görə, cədvəlin 3NF-də olduğu deyilir, o halda ki, cədvəl ikinci normal formadadır (2NF) və cədvəldəki namizəd açarına aid olmayan hər bir atribut birbaşa olaraq hər bir parametrdən asılı olmalıdır. həmin cədvəlin namizəd açarı. BCNF (həmçinin 3.5NF kimi tanınır) 3NF tərəfindən həll edilməyən bəzi anomaliyaları çəkir.
Denormalizasiya nədir?
Denormalizasiya normallaşma prosesinin əks prosesidir. Denormalizasiya, performansı optimallaşdırmaq üçün lazımsız məlumat əlavə etməklə və ya məlumatları qruplaşdırmaqla işləyir. Lazımsız məlumatların əlavə edilməsi əks-məhsuldar səslənsə də, bəzən denormalizasiya relational verilənlər bazası proqram təminatındakı bəzi çatışmazlıqları aradan qaldırmaq üçün çox vacib bir prosesdir ki, bu da normallaşdırılmış verilənlər bazaları (hətta daha yüksək performans üçün tənzimlənmiş) ilə ağır performans cəzalarına səbəb ola bilər. Bunun səbəbi, sorğuya nəticə çıxarmaq üçün bir neçə əlaqəyə (normallaşdırmanın nəticələri) qoşulma bəzən verilənlər bazası sistemlərinin faktiki fiziki icrasından asılı olaraq yavaş ola bilər.
Normallaşdırma və Denormalizasiya arasındakı fərq nədir?
– Normallaşdırma və denormalizasiya tamamilə əks olan iki prosesdir.
– Normallaşdırma, lazımsız məlumatları az altmaqla daha böyük cədvəllərin daha kiçiklərə bölünməsi prosesidir, denormalizasiya isə performansı optimallaşdırmaq üçün lazımsız məlumatların əlavə edilməsi prosesidir.
– Normallaşdırma verilənlər bazası anomaliyalarının qarşısını almaq üçün həyata keçirilir.
– Denormalizasiya adətən verilənlər bazasının oxunma performansını yaxşılaşdırmaq üçün həyata keçirilir, lakin denormalizasiya üçün istifadə olunan əlavə məhdudiyyətlər səbəbindən yazılar (yəni daxil etmək, yeniləmək və silmək əməliyyatları) yavaşlaya bilər. Buna görə denormallaşdırılan verilənlər bazası normallaşdırılmış verilənlər bazasından daha pis yazma performansı təklif edə bilər.
– Tez-tez tövsiyə olunur ki, “ağrıyana qədər normallaşdırın, işləyənə qədər normallaşdırın”.