Ma'lumotlar bazasini normallashtirishim kerakmi?

Haqiqiy dunyoda tartibga solish

Ma'lumotlar bazasini normallashtirish - bu dasturlarni ishlab chiqishning muqaddas sigirlaridan biridir. O'rganganingiz yoki o'qigan kitobingiz har bir litsenziya dasturlari kursini ma'lumotlar bazalarini normallashtirish muhimligini aytadi.

Bu haqiqatni e'tirof etish vaqti keldi. Ba'zan sizning bazangizni denormalizatsiya qilishning iloji yo'q!

Siz normalizatsiya qilishingiz kerakmi?

Ma'lumotlar bazasini normalizatsiya qilish ma'lumotlaringizning yaxlitligini himoya qiladi. Ko'pgina holatlarda bu ajoyib g'oya bo'lib, har qanday ma'lumotlar bazasini yaratishga boshlashingiz kerak. Ma'lumotlar bazasini normalizatsiya qila olsangiz, u holda boring! Aslida, bu erda ma'lumotlar bazasini qanday qilib normalizatsiya qilish bo'yicha ba'zi amaliy tavsiyalar:

Pastki chiziq sizning ma'lumotlar bazangizni normalizatsiya qilishingiz kerak . Normallashtirish odatda ovozli dizayn amaliyoti hisoblanadi. Ushbu ma'lumotlar keraksiz ma'lumotlarni kamaytiradi, ishlashni optimallashtiradi va ma'lumotlar bazasining turli burchaklarida bir xil ma'lumotlarga ega bo'lganligi natijasida ma'lumotlar yaxlitligi muammosiga ega bo'lish ehtimoli kamayadi.

Normalizatsiya qilmaslik uchun ba'zi yaxshi sabablar

Ya'ni, sizning bazangizni normallashtirishga asos yo'q. Keling, bir nechtasini ko'rib chiqamiz:

  1. Ishtirokchilar qimmat . Ma'lumotlar bazasini normallashtirish odatda ko'plab jadvallarni yaratishni o'z ichiga oladi. Aslida, siz besh yoki 10 ta jadvalni tashkil etuvchi oddiy so'rov bo'lishi kerak, deb o'ylayman. Agar siz beshta stolli birlashmani sinab ko'rmoqchi bo'lsangiz, u printsipial ravishda ishlayotganini bilasiz, ammo uning amaliyotda juda sekin harakat qiladi. Agar katta jadvallarga qarshi bir nechta qo'shilgan so'rovlarga tayanadigan veb-ilovani qurayotgan bo'lsangiz, o'zingizni "Bu ma'lumotlar bazasi normallashtirilmasa!" Deb o'ylashingiz mumkin. Sizning boshingizdagi bu fikrni eshitganingizda, bu yaxshi vaqt. Denormalizing deb hisoblang. Ma'lumotlaringizning butunligini xavf ostiga qo'ymasdan, bu so'rov tomonidan ishlatilgan barcha ma'lumotlarni yagona jadvalga yopishtira olsangiz, unda boring! Bir isyonkor bo'ling va ma'lumotlar bazasini denormalize qiling. Siz orqaga qaramaysiz!
  2. Normallashtirilgan dizayn qiyin . Agar murakkab ma'lumotlar bazasi sxemasi bilan ishlayotgan bo'lsangiz, ehtimol o'zingizning normalizatsiya murakkabligining ustunidan stolga zarba berasiz. Oddiy bosh qoida sifatida, agar kun bo'yi to'rtinchi an'anaviy shaklga qanday o'tish kerakligini bilmoqchi bo'lsangiz, siz normalizatsiya qilishni juda uzoqlashtirasiz. Orqaga qadam tashlang va o'zingizdan so'rangki, u haqiqatan ham davom etishi kerakmi?
  1. Tez va ifloslik tez va iflos bo'lishi kerak . Agar siz faqat prototip ishlab chiqarsangiz, faqatgina tezkor ishlang. Albatta. Hammasi joyida; shu bo'ladi. Tez ilovalarni ishlab chiqish, ba'zan oqlangan dizayndan ko'ra muhimroqdir. Prototyping bosqichidan tashqariga chiqishga tayyor bo'lgach, orqaga qaytib, dizayningizga e'tibor qarating. Tez va iflos ma'lumotlar bazasi dizayni uchun to'layotgan narx siz uni tashlab yuborishingiz va ishlab chiqarish uchun qurish vaqti kelganidan boshlashingiz mumkin.
  2. Agar siz NoSQL ma'lumotlar bazasidan foydalanayotgan bo'lsangiz , an'anaviy me'yorlash kerak emas. Buning o'rniga, ma'lumotlar bazasini yanada murakkabroq bo'lgan BASE modelidan foydalaning. E-pochta, rasm yoki video kabi tuzilmaydigan ma'lumotlarni saqlashda foydalidir.

E'tibor bergan ba'zi so'zlar

Ma'lumotlar bazasini normallashtirish odatda yaxshi fikrdir. Siz buni oqilona deb bilsangiz, normalizatsiya printsiplariga amal qilishingiz kerak. Ammo agar barcha ko'rsatkichlar normallashuvni amalga oshirish uchun juda murakkab bo'lsa, unda ma'lumotlaringizni himoya qilishda ishni bajaradigan ishni ko'rib chiqing.

Va nihoyat, agar siz normalizatsiya qoidalaridan voz kechishni tanlasangiz, ma'lumotlar bazasi yaxlitligini qanday qo'llashingiz haqida qo'shimcha ogoh bo'ling. Agar kerakli ma'lumotni saqlamasangiz, ma'lumotlarning izchil topilganligiga ishonch hosil qilish uchun tetikler va boshqa boshqaruvlarni joyiga qo'ying.