Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Kurs bo'yicha keyingi oqim boshlanishini kutish bilan "Ma'lumotlar bazasi" Biz ma'lumotlar bazasini loyihalash bo'yicha muhim maslahatlar bilan kichik mualliflik materialini tayyorladik. Umid qilamizki, ushbu material siz uchun foydali bo'ladi.

Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Ma'lumotlar bazalari hamma joyda mavjud: eng oddiy bloglar va kataloglardan ishonchli axborot tizimlari va yirik ijtimoiy tarmoqlargacha. Ma'lumotlar bazasi oddiy yoki murakkab bo'ladimi, unchalik muhim emas, chunki uni to'g'ri loyihalash muhimdir. Ma'lumotlar bazasi o'ylamasdan va maqsadni aniq tushunmasdan ishlab chiqilganda, u nafaqat samarasiz, balki ma'lumotlar bazasi bilan keyingi ishlash foydalanuvchilar uchun haqiqiy azob, o'tib bo'lmaydigan o'rmon bo'ladi. Foydali va ishlatish uchun qulay mahsulotni yaratishga yordam beradigan ma'lumotlar bazasini loyihalash bo'yicha ba'zi maslahatlar.

1. Jadval nima uchun va uning tuzilishi nima ekanligini aniqlang

Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Bugungi kunda Scrum yoki RAD (Rapid Application Development) kabi ishlab chiqish usullari IT guruhlariga ma'lumotlar bazalarini tezda ishlab chiqishda yordam beradi. Biroq, vaqtga intilishda, maqsadning o'zi nima ekanligini, yakuniy natijalar qanday bo'lishi kerakligini noaniq tasavvur qilib, to'g'ridan-to'g'ri bazani qurishga sho'ng'ish vasvasasi juda katta.
 
Go'yo jamoa samarali va tezkor ishlashga e'tibor qaratgandek, ammo bu sarob. Loyihaning chuqurligiga qanchalik tez va tezroq sho'ng'isangiz, ma'lumotlar bazasi dizaynidagi xatolarni aniqlash va o'zgartirish uchun ko'proq vaqt kerak bo'ladi.

Shunday qilib, qaror qabul qilishingiz kerak bo'lgan birinchi narsa ma'lumotlar bazasining maqsadini aniqlashdir. Ma'lumotlar bazasi qanday turdagi ilovalar uchun ishlab chiqilmoqda? Foydalanuvchi faqat yozuvlar bilan ishlaydi va tranzaktsiyalarga e'tibor berishi kerakmi yoki u ma'lumotlar tahliliga ko'proq qiziqadimi? Baza qayerda joylashtirilishi kerak? U mijozlarning xatti-harakatlarini kuzatib boradimi yoki shunchaki mijozlar bilan munosabatlarni boshqaradimi? 

Dizayn jamoasi ushbu savollarga qanchalik tez javob bersa, ma'lumotlar bazasini loyihalash jarayoni shunchalik silliq bo'ladi.

2. Saqlash uchun qanday ma'lumotlarni tanlashim kerak?

Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Oldindan rejalashtirish. Ma'lumotlar bazasi ishlab chiqilayotgan sayt yoki tizim kelajakda nima qilishi haqidagi fikrlar. Texnik spetsifikatsiyalarning oddiy talablaridan tashqariga chiqish muhimdir. Iltimos, foydalanuvchi saqlaydigan barcha mumkin bo'lgan ma'lumotlar turlari haqida o'ylamang. Buning o'rniga, foydalanuvchilar post yozish, hujjatlar yoki fotosuratlar yuklash yoki xabar almashish imkoniyatiga ega bo'ladimi, deb o'ylang. Agar shunday bo'lsa, unda siz ma'lumotlar bazasida ular uchun joy ajratishingiz kerak.

Kelajakda dizayn bazasi qo'llab-quvvatlanadigan jamoa, bo'lim yoki tashkilot bilan ishlang. Mijozlarga xizmat ko'rsatish bo'yicha mutaxassislardan tortib bo'lim rahbarlarigacha bo'lgan turli darajadagi odamlar bilan muloqot qiling. Shunday qilib, fikr-mulohazalar yordamida siz kompaniyaning talablari haqida aniq tasavvurga ega bo'lasiz. 

