Ma'lumotlar bazasini normallashtirish: ikkinchi oddiy shaklga o'tish (2NF)

Ikkinchi an'anaviy shaklda ma'lumotlar bazasini kiritish

O'tgan oyda ma'lumotlar bazasi jadvalini normallashtirishning bir necha jihatlarini ko'rib chiqdik. Birinchidan, ma'lumotlar bazasini normallashtirishning asosiy tamoyillarini muhokama qildik. So'nggi marta biz birinchi odatdagi shaklda (1NF) belgilangan asosiy talablarni o'rganib oldik. Keling, safarimizni davom ettiramiz va ikkinchi oddiy shakl (2NF) tamoyillarini qamrab olamiz.

2NF umumiy talablarini esga oling:

Ushbu qoidalar oddiy bayonotda umumlashtirilishi mumkin: 2NF jadvaldagi ortiqcha ma'lumotlarning miqdorini kamaytirishga harakat qiladi, uni yangi jadvalga kiritish va ushbu jadvallar o'rtasidagi munosabatlarni yaratish .

Keling, bir misolni ko'rib chiqaylik. Ma'lumotlar bazasida mijozlar ma'lumotlarini saqlaydigan onlayn-do'konni tasavvur qiling. Quyidagi elementlarga ega mijozlar deb atalgan bitta stol bo'lishi mumkin:

Ushbu jadvalga qisqacha nazar, keraksiz ma'lumotlarning oz miqdorini ko'rsatadi. "Sea Cliff, NY 11579" va "Mayami, FL 33157" yozuvlarini ikki marta saqlaymiz. Endi biz oddiy misolimizda juda ko'p qo'shilgan xotira kabi ko'rinmasligi mumkin, lekin stolimizdagi minglab qatorlar bo'lsa, bo'sh joyni tasavvur qiling. Bundan tashqari, agar Sea Cliff uchun pochta kodi o'zgarishi kerak bo'lsa, biz ushbu o'zgarishni ma'lumotlar bazasida ko'p joylarda amalga oshirishimiz kerak.

2NF-mos keladigan ma'lumotlar bazasi tuzilmasida ushbu keraksiz ma'lumot olinadi va alohida jadvalga saqlanadi. Bizning yangi stolimiz (buni "ZIPlar" deb ataymiz) quyidagi sohalarga ega bo'lishi mumkin:

Agar biz juda samarali bo'lishni istasak, ushbu jadvalni oldindan to'ldirishimiz mumkin - pochta idorasi barcha joriy ZIP kodlari va ularning shahar / davlat munosabatlarining katalogini taqdim etadi. Albatta, bunday ma'lumotlar bazasi ishlatilgan vaziyatga duch keldingiz. Buyurtmani qabul qilgan kishi sizning pochta kodingizni avval so'ragan bo'lishi mumkin va keyin siz qo'ng'iroq qilgan shahar va davlatni bilgan bo'lishi mumkin. Ushbu turdagi vosita operator xatoligini pasaytiradi va samaradorlikni oshiradi.

Endi mijozlar jadvalidagi takroriy ma'lumotlarni o'chirib tashlagan bo'lsak, biz ikkinchi oddiy shakldagi birinchi qoidaga mamnun bo'ldik. Ikkala stolni bir-biriga ulash uchun xorijiy kalitni ishlatishimiz kerak. Biz ushbu aloqani yaratish uchun ZIP kodidan ( ZIP ish stolidagi asosiy kalitdan) foydalanamiz. Mana yangi mijozlar jadvalimiz:

Biz ma'lumotlar bazasida saqlanadigan ortiqcha ma'lumotlarning miqdorini minimall qildik va strukturamiz ikkinchi oddiy shaklda bo'ldi!

Ma'lumotlar bazasi normallashtirilganligini tekshirishni istasangiz, ushbu qatordagi boshqa maqolalarimizni o'rganing: