Dasturiy ta’minot ishlab chiqish · 2026-yil 14-oktabr · 2 daqiqa o‘qish

SQL ma’lumotlar bazasini loyihalash: jadvallar, bog‘lanishlar va indekslar

Bu sahifa rus tilida: /blog/razrabotka-bazy-dannyh-sql

Relyatsion bazalar (PostgreSQL, MySQL, MS SQL va boshqalar) ma’lumotlarni jadvallarda saqlaydi va ular orasidagi bog‘lanishlarni SQL tili orqali boshqaradi. Kod yillar davomida qayta yozilishi mumkin, baza tuzilmasi esa odatda uzoq yashaydi. Shuning uchun uni o‘ylab loyihalash kerak.

1-qadam: ob’ektlarni ajratish

Biznes jarayonidagi «otlar»ni toping: mijoz, buyurtma, mahsulot, ombor, to‘lov, xodim. Har biri — nomzod jadval. Har bir ob’ekt uchun savol bering: uning qanday xususiyatlari bor va u boshqa ob’ektlar bilan qanday bog‘langan?

2-qadam: kalitlar

  • Birlamchi kalit — har bir qatorni aniq belgilaydigan maydon. Odatda tizim tomonidan beriladigan raqam yoki noyob identifikator. Telefon raqami yoki pasport raqami kabi «tabiiy» qiymatlarni birlamchi kalit qilish xavfli — ular o‘zgaradi.
  • Tashqi kalit — boshqa jadvaldagi qatorga havola. Masalan, buyurtmada mijoz identifikatori. Baza havola qilingan mijoz mavjudligini o‘zi tekshiradi.

3-qadam: bog‘lanish turlari

  • Birga-ko‘p — bitta mijozning ko‘p buyurtmasi. Buyurtmalar jadvalida mijozga havola.
  • Ko‘pga-ko‘p — buyurtmada ko‘p mahsulot, mahsulot ko‘p buyurtmada. Oraliq jadval kerak: buyurtma pozitsiyalari (buyurtma, mahsulot, soni, narxi).
  • Birga-bir — kamdan-kam; masalan, foydalanuvchi va uning batafsil profili alohida saqlanganda.

4-qadam: normallashtirish

Asosiy g‘oya: har bir fakt bir joyda saqlanadi. Mijoz manzili har bir buyurtmada qayta yozilmaydi — mijozga havola yetarli. Aks holda manzil o‘zgarganda uni hamma joyda yangilash kerak va qarama-qarshiliklar paydo bo‘ladi.

Istisno ham bor: buyurtma paytidagi narx buyurtma pozitsiyasida saqlanishi kerak, chunki mahsulot narxi keyin o‘zgaradi, buyurtma tarixi esa o‘zgarmasligi kerak. Bu takror emas, balki boshqa fakt — «sotilgan narx».

5-qadam: maydon turlari va cheklovlar

  • Pul summalari uchun aniq o‘nlik tur, kasr sonli (float) emas
  • Sanalar uchun sana turi, matn emas
  • Majburiy maydonlar — NOT NULL
  • Noyob qiymatlar — UNIQUE (masalan, mahsulot artikuli)
  • Ruxsat etilgan qiymatlar tekshiruvi (masalan, holat faqat ro‘yxatdagilardan)

Baza darajasidagi cheklovlar ilova xatolaridan himoya qiladi: noto‘g‘ri kod ham noto‘g‘ri ma’lumot yoza olmaydi.

6-qadam: indekslar

Indeks — kitobdagi mundarija kabi: qidirishni tezlashtiradi. Qidiruv, saralash va bog‘lash uchun ishlatiladigan maydonlarga indeks qo‘yiladi: telefon raqami, buyurtma sanasi, tashqi kalitlar. Lekin har bir indeks yozishni biroz sekinlashtiradi va joy egallaydi, shuning uchun «hamma maydonga» emas, real so‘rovlarga qarab qo‘yiladi.