Muqarrar ravishda, hatto bitta bo'lim ichidagi foydalanuvchilarning ehtiyojlari ziddiyatli bo'ladi. Agar siz bunga duch kelsangiz, o'z tajribangizga tayanishdan qo'rqmang va barcha tomonlarga mos keladigan va ma'lumotlar bazasining yakuniy maqsadini qondiradigan murosani toping. Ishonchingiz komil: kelajakda siz karmada +100500 va kukilar tog'ini olasiz.

3. Ehtiyotkorlik bilan model ma'lumotlari

Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Ma'lumotlarni modellashtirishda bir nechta asosiy fikrlarga e'tibor berish kerak. Yuqorida aytib o'tganimizdek, ma'lumotlar bazasining maqsadi modellashtirishda qanday usullardan foydalanishni belgilaydi. Agar biz onlayn yozuvlarni qayta ishlash (OLTP), boshqacha qilib aytganda, yozuvlarni yaratish, tahrirlash va o'chirish uchun ma'lumotlar bazasini loyihalashtirsak, biz tranzaksiya modellashtirishdan foydalanamiz. Agar ma'lumotlar bazasi relyatsion bo'lishi kerak bo'lsa, unda ko'p o'lchovli modellashtirishdan foydalanish yaxshidir.

Modellashtirish jarayonida kontseptual (CDM), jismoniy (PDM) va mantiqiy (LDM) ma'lumotlar modellari quriladi. 

Kontseptual modellar ob'ektlarni va ular o'z ichiga olgan ma'lumotlar turlarini, shuningdek ular o'rtasidagi munosabatlarni tavsiflaydi. Ma'lumotlaringizni mantiqiy bo'laklarga bo'ling - bu hayotni ancha osonlashtiradi.
Asosiysi, moderatsiya, ortiqcha ishlamang.

Agar ob'ektni bir so'z yoki iborada tasniflash juda qiyin bo'lsa, unda kichik turlardan (bo'sh ob'ektlar) foydalanish vaqti keldi.

Agar ob'ekt o'z hayotini boshqaradigan bo'lsa, uning xatti-harakati va tashqi ko'rinishini, shuningdek, boshqa ob'ektlar bilan munosabatlarini tavsiflovchi atributlarga ega bo'lsa, unda siz nafaqat kichik tur, balki supertip (ota-ona ob'ekti) dan ham xavfsiz foydalanishingiz mumkin. 

Agar siz ushbu qoidaga e'tibor bermasangiz, boshqa ishlab chiquvchilar sizning modelingizda chalkashib ketishadi va ma'lumotlarni va ularni qanday yig'ish qoidalarini to'liq tushunmaydilar.

Kontseptual modellar mantiqiy modellar yordamida amalga oshiriladi. Ushbu modellar jismoniy ma'lumotlar bazasini loyihalash uchun yo'l xaritasiga o'xshaydi. Mantiqiy modelda biznes ma'lumotlari ob'ektlari aniqlanadi, ma'lumotlar turlari aniqlanadi va ma'lumotlar o'rtasidagi munosabatlarni tartibga soluvchi qoida kalitining holati aniqlanadi.

Keyin mantiqiy ma'lumotlar modeli oldindan tanlangan DBMS (ma'lumotlar bazasini boshqarish tizimi) platformasi bilan taqqoslanadi va Fizikaviy model olinadi. Bu ma'lumotlarning jismoniy saqlanishini tavsiflaydi.

4. To'g'ri ma'lumotlar turlaridan foydalaning

Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Noto'g'ri ma'lumotlar turidan foydalanish aniqroq ma'lumotlarga, jadvallarni birlashtirishda qiyinchiliklarga, atributlarni sinxronlashda qiyinchiliklarga va kattalashtirilgan fayl o'lchamlariga olib kelishi mumkin.
Axborot yaxlitligini ta'minlash uchun atribut faqat o'zi uchun maqbul bo'lgan ma'lumotlar turlarini o'z ichiga olishi kerak. Agar ma'lumotlar bazasiga yosh kiritilgan bo'lsa, ustunda maksimal 3 ta raqamdan iborat butun sonlar saqlanganligiga ishonch hosil qiling.

NULL qiymati bilan minimal bo'sh ustunlar yarating. Agar siz barcha ustunlarni NULL sifatida yaratsangiz, bu katta xatodir. Agar sizga ma'lum biznes funktsiyasini bajarish uchun bo'sh ustun kerak bo'lsa, ma'lumotlar noma'lum bo'lsa yoki hali mantiqiy bo'lmasa, uni bemalol yarating. Axir, biz "O'lim sanasi" yoki "Ishdan bo'shatilgan sana" ustunlarini oldindan to'ldira olmaymiz, biz barmoqlarimizni osmonga qaratgan bashoratchilar emasmiz :-).

Ko'pgina modellashtirish dasturlari (ER/Studio, MySQL Workbench, SQL DBM, glify).com) ma'lumotlar sizga ma'lumotlar mintaqalarining prototiplarini yaratishga imkon beradi. Bu nafaqat ma'lumotlarning to'g'ri turini, dastur mantig'ini va yaxshi ishlashini, balki qiymat talab qilinishini ham ta'minlaydi.

5. Tabiiy bo'ling

Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Jadvaldagi qaysi ustunni kalit sifatida ishlatishni tanlashda har doim foydalanuvchi qaysi maydonlarni tahrirlashi mumkinligini hisobga oling. Hech qachon ularni kalit sifatida tanlamang - yomon fikr. Hamma narsa sodir bo'lishi mumkin, lekin siz uning noyobligiga ishonch hosil qilishingiz kerak.

Tabiiy yoki biznes kalitidan foydalanish yaxshidir. Bu semantik ma'noga ega, shuning uchun siz ma'lumotlar bazasida takrorlanishdan qochasiz. 

Biznes kaliti noyob bo'lmasa (ismi, familiyasi, lavozimi) va jadvalning turli qatorlarida takrorlanmasa yoki u o'zgarishi kerak bo'lsa, yaratilgan sun'iy kalit asosiy kalit sifatida belgilanishi kerak.

6. Mo''tadillikda normallashtiring

Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Ma'lumotlar bazasida ma'lumotlarni samarali tartibga solish uchun siz ko'rsatmalar to'plamiga rioya qilishingiz va ma'lumotlar bazasini normallashtirishingiz kerak. Beshta oddiy shaklga amal qilish kerak.
Oddiylashtirish bilan siz ortiqcha narsalardan qochasiz va ilovangiz yoki saytingizda ishlatiladigan ma'lumotlarning yaxlitligini ta'minlaysiz.

Har doimgidek, hamma narsa me'yorda bo'lishi kerak, hatto normalizatsiya. Agar ma'lumotlar bazasida bir xil noyob kalitlarga ega bo'lgan juda ko'p jadvallar mavjud bo'lsa, demak siz o'zingizni bezovta qildingiz va ma'lumotlar bazasini haddan tashqari normallashtirdingiz. Haddan tashqari normalizatsiya ma'lumotlar bazasi ishiga salbiy ta'sir qiladi.

7. Erta sinovdan o'ting, tez-tez sinab ko'ring

Ma'lumotlar bazasi dizayni. Eng yaxshi amaliyotlar

Sinov rejasi va to'g'ri test ma'lumotlar bazasi dizaynining bir qismi bo'lishi kerak.

Ma'lumotlar bazasini sinab ko'rishning eng yaxshi usuli - doimiy integratsiya. "Ma'lumotlar bazasi hayotidagi kun" stsenariysini taqlid qiling va barcha chekka holatlar ko'rib chiqiladimi yoki yo'qmi va foydalanuvchi o'zaro ta'sirini tekshiring. Xatolarni qanchalik tez topsangiz, vaqt va pulni shunchalik tejaysiz.

Bu ajoyib mahsuldorlik va samaradorlik ma'lumotlar bazasini loyihalash uchun foydalanishingiz mumkin bo'lgan ettita maslahat. Agar siz ularga amal qilsangiz, kelajakda ko'pchilik bosh og'rig'idan qochasiz. Ushbu maslahatlar ma'lumotlar bazasini modellashtirishda aysbergning faqat uchi. Ko'p sonli hayotiy xakerlar mavjud. Qaysilaridan foydalanasiz?

Manba: www.habr.com

a Izoh qo'shish