Tarkibga o'tish

Ma'lumotlar bazasi dizayni β€” 0 dan ekspertgacha

Bu kitob ma'lumotlar bazasini to'g'ri loyihalashni o'rgatadi: talab tahlilidan ER-modellashtirish, normalizatsiya va fizik dizayndan tortib NoSQL, analitik ombor va taqsimlangan masshtablashgacha. Asosiy vosita β€” PostgreSQL 18, lekin tamoyillar har qanday bazaga tegishli; kerakli joyda MySQL farqlari ham izohlanadi.

🎯 Bu kitob nimasi bilan SQL kitobidan farq qiladi? SQL va MySQL kitobi bazadan qanday so'rov yozishni (SELECT, JOIN, GROUP BY) o'rgatadi. Bu kitob esa undan keyingi savolga javob beradi: qanday sxema loyihalash kerak? Qaysi jadval, qaysi kalit, qancha normalizatsiya, qaysi indeks, qaysi modellashtirish naqshi. Sintaksis emas β€” qaror.

🎨 Har bob SVG diagrammalar bilan boyitilgan (jami 72 ta): ER-model, kardinallik, normalizatsiya qadamlari, indeks tuzilishi, star-schema, partition xaritasi va boshqalar ko'z bilan ko'rib o'rganiladi.

πŸ’» Hamma kod ishlatiladi. Kitobdagi har bir DDL va so'rov PostgreSQL 18.4 da haqiqatan ishga tushirilib tekshirilgan. Siz ham har misolni o'zingiz tering β€” dizayn o'qib emas, loyihalab o'rganiladi.


Talab

Kerak Daraja
SQL asoslari (SELECT, JOIN, CREATE) Shart β€” avval SQL va MySQL kitobini o'qing
PostgreSQL 16+ (18 tavsiya etiladi) Shart β€” misollarni sinash uchun
Oldingi dizayn tajribasi Shart emas

Qanday o'qish kerak

  1. Boblarni tartib bilan o'qing β€” har qism oldingisiga tayanadi (modellashtirish β†’ normalizatsiya β†’ fizik dizayn β†’ ilg'or mavzular).
  2. Har bobdagi DDL'ni o'z PostgreSQL'ingizda terib ko'ring β€” sxemani his qilish uchun.
  3. Bob oxiridagi dizayn masalalarini o'zingiz yeching: berilgan talabni sxemaga aylantiring, anti-naqshni toping va tuzating.
  4. Diagrammalarga e'tibor bering β€” ular dizayn qarorini tezroq singdiradi.

I qism β€” Asoslar va konseptual modellashtirish

# Bob Nima o'rganasiz
01 Ma'lumotlar bazasi dizayni nima va nega muhim Yomon sxemaning narxi (anomaliya, sekinlik, bug), dizaynning uch bosqichi (konseptual β†’ logik β†’ fizik) va yaxshi sxema belgilari.
02 Talab tahlili va domen modellashtirish Biznes talabidan model elementlarini ajratish (ot β†’ entity, sifat β†’ atribut, fe'l β†’ bog'lanish), biznes qoidalari va ko'lam.
03 ER-diagramma: entity, atribut, bog'lanish Entity, atribut turlari, Crow's foot notatsiyasi va to'liq ER-diagramma o'qish hamda chizish.
04 Bog'lanishlar va kardinallik (1:1, 1:N, N:M) Kardinallik, modallik (ixtiyoriy/majburiy), N:M ni junction jadvalga aylantirish va o'z-o'ziga bog'lanish.

II qism β€” Relyatsion model va normalizatsiya

