SQL ER-model va baza dizayni
Yaxshi baza kod yozishdan oldin qog’ozda rejalashtiriladi: qanday jadvallar bo’ladi va ular qanday bog’lanadi? Bu rejani chizishning eng keng tarqalgan usuli — ER-model. Bu darsda baza dizaynining asosini ko’ramiz.
ER-model nima
ER-model (Entity–Relationship — “obyekt–bog’lanish”) — bazani jadvallar va ular orasidagi aloqalar ko’rinishida chizadigan sxema. Ikki asosiy tushuncha:
- Entity (obyekt) — real narsa, u jadvalga aylanadi:
mijoz,mahsulot. - Relationship (bog’lanish) — jadvallar o’rtasidagi aloqa: mijoz buyurtma beradi.
Namuna bazamiz aynan shunday loyihalangan: uchta entity (mijozlar,
mahsulotlar, buyurtmalar) va ular orasidagi bog’lanishlar.
Bir-ko’p munosabati
Eng ko’p uchraydigan bog’lanish — bir-ko’p (one-to-many): bir mijoz ko’p buyurtma beradi, lekin har buyurtma bitta mijozga tegishli.
Bu munosabat foreign key bilan quriladi:
buyurtmalar.mijoz_id — mijozlar.id ga ishora qiladi. “Ko’p” tomondagi
jadval (buyurtmalar) “bir” tomonga (mijozlar) kalit orqali bog’lanadi.
Dizayn tartibi
Baza qurishdan oldin quyidagi bosqichlar foydali:
- Entity’larni aniqlang — qanday asosiy narsalar bor (mijoz, mahsulot)?
- Har entity atributlarini yozing — mijozning ismi, shahri, yoshi.
- Bog’lanishlarni belgilang — kim kim bilan bog’liq?
- Normallashtiring — takrorni yo’qoting.
- Keyin
CREATE TABLEbilan quring.
Jonli namuna
O’zingiz ishga tushirib ko’ring — so’rovni tahrirlashingiz ham mumkin:
Amaliy mashq
Bog’lanishlarni chizing:
LEFT JOINbilan har mijozning buyurtmalar sonini chiqaring;- hech narsa buyurtma qilmagan mijozni toping;
- bitta mijoz nechta buyurtma qila oladi — bir yoki ko’pmi?
- bitta buyurtmada nechta mijoz bo’ladi?
- qog’ozda uch jadvalni to’rtburchak qilib chizing va oralarini chiziq bilan bog’lang.
3 va 4-qadam javoblari “bir-ko’p” munosabatini tavsiflaydi.
Qisqacha xulosa
- ER-model — bazani entity va bog’lanishlar ko’rinishida chizadigan reja.
- Entity — jadvalga aylanadigan narsa; relationship — ular orasidagi aloqa.
- Bir-ko’p — eng keng tarqalgan munosabat, foreign key bilan quriladi.
- Dizayn tartibi: entity → atribut → bog’lanish → normalizatsiya → qurish.
- Avval rejalashtiring, keyin
CREATE TABLEyozing.
Bu bilan SQL bo’limining asosiy darslarini yakunladik. Keyingi qadam — bilimni mustahkamlash uchun mashqlar va takrorlash.