Ko'rib turganingizdek, bu birinchi normal shaklda, demak biz uni ikkinchi normal shaklga keltirishga harakat qilishimiz mumkin.
Jadvalni ikkinchi normal shaklga keltirish uchun uning uchun asosiy kalitni belgilash kerak.
Ushbu jadvalga qarab, biz har bir qatorni faqat ustunlar birikmasi yordamida aniq aniqlashimiz mumkinligini tushunamiz, masalan, "Loyiha nomi" + "Ishtirokchi", boshqacha qilib aytganda, "Loyiha nomi" va "Ishtirokchi" ni bilamiz, biz jadvaldagi ma'lum bir yozuvni aniq belgilashi mumkin, ya'ni ushbu ustunlar qiymatlarining har bir kombinatsiyasi o'ziga xosdir. Shunday qilib, biz asosiy kalitni aniqladik va u bizda kompozitsiyaga ega, ya'ni ikki ustundan iborat. “Loyihalar” jadvali
Proyekt identifikatori
Proyekt nomi
Lavozimi
Proyekt muddati(oy)
1
Ilovani ishlab chiqish
Dasturchi
8
2
Yangi magazin ochish
Buxgalter
12
“Ishtirokchilar” jadvali
Ishtirokchi identifikatori
Ishtirokchi
Lavozimi
1
Anvar Ergashev
Dasturchi
2
Zokir Karimov
Buxgalter
3
Islom Kenjayev
Menedjer
“Proyekt” va “Ishtirokchi” jadvallari orasidagi munosabat
Proyekt identifikator
Ishtirokchi identifikatori
1
1
1
2
1
3
2
2
2
3
Uchinchi normal shakl. Uchinchi normal shakl (3NF) talablari
Uchinchi normal shakldagi talab (3NF) - jadvallarda tranzitiv qaramlik bo'lmasligi kerak.
Tranzitiv qaramlik - bu kalit bo'lmagan ustunlar boshqa kalit bo'lmagan ustunlar qiymatlariga bog'liq bo'lganda hosil bo’lgan qaramalikdir.
Agar birinchi normal shaklda e'tibor prinsiplariga rioya qilishga qaratilgan bo'lsa, ikkinchi normal shaklda birlamchi kalitga e'tibor qaratiladi. Uchinchi normal shaklda barcha e'tiborimiz asosiy kalit bo'lmagan ustunlarga qaratiladi.
Ma'lumotlar bazasini uchinchi normal shaklga normalizatsiya qilish uchun jadvallarda boshqa kalit bo'lmagan ustunlarga bog'liq bo'lgan kalit bo'lmagan ustunlar mavjud emasligiga ishonch hosil qilishingiz kerak.
Boshqacha qilib aytganda, kalit bo'lmagan ustunlar jadvaldagi kalit vazifasini bajarishga urinmasligi kerak, ya'ni ular haqiqatan ham kalit bo'lmagan ustunlar bo'lishi kerak, bunday ustunlar boshqa ustunlardan ma'lumotlarni olish imkoniyatini bermaydi, ular tarkibidagi ma'lumotlarni ko'rib chiqish imkoniyatini beradi, chunki bu ularning maqsadi. Uchinchi normal shaklning umumiy qoidasi (3NF) quyidagicha:
Jadvalda kalit bo'lmagan ustunlar bo'lishi kerak.
Ma'lumotlar bazasi jadvallarini uchinchi normal shaklga o'tkazishga misol Masalan, quyidagi jadvalni olaylik:
Tartib raqami
FISH
Lavozimi
Bo’lim
Bo’lim tavsifi
1
Anvar Ergashev
Dasturchi
Ishlab chiqish bo'limi
Ilovalar va saytlarni ishlab chiqish va ularga xizmat ko'rsatish
2
Zokir Karimov
Buxgalter
Buxgalteriya
Buxgalteriya hisob-kitoblarini amalga oshirish
3
Islom Kenjayev
Menedjer
Amalga oshirish bo’limi
Mahsulot sotilishini tashkil etish
Ushbu jadval uchinchi normal shaklda ekanligini aniqlash uchun biz barcha kalit bo'lmagan ustunlarni tekshirib ko'rishimiz kerak, ularning har biri faqat asosiy kalitga bog'liq bo'lishi kerak va boshqa kalit bo'lmagan ustunlar bilan hech qanday aloqasi bo'lmasligi kerak.
Biroq, tekshirish natijasida biz "Bo'lim tavsifi" ustuni to'g'ridan-to'g'ri asosiy kalitga bog'liq emasligini aniqladik. Biz o'zimizga bitta savol bilan murojaat qilganimizda buni bilib oldik "Bo'lim tavsifi xodim bilan qanday bog'liq?" va bizning javobimiz quyidagicha: "Bo'limning atribut tavsifida xodim ishlaydigan bo'lim to'g'risida batafsil ma'lumotlar mavjud." Bundan kelib chiqadiki, "Bo'lim tavsifi" ustuni to'g'ridan-to'g'ri xodim bilan bog'liq emas, u to'g'ridan-to'g'ri xodim bilan bog'liq bo'lgan "Bo'lim" ustuniga bevosita bog'liq, chunki xodim ma'lum bir bo'limda ishlaydi. Bu bitta kalit bo'lmagan ustunni boshqa kalit bo'lmagan ustun orqali birlamchi kalit bilan bog'laydigan o’tuvchi bog’liqlikdir.
Ushbu jadvalni uchinchi normal holatga keltirish uchun biz nima qilishimiz kerak? Buning uchun bir mohiyatni alohida-alohida ikkita mohiyatga ajratish lozim.
Ushbu jadvalni ikkiga bo'lishimiz kerak: birinchisida Xodimlar, ikkinchisida Bo'limlar.