Normallashtirish va denormalizatsiya
Relational ma'lumotlar bazalari munosabatlardan (bog'liq jadvallardan) iborat. Jadvallar ustunlardan tashkil topgan. Agar jadvallar ikkita katta bo'lsa (ya'ni, bitta jadvalda juda ko'p ustunlar), ma'lumotlar bazasi anomaliyalari paydo bo'lishi mumkin. Agar jadvallar ikkita kichik bo'lsa (ya'ni, ma'lumotlar bazasi ko'plab kichikroq jadvallardan iborat bo'lsa), so'rovlar uchun u samarasiz bo'ladi. Normalizatsiya va denormalizatsiya - bu ma'lumotlar bazasining ishlashini optimallashtirish uchun ishlatiladigan ikkita jarayon. Normalizatsiya ma'lumotlar jadvallarida mavjud bo'lgan ortiqcha narsalarni kamaytiradi. Denormalizatsiya (normalizatsiyaning teskarisi) ortiqcha ma'lumotlar yoki guruh ma'lumotlarini qo'shadi.
Normallashtirish nima?
Normallashtirish - bu relyatsion ma'lumotlar bazalarida mavjud bo'lgan ortiqcha narsalarni minimallashtirish uchun amalga oshiriladigan jarayon. Bu jarayon asosan katta jadvallarni kichikroq jadvallarga bo'linadi ("Oddiy shakllar" deb ataladi). Bu kichikroq jadvallar yaxshi belgilangan munosabatlar orqali bir-biri bilan bog'langan bo'ladi. Yaxshi normallashtirilgan ma'lumotlar bazasida ma'lumotlardagi har qanday o'zgartirish yoki o'zgartirish faqat bitta jadvalni o'zgartirishni talab qiladi. Birinchi Oddiy shakl (1NF), Ikkinchi Oddiy shakl (2NF) va Uchinchi Oddiy shakl (3NF) Edgar F. Codd tomonidan kiritilgan. Boyce-Codd Normal Form (BCNF) 1974 yilda Codd va Raymond F. Boyce tomonidan kiritilgan. Yuqori normal shakllar (4NF, 5NF va 6NF) aniqlangan, ammo ular kamdan-kam ishlatiladi.
1NF ga mos keladigan jadval uning haqiqatda munosabatni ifodalashini (ya'ni, unda takrorlanadigan yozuvlar yo'q) va o'zaro bog'liq qiymatli atributlarni o'z ichiga olmaydi (ya'ni.e. barcha atributlar atom qiymatlariga ega bo'lishi kerak). Jadval 2NF ga mos kelishi uchun u 1NF ga muvofiq bo'lishi kerak va biron bir nomzod kalitining bir qismi bo'lmagan har qanday atribut (ya'ni, asosiy bo'lmagan atributlar) jadvaldagi biron bir nomzod kalitiga to'liq bog'liq bo'lishi kerak. Codd ta'rifiga ko'ra, jadval 3NFda deyiladi, agar bu jadval ikkinchi normal shaklda (2NF) bo'lsa va jadvaldagi nomzod kalitga tegishli bo'lmagan har bir atribut to'g'ridan-to'g'ri har biriga bog'liq bo'lishi kerak. ushbu jadvalning nomzod kaliti. BCNF (shuningdek, 3.5NF nomi bilan ham tanilgan) 3NF tomonidan hal etilmagan ayrim anomaliyalarni qamrab oladi.
Denormalizatsiya nima?
Denormalizatsiya normallashtirish jarayonining teskari jarayonidir. Denormalizatsiya ishlashni optimallashtirish uchun ortiqcha ma'lumotlarni qo'shish yoki ma'lumotlarni guruhlash orqali ishlaydi. Ortiqcha ma'lumotlarni qo'shish samarasiz bo'lib tuyulsa ham, ba'zida denormalizatsiya relyatsion ma'lumotlar bazasi dasturiy ta'minotidagi ba'zi kamchiliklarni bartaraf etish uchun juda muhim jarayon bo'lib, normallashtirilgan ma'lumotlar bazalari (hatto yuqori ishlash uchun sozlangan) bilan og'ir ishlash jazolariga olib kelishi mumkin. Buning sababi, so'rovga natija berish uchun bir nechta munosabatlarni (normallashtirish natijalari) birlashtirish ma'lumotlar bazasi tizimlarining haqiqiy jismoniy bajarilishiga qarab ba'zan sekin bo'lishi mumkin.
Normallashtirish va denormalizatsiya o'rtasidagi farq nima?
– Normalizatsiya va denormalizatsiya bir-biriga qarama-qarshi boʻlgan ikkita jarayondir.
– Normalizatsiya kattaroq jadvallarni kichikroq jadvallarga boʻlish jarayoni boʻlib, ortiqcha maʼlumotlarni kamaytiradi, denormalizatsiya esa unumdorlikni optimallashtirish uchun ortiqcha maʼlumotlarni qoʻshish jarayonidir.
– Normalizatsiya maʼlumotlar bazasi anomaliyalarining oldini olish uchun amalga oshiriladi.
– Denormalizatsiya odatda ma'lumotlar bazasini o'qish samaradorligini oshirish uchun amalga oshiriladi, lekin denormalizatsiya uchun qo'llaniladigan qo'shimcha cheklovlar tufayli yozish (masalan, kiritish, yangilash va o'chirish operatsiyalari) sekinlashishi mumkin. Shuning uchun denormalizatsiyalangan ma'lumotlar bazasi normallashtirilgan ma'lumotlar bazasiga qaraganda yomonroq yozishni taklif qilishi mumkin.
– Koʻpincha “ogʻriq boʻlguncha normal holatga keltiring, ishlamaguncha normal holatga keltiring” tavsiya etiladi.