# Bob Nima o'rganasiz
05 Relyatsion model va kalit turlari Relyatsion model qoidalari, kalit iyerarxiyasi (super/candidate/primary/foreign) va NULL ning xavfi (uch qiymatli mantiq).
06 Kalit dizayni: natural, surrogate, UUID, kompozit Natural vs surrogate trade-off, IDENTITY, UUID v4 vs v7 (uuidv7()), kompozit va business kalit.
07 Normalizatsiya I: 1NF, 2NF, 3NF va anomaliyalar Funksional bog'liqlik, uchta anomaliya va jadvalni 1NF β†’ 2NF β†’ 3NF bo'ylab qadam-baqadam parchalash.
08 Normalizatsiya II: BCNF, 4NF, 5NF va denormalizatsiya BCNF, ko'p qiymatli bog'liqlik (4NF), 5NF va denormalizatsiya qachon ataylab to'g'ri ekani.
09 Logik modeldan fizik sxemaga ER β†’ jadval o'tkazish qoidalari, nomlash konvensiyalari va to'liq DDL skript tuzilishi.

III qism β€” Yaxlitlik, turlar va naqshlar

# Bob Nima o'rganasiz
10 To'g'ri ma'lumot turini tanlash PostgreSQL boy turlari: numeric vs float (pul!), timestamptz, enum, JSONB, array, range, generated column, domain.
11 Yaxlitlik va constraint dizayni Yaxlitlikni bazada majburlash: CHECK, UNIQUE, EXCLUDE, FK ON DELETE strategiyasi va deferrable constraint.
12 Keng tarqalgan dizayn naqshlari Soft delete, audit/tarix ustunlari, status modellashtirish, slug, polimorfik bog'lanish va pul+valyuta.
13 Anti-naqshlar: nima qilmaslik kerak Jaywalking (CSV ustun), EAV, naive tree, god-table, float'da pul, indekssiz FK β€” alomat β†’ nega yomon β†’ tuzatish.

IV qism β€” Fizik dizayn va performans

# Bob Nima o'rganasiz
14 Indeks strategiyasi B-tree/GIN/BRIN/GiST qachon, kompozit ustun tartibi, qisman/ifoda/covering indeks va indeks narxi.
15 Sxema va so'rov performansi (EXPLAIN ANALYZE) EXPLAIN rejasini o'qish, N+1 muammosi, materialized view va keshlangan agregat β€” "avval o'lcha".
16 Tranzaksiya, izolyatsiya va parallellik dizayni ACID, izolyatsiya darajalari, MVCC, lost update, optimistik vs pessimistik qulflash va deadlock.

V qism β€” Ilg'or modellashtirish

# Bob Nima o'rganasiz
17 Daraxt va graf strukturalarini modellashtirish Adjacency list, materialized path, nested set, closure table trade-off va recursive CTE bilan aylanish.
18 Vaqtinchalik va versiyalangan ma'lumot Bitemporal model, tarix jadvali, audit log, event sourcing va PG18 temporal constraint (WITHOUT OVERLAPS).
19 Multi-tenancy dizayni va RLS Ko'p-ijarachi SaaS uchun 3 strategiya va PostgreSQL Row-Level Security bilan tenant izolyatsiyasi.

VI qism β€” NoSQL, analitik va masshtab

# Bob Nima o'rganasiz
20 NoSQL ma'lumot modellashtirish Document/key-value/wide-column/graph qachon, embed vs reference (MongoDB), Redis dizayn va CAP/BASE.
21 Analitik dizayn va ma'lumotlar ombori OLTP vs OLAP, dimensional modeling, star vs snowflake schema, grain va slowly changing dimensions.
22 Partitioning, sharding va masshtablash PostgreSQL partitioning (RANGE/LIST/HASH) + pruning, sharding strategiyalari, replication va CAP teoremasi.
23 Migratsiya va sxema evolyutsiyasi Versiyalangan migratsiya, zero-downtime, expand-contract naqshi va xavfsiz vs lock-oluvchi ALTER.

VII qism β€” Kapston

# Bob Nima o'rganasiz
24 Yakuniy loyiha: tizimni 0 dan loyihalash Real tizimni talabdan to'liq fizik sxemagacha loyihalash: ER β†’ normalizatsiya β†’ DDL β†’ indeks β†’ partition β†’ migratsiya + ADR.

Muallif

Oqil Imomnazarov β€” ioqil.uz Β· Telegram Β· YouTube

Kitob bepul tarqatiladi (CC BY-NC-SA 4.0). Savdo qilish taqiqlanadi.