Tipik xatolar

  • Bitta jadvalga hammasini yig‘ish: «mahsulot1, mahsulot2, mahsulot3» ustunlari
  • O‘chirish o‘rniga yozuvlarni yo‘qotish — buxgalteriya va tarix uchun «o‘chirilgan» belgisi ko‘pincha yaxshiroq
  • O‘zgarishlar tarixini saqlamaslik: kim va qachon narx yoki holatni o‘zgartirgani
  • Jadval va maydon nomlarida tartibsizlik: bir joyda inglizcha, boshqasida transliteratsiya
  • Tuzilma o‘zgarishlarini qo‘lda qilish — migratsiya skriptlari orqali, versiyalangan holda bajarilishi kerak

Hujjatlashtirish

Jadvallar va bog‘lanishlar sxemasi (ER-diagramma) va har bir maydon uchun qisqa izoh. Keyin hisobot tuzadigan tahlilchi ham, yangi dasturchi ham shu hujjatdan boshlaydi.

Vazifani muhokama qilamiz

Ism va telefon raqamingizni qoldiring — qo‘ng‘iroq qilib, jarayon haqida so‘raymiz va nimadan boshlashni taklif qilamiz.

Loyihani muhokama qilish

Mavzuga oid maqolalar

Dasturiy ta’minot ishlab chiqish

Texnik topshiriq va brif: farqi nimada va qaysi birini avval tayyorlash

Brif — vazifa haqida birinchi suhbat, TT — natija qanday bo‘lishi haqida aniq kelishuv. Ularni aralashtirish loyihani boshidanoq chalkashtiradi.

2026-yil 14-oktabr

Dasturiy ta’minot ishlab chiqish

GOST 34 bo‘yicha texnik topshiriq: qachon kerak va qanday tuzilgan

Davlat va yirik korporativ loyihalarda TT ko‘pincha GOST 34 bo‘yicha talab qilinadi. Bu standart nimani nazarda tutadi va qachon foydali.

2026-yil 14-oktabr

Dasturiy ta’minot ishlab chiqish

Texnik topshiriq shartnoma ilovasi sifatida: nimani qayd etish kerak

Shartnomada «sayt ishlab chiqish» deb yozilsa, nizolarda har kim o‘z tushunchasini isbotlaydi. TT ilovasi ishning aniq hajmini belgilaydi.

2026-yil 14-oktabr

Dasturiy ta’minot ishlab chiqish

Tizim tahlilchisi va texnik topshiriq: talablarni kim va qanday yozadi

Biznes «nima kerak»ni biladi, dasturchi «qanday qilish»ni. Ularning o‘rtasida tizim tahlilchisi turadi va talablarni ikki tomon ham tushunadigan tilga o‘giradi.

2026-yil 14-oktabr

Dasturiy ta’minot ishlab chiqish

Texnik topshiriq va spetsifikatsiya: hujjatlar orasidagi farq

Ikkala hujjat ham «talablar» haqida, lekin turli savollarga javob beradi. Qachon qaysi biri kerakligini tushuntiramiz.

2026-yil 14-oktabr

Dasturiy ta’minot ishlab chiqish

Texnik topshiriq va texnik loyiha: har bir hujjat nimani tasvirlaydi

Texnik topshiriq «nima kerak»ni belgilaydi, texnik loyiha esa «qanday quramiz»ni. Katta tizimlarda bu ikki hujjat alohida bosqichlar hisoblanadi.

2026-yil 14-oktabr

Ariza

Vazifani muhokama qilamiz

Ism va telefon raqamingizni qoldiring — qo‘ng‘iroq qilib, jarayon haqida so‘raymiz va nimadan boshlashni taklif qilamiz.

Yoki qo‘ng‘iroq qiling

+998 94 444 48 85

Tugmani bosish orqali shaxsiy ma’lumotlaringizni qayta ishlashga rozilik bildirasiz.