Database normalization nima? (1-qism)

Assalamu Alaykum , bugun database normalization nima va nimaga kerakligini ko`rib chiqamiz . Qani ketdik ;)

  1. Normalizationsiz yuzaga keladigan muammolar.

  2. Normalization qanday qilib muammolarni yechadi ?

Normalization — bu ma’lumotlarni (data) bir necha bir-biriga bog'liq jadvallarga (table) bo'lib tashkil qilish ,ortiqcha ma’lumotlarni (data redundancy ) kamaytirish uchun .

Data redundancy — bu bir xil malumotni databaseda bir necha joyda qayta takrorlanishi .

Data redundancy databasedagi ortiqcha joy(extra memory)olmaslik hamda boshqa :

  1. Insertion problems (Ma’lumot qo`shish)

  2. Deletion problems (Ma’lumot o`chirish)

  3. Updation problems (Ma’lumotni yangilash )

muammolarni yechishda yordam beradi .

data redundancy
data redundancy

keraksiz malumotlar database xotirasini oshiradi hamda ma’lumot qo'shish , o'chirish va yangilashda muammolar keltirib chiqaradi.

Insertion problem or anomaly

Bu databasega ma'lumot qo'shmoqchi bo'lsak yangi ishchi har doim unga ortiqcha keraksiz malumot qo’shish kerak bu insertion anomaly deyiladi. Bundan tashqari har bir branchda ishchi bo'lmaguncha branch yaratilmaydi.

Sabab: 2 ta turli xil ammo bir-biriga aloqador ma’lumot bitta tableda saqlanishi .

Deletion anomaly

Agar yuqoridagi tablega yangi ma'lumot qo'shsak ortiqcha bir xil branch va department ma'lumotlarini kiritamiz .Agarda tabledagi hamma ma’lumotlarni o'chirishni boshlasak bizda department haqidagi malumotlar biz xohlamagan holda o'chib ketadi .Bu esa deletion anomaly deyiladi.

Updation anomaly

Agarda branch nomi o'zgarib qolsa yuqoridagi jadvalda hamma branch columnlarini o'zgartirib chiqishga to'gri keladi va bu juda ko'p resurs talab qiladi. Mabodo birorta column yangilanmay qolsa bu data inconsistency ga olib keladi, ya’ni ma’lumotlar bir biriga to'gri kelmaydi .

Masalan bitta tabledagi 1 joyda ishlaydigan 2 ta odamning ishlaydigan branch nomi har xil bo'lib qoladi bu esa database mantig’iga tog'ri kelmaydi.

Qanday qilib normalization bu muammoni hal qiladi ?

Biz normalization orqali bu tableni 2 ga bo'lamiz yani Employee (ishchi ) branch (filial) tablega bo'linadi .

normalizationdan keyin
normalizationdan keyin

Ko'rib turganingizdek normalization qaytarilishni umuman yo'qotish uchun emas uni kamaytirish uchun xizmat qiladi. Bu yerda agar biz branch haqidagi malumotni o'zgartirmoqchi bo'lsak shunchaki branch tableda 1 ta joyda o'zgartiramiz. Agarda hamma ishchilar o'chirib yuborilsa ham branch haqida malumotlar saqlanib qoladi. Yangi ishchi qo'shishda ham faqatgina branch nomi qo'shiladi(odatda primary key foreign key sifatida) .Normalization bizga update , insert and delete anomaliyalaridan qutulib qolishga hamda kamroq data redundancyga olib keldi.

Normalization shunchaki bo'lib tashla va hukmronlik qil (kim aytganini bilmayman ;) qoidasiga amal qiladi .Va buni yordamida bir-biridan ajratilgan mustaqil ammo bir-biriga aloqador tablelarni vujudga kelishiga yordam beradi.

Normalizationga erishish uchun bir necha qoidalar bor bularni keyingi maqolalarda yoritishga harakat qilaman.

E’tiboringiz uchun rahmat !!!

Kamchiliklar uchun uzr so`rab qolaman .