# Ma'lumotlar bazasi nima

> Ma'lumotlar bazasi nima, u jadval ko'rinishida ma'lumotni qanday saqlaydi va nega matnli fayldan afzal? SQL o'rganishning eng birinchi kirish darsi.

Manba: https://learncode.uz/sql/malumotlar-bazasi-nima/
Sana: 2026-06-10

Har bir ilova — internet-do'kon, ijtimoiy tarmoq, bank ilovasi — juda ko'p
ma'lumot bilan ishlaydi: foydalanuvchilar, buyurtmalar, xabarlar. Bu
ma'lumot qayerda va qanday saqlanadi? Javob — **ma'lumotlar bazasi**. SQL'ni
o'rganishdan oldin, aynan shu tushunchani oydinlashtiramiz.

## Ma'lumotni saqlashning muammosi

Tasavvur qiling, kichik do'koningiz bor va mahsulotlarni shunchaki matnli
faylda saqlaysiz:

```
Olma, 8000, 50 dona
Non, 3000, 120 dona
Sut, 12000, 30 dona
```

Bu dastlab ishlaydi. Lekin do'kon o'ssa muammolar boshlanadi:

- "Narxi 5000 dan qimmat mahsulotlarni ko'rsat" — buni qanday qilasiz?
- Mahsulot 10 000 taga yetsa, kerakligini qanday tez topasiz?
- Ikki kishi bir vaqtda faylni o'zgartirsa — nima bo'ladi?

Matnli fayl bu savollarga javob bermaydi. Aynan shu yerda **ma'lumotlar
bazasi** kerak bo'ladi.

## Ma'lumotlar bazasi nima

**Ma'lumotlar bazasi (database)** — ma'lumotni tartibli saqlaydigan va
tez topib beradigan tizim. Uni yaxshi tashkil qilingan raqamli omborga
qiyoslash mumkin: har narsa o'z joyida, kerak bo'lganda bir soniyada
topiladi.

Bu darslarda **relatsion** (jadvalli) ma'lumotlar bazasi bilan ishlaymiz —
eng keng tarqalgan turi. Unda ma'lumot **jadval** ko'rinishida saqlanadi,
xuddi Excel jadvaliga o'xshab.

## Jadval — ustun va qatorlar

Yuqoridagi do'kon misolini jadval ko'rinishida ko'raylik:

| id | nom | narx | soni |
|---|---|---|---|
| 1 | Olma | 8000 | 50 |
| 2 | Non | 3000 | 120 |
| 3 | Sut | 12000 | 30 |

Bu yerda uch tushuncha bor:

- **Jadval (table)** — bir turdagi ma'lumotlar to'plami. Bu jadval nomi,
  masalan, `mahsulotlar`.
- **Ustun (column)** — ma'lumotning bir xususiyati: `nom`, `narx`, `soni`.
  Har ustunning aniq turi bor (matn, son).
- **Qator (row)** — bitta yozuv: bitta mahsulotning barcha ma'lumoti.

> **Atama**
>
> Har jadvalda odatda **`id`** ustuni bo'ladi — har qator uchun noyob
> raqam. U yozuvlarni bir-biridan aniq ajratadi: ikkita "Olma" bo'lsa ham,
> ularning `id` si har xil bo'ladi. Bu — qatorning "pasporti".

## Nega jadval matnli fayldan ustun

Jadval ko'rinishida saqlangan ma'lumot bilan quyidagilar oson bo'ladi:

- **Tez qidiruv.** Baza million qatordan kerakligini bir zumda topadi —
  u ma'lumotni maxsus tartibda (indeks bilan) saqlaydi.
- **Aniq so'rov.** "Narxi 5000 dan qimmatlarini ko'rsat" — bitta buyruq.
- **Bir vaqtda ishlash.** Yuzlab foydalanuvchi bir bazaga bexavotir
  murojaat qiladi, ma'lumot buzilmaydi.
- **Bog'lash.** Bir nechta jadval o'zaro [bog'lanadi](https://learncode.uz/sql/join) — masalan,
  `buyurtmalar` jadvali `mahsulotlar` jadvaliga ishora qiladi.

Ana shu jadvallar bilan ishlash uchun maxsus til bor — **SQL**. Uni
[keyingi darsda](https://learncode.uz/sql/sql-nima) ko'ramiz.

> **Yodda tuting**
>
> Ma'lumotlar bazasi — bu jadvallar to'plami. Jadval — ustun (xususiyat) va
> qatorlar (yozuvlar)dan iborat. Bu tuzilishni yaxshi tasavvur qilsangiz,
> SQL buyruqlari mantiqan tushunarli bo'ladi: siz doim jadval bilan
> ishlaysiz.

## Mashhur ma'lumotlar bazalari

Relatsion bazalarning bir nechta turi bor, lekin ularning **hammasi
SQL tilida** ishlaydi:

- **SQLite** — eng sodda, bitta fayl. O'rganish uchun ideal.
- **PostgreSQL** — kuchli, professional loyihalarda ko'p ishlatiladi.
- **MySQL** — web saytlarda keng tarqalgan.

SQL'ni bir marta o'rgansangiz, uchalasida ham ishlaysiz — asosiy buyruqlar
bir xil.

> **O'zingizni sinab ko'ring**
>
> O'zingizga tanish narsani jadval ko'rinishida tasavvur qiling — masalan,
> telefon kontaktlaringiz. Qaysi **ustunlar** bo'lardi? (ism, telefon raqami,
> ehtimol tug'ilgan kun.) Har bir **qator** nima bo'lardi? (bitta odam.)
>
> Shu mashqni bajarsangiz — ma'lumotni jadvalga ajratishni tushundingiz.
> Bu — SQL bilan ishlashning asosiy ko'nikmasi.

## Jonli namuna

O'zingiz ishga tushirib ko'ring — so'rovni tahrirlashingiz ham mumkin:

```sql
SELECT * FROM mahsulotlar;
```

## Amaliy mashq

Bu darsda so'rov yozilmaydi — tuzilmani tushuning:

1. Yuqoridagi runner'da `SELECT * FROM mahsulotlar;` ni ishga tushiring;
2. natijadagi ustunlar va qatorlarni sanang;
3. qaysi ustun har qator uchun noyob ekanini toping;
4. `mijozlar` va `buyurtmalar` jadvallarini ham ko'ring;
5. qog'ozda chizing: bu uch jadval bir-biriga qanday bog'langan?
6. `SELECT * FROM buyurtmalar WHERE mijoz_id = 1;` ni bajaring va chiqqan
   `mahsulot_id` raqamlarini `mahsulotlar` jadvalidan qo'lda toping.

`buyurtmalar` dagi qaysi ustunlar boshqa jadvalga ishora qilyapti?

## Qisqacha xulosa

- Ma'lumotlar bazasi — ma'lumotni tartibli saqlaydigan va tez topib
  beradigan tizim.
- Relatsion bazada ma'lumot **jadval** ko'rinishida saqlanadi.
- Jadval: **ustunlar** (xususiyatlar) va **qatorlar** (yozuvlar)dan iborat;
  odatda `id` ustuni har qatorni noyob belgilaydi.
- Jadval matnli fayldan ustun: tez qidiruv, aniq so'rov, bir vaqtda ishlash,
  jadvallarni bog'lash.
- Barcha relatsion bazalar (SQLite, PostgreSQL, MySQL) **SQL tilida**
  ishlaydi.

[Keyingi darsda](https://learncode.uz/sql/sql-nima) SQL tili bilan tanishamiz va birinchi
so'rovimizni yozamiz.
