Ma'lumotlar bazasini normallashtirish
Reja: 1. Ma'lumotlar bazasini normallashtirish asoslari. ....................................................................... 1 2. Normallashtirish nima? ............................................................................................................ 3 3. 1. Ko'paytirishni bartaraf qilish ................................................................................................ 5 4. 2. Asosiy kalitni aniqlang .......................................................................................................... 6 Ma'lumotlar bazasini normallashtirish asoslari .
BCNF uzilishlarni kamaytiradi va ma'lumotlar yaxlitligini oshiradi Boyce-Codd Oddiy shaklining maqsadi (BCNF) ma'lumotlar bazasini normallashtirishga erishish uchun relaksiya bazasining ustunlari va jadvallarini tashkil qilish orqali ma'lumotlar yaxlitligini oshirishdan iborat. Ma'lumotlar bazasi normallashishi jadvallar orasidagi munosabatlar o'rnatilganda va jadvallar ma'lumotlar bazasini yanada moslashuvi va ma'lumotlarni saqlab qolish uchun qoidalar belgilagan holatlarda yuzaga keladi. Ma'lumotlar bazalarini me'yoriylashtirish maqsadlari kerak bo'lmagan ma'lumotlarni yo'qotish va ma'lumotlar uzgaruvchilarining mantiqiyligini ta'minlashdir. Agar ma'lumotlar bazasi bir nechta jadvalda saqlanmagan bo'lsa va faqat tegishli ma'lumot jadvalda saqlansa, ma'lumotlar bazasi normallashadi. Boyce-Codd Normal Formining kelib chiqishi Bir qator ko'rsatmalarga muvofiq, ma'lumotlar bazalari normallashtirilishini ta'minlang. Ushbu ko'rsatmalar an'anaviy shakllar deb nomlanadi va birdan beshgacha raqamlanadi. Birlashtiruvchi ma'lumotlar bazasi birinchi uch shaklga to'g'ri kelib qolsa, normallashtiriladi: 1NF, 2NF va 3NF. BCNF 1974 yilda Raymond Boyce va Edgar Codd tomonidan uchinchi an'anaviy shaklga yoki 3NFga kengaytma sifatida yaratilgan. Erkaklar hisoblash vaqtini qisqartirish maqsadida qo'shimcha ishlarni minimal darajada kamaytiradigan ma'lumotlar bazasi sxemalarini yaratish ustida ish olib borishdi. Uchinchi an'anaviy shakl birinchi va ikkinchi an'anaviy shakllarda ko'rsatmalarga javob beradigan qo'shimcha ravishda asosiy kalitga bog'liq bo'lmagan ustunlarni olib tashlaydi. Ba'zida 3.5NF deb ataladigan BCNF, 3NFning barcha talablariga javob beradi va nomzod kalitlari jadvaldagi boshqa atributlarga bog'liq emas. BCNF tashkil etilguniga qadar, Boyce Coddning relatsion modeli yordamida ma'lumotni takomillashtirishga yordam beradigan Structured English Query Language (SQL) ning asosiy ishlab chiquvchilaridan biri bo'lgan. Ushbu modelda Codd ma'lumotlar bazalarining tizimli kompleksligini qisqartirishni talab qildi, bu so'rovlar yanada kuchli va moslashuvchan bo'lishi mumkin degan ma'noni anglatadi. O'zining ma'lumot bazasi tushunchalarini ishlatib Codd 1NF, 2NF va 3NF ko'rsatmalarini aniqladi. BCNFni belgilash uchun Boys bilan birlashdi. Nomzod kalitlari va BCNF Nomzod kaliti - ma'lumotlar bazasida noyob kalitni tuzadigan jadval ustunlari yoki ustunlar birikmasi. Atributlarning kombinatsiyasi boshqa ma'lumotlar bilan bog'lanmasdan ma'lumotlar bazasi yozuvini aniqlash uchun ishlatilishi mumkin. Har bir jadval bir nechta
nomzod kalitlarini o'z ichiga olishi mumkin, ulardan har biri asosiy kalit sifatida tan olinishi mumkin. Jadvalda faqat bitta asosiy kalit mavjud. Normallashtirish nima? Normallashtirish ma'lumotlar bazasida ma'lumotlarni samarali tashkil etish jarayoni. Normallashtirish jarayonining ikkita maqsadi mavjud: ortiqcha ma'lumotni yo'q qilish (masalan, bir nechta jadvalda bir xil ma'lumotlarni saqlash) va ma'lumotga bog'liqliklarni mantiqiy (faqatgina jadvaldagi tegishli ma'lumotlarni saqlash). Ularning ikkalasi ham munosib maqsadlardir, chunki ular ma'lumotlar bazasi miqdorini kamaytiradi va ma'lumotlar mantiqiy saqlanishini ta'minlaydi. Oddiy shakllar Ma'lumotlar bazalari jamoasi ma'lumotlar bazalari normallashtirilishini ta'minlash uchun bir qator qo'llanma ishlab chiqdi. Ular an'anaviy shakllar deb ataladi va beshdan (beshinchi an'anaviy shakl yoki 5NF) birdan (eng oddiy normalizatsiya shakli, birinchi normal shakl yoki 1NF deb nomlanadi) raqamlanadi. Amaliy ilovalarda tez-tez 4NF bilan birga 1NF, 2NF va 3NF ni ko'rasiz. Beshinchi an'anaviy shakl kamdan kam ko'rinadi va ushbu maqolada muhokama qilinmaydi. Oddiy shakllar haqidagi muhokamani boshlashdan oldin, ular faqat ko'rsatmalar va ko'rsatmalar ekanligiga e'tibor berish kerak. Vaqti-vaqti bilan, amaliy ish talablariga kutib olish uchun ulardan adashish kerak bo'ladi. Shunga qaramasdan, o'zgarish sodir bo'lganda, sizning sistemangizda yuzaga kelishi mumkin bo'lgan barcha ehtimolliklar va yuzaga kelishi mumkin bo'lgan nomuvofiqliklarni hisobga olish juda muhimdir. Ya'ni, oddiy shakllarni ko'rib chiqaylik. Birinchi Oddiy formasi (1NF) Birinchi oddiy shakl (1NF) tashkil etilgan ma'lumotlar bazasi uchun juda muhim qoidalarni belgilaydi: Xuddi shu jadvalda takroriy ustunlarni yo'q qilish. Har bir ma'lumotli guruh uchun alohida jadvallar yarating va noyob ustun yoki ustunlar majmui ( birlamchi kalit ) bilan har bir qatorni belgilang. Ikkinchi Oddiy formasi (2NF) Ikkinchi oddiy shakl (2NF) takroriy ma'lumotlarni olib tashlash kontseptsiyasiga javob beradi: Birinchi odatdagi shaklning barcha talablariga javob bering. Jadvalning bir nechta satrlariga taalluqli ma'lumotlar yig'indisini olib tashlang va ularni alohida jadvallarga joylashtiring.
Chet tugmalari yordamida ushbu yangi jadvallar va ularning salaflari o'rtasida aloqalar yaratish. Uchinchi Oddiy shakl (3NF) Uchinchi an'anaviy shakl (3NF) yana bir qadam ham davom etmoqda: Ikkinchi oddiy shakldagi barcha talablarga javob bering. Asosiy kalitga bog'liq bo'lmagan ustunlarni olib tashlang. Boyce-Codd Oddiy formasi (BCNF yoki 3.5NF) "Uchinchi va yarim (3.5) an'anaviy shakl" deb nomlangan Boyce-Codd Normal Formasi yana bir talabni qo'shib qo'ydi: Uchinchi an'anaviy shaklning barcha talablariga javob bering. Har bir determinant nomzod kalit bo'lishi kerak . To'rtinchi an'anaviy shakl (4NF) Nihoyat, to'rtinchi oddiy shakl (4NF) bir qo'shimcha talabga ega: Uchinchi an'anaviy shaklning barcha talablariga javob bering. Agar 4NFda juda ko'p qimmatli bog'liqliklar bo'lmasa, u holda aloqa mavjud. Shuni yodda tutingki, bu normallashtirish qoidalari umumiydir. Ma'lumotlar bazasi 2NF da bo'lish uchun avvalo 1NF ma'lumotlar bazasining barcha mezonlarini bajarishi kerak. Normalizatsiya qilishim kerakmi? Ma'lumotlar bazasini normallashtirish odatda yaxshi fikr bo'lsa-da, bu mutlaq talab emas. Aslida, normalizatsiya qoidalarini ataylab buzgan holda, yaxshi amaliyot bo'lgan ba'zi holatlar mavjud. Ushbu mavzu bo'yicha batafsilroq ma'lumotni o'qing: Ma'lumotlar bazasini normallashtirish kerakmi? Ma'lumotlar bazasi normallashtirilganligini tekshirishni istasangiz, ma'lumotlar bazasini birinchi Oddiy shaklga qanday kiritish kerakligini bilib oling . Ushbu ikki oddiy qoidalar ma'lumotlar bazangizni normallashtirishga yordam beradi Birinchi Oddiy form (1NF) tashkil etilgan ma'lumotlar bazasi uchun asosiy qoidalarni o'rnatadi: Xuddi shu jadvalda takroriy ustunlarni yo'q qilish. Tegishli ma'lumotlarning har bir guruhi uchun alohida jadvallar yarating va har bir qatorni noyob ustun (asosiy kalit) bilan aniqlang.
Ma'lumotlar bazasining amaliy dizaynini ko'rib chiqishda bu qoidalar nimani anglatadi? Bu juda oddiy. 1. Ko'paytirishni bartaraf qilish Birinchi qoida, jadvalning bir xil satrida ma'lumotlarni ko'chirib olishimiz kerakligini belgilaydi. Ma'lumotlar bazasi jamoasi doirasida ushbu kontseptsiya jadvalning atomikligi deb ataladi. Ushbu qoidaga mos keladigan jadvallar atom deb ataladi. Keling, ushbu printsipni klassik misol bilan o'rganamiz: menejer-subordinate aloqalarni saqlaydigan inson resurslari ma'lumotlar bazasida jadval. Bizning misolimiz uchun har bir boshqaruvchining bir yoki bir nechta bo'ysunuvchilari bo'lishi mumkin bo'lgan biznes qoidalarini o'rnatamiz. Intuitiv ravishda ushbu ma'lumotni kuzatish uchun ro'yxat yoki elektron jadval yaratishda biz quyidagi maydonlarni o'z ichiga oladigan jadval yaratishimiz mumkin: Menejer Subordinate1 Subordinate2 Subordinate3 Subordinate4 Shunga qaramay, 1NF tomonidan o'rnatilgan birinchi qoidani esga oling: bir xil jadvaldagi takroriy ustunlarni yo'q qilish. Ko'rinib turibdiki, Subordinate1-Subordinate4 ustunlari takrorlanadi. Biroz vaqt ol va bu stsenariyda ko'tarilgan muammolarni o'ylab ko'ring. Agar menejerda faqat bitta subordinator mavjud bo'lsa, Subordinate2-Subordinate4 ustunlari faqat qimmatli ma'lumotlar bazasi tovarini sarflashadi. Bundan tashqari, menejer allaqachon 4ta bo'ysundiruvchi ishni tasavvur qiling - agar u boshqa xodimga murojaat qilsa nima bo'ladi? Barcha jadval tuzilishi o'zgartirishni talab qiladi. Ushbu nuqtada, odatda, yangi ma'lumotlar bazasi novatorlari paydo bo'ladi: Biz bir nechta ustunlar bo'lishini xohlamaymiz va ma'lumotlarning moslashuvchan miqdori uchun ruxsat berishni xohlaymiz. Keling, shunday bir narsani sinab ko'raylik: Menejer Boshliqlar Subordinatlar maydoni "Maryam, Bill, Jou" shaklida bir nechta yozuvlarni o'z ichiga oladi. Ushbu yechim yaqinroq, lekin u ham belgidan kam bo'ladi. Subordinatlar ustuni hali ham takroriy va atom bo'lmagan. Subordinatsiyani qo'shish yoki olib tashlash kerak bo'lganda nima sodir bo'ladi? Jadvalning barcha mazmunini o'qish va yozish kerak. Bu vaziyatda bu katta ish emas, bir rahbarning yuz nafar ishchisi bo'lsa nima bo'lar edi? Bundan tashqari,