# Ma'lumotlar bazasi tushunchasi

> Web saytlar ma'lumotni qanday saqlaydi? Ma'lumotlar bazasi nima, nega fayl yetmaydi va backend baza bilan qanday ishlashi hamda SQL'ning o'rni haqida.

Manba: https://learncode.uz/web-dasturlash/malumotlar-bazasi/
Sana: 2026-05-08

![Foydalanuvchi, mahsulot va izoh ma'lumotlari tartibli bazada saqlanishini ko'rsatuvchi rasm](https://learncode.uz/images/web-dasturlash/malumotlar-bazasi-hero.webp)

*Ma'lumotlar bazasi saytning foydalanuvchi, mahsulot va izoh kabi ma'lumotlarini tartibli saqlaydi.*

Sayt foydalanuvchilar, mahsulotlar, izohlarni **saqlashi** kerak — dastur
o'chib-yonganida ham ular yo'qolmasin. Buning uchun **ma'lumotlar bazasi**
ishlatiladi. Bu darsda web nuqtai nazaridan baza tushunchasini ko'ramiz.

## Nega baza kerak

Kichik ma'lumotni oddiy [faylda](https://learncode.uz/python/fayl-oqish-yozish) saqlash mumkin.
Lekin bir vaqtning o'zida ko'p foydalanuvchi yozuv qo'shsa, ma'lumotlar
orasida bog'lanish bo'lsa, izlash, filtrlash va xavfsiz yangilash talab qilinsa,
oddiy faylni boshqarish qiyinlashadi. **Ma'lumotlar bazasi boshqaruv tizimi**
ma'lumotni tartibli saqlash, so'rov bilan topish, bir nechta amalni ishonchli
bajarish va ruxsatlarni nazorat qilishga yordam beradi.

## Baza qanday tuzilgan

Ko'p sayt **relatsion** bazadan foydalanadi: ma'lumot qator va ustunli
jadvallarda saqlanadi. Masalan `foydalanuvchilar` jadvalida har qator — bir
foydalanuvchi, ustunlar esa `id`, ism, email va `parol_hash` bo'lishi mumkin.
Parolning o'zi ochiq ko'rinishda saqlanmaydi; server undan maxsus bir tomonlama
funksiya yordamida xesh yaratadi.

Bu aynan [SQL](https://learncode.uz/sql/sql-nima) darslarida ko'rgan tuzilma. Web backend'i baza
bilan bevosita SQL yoki ORM deb ataladigan dasturiy qatlam orqali gaplashishi
mumkin: ma'lumot qo'shadi, o'qiydi, yangilaydi va o'chiradi. Bu to'rtta amal
ko'pincha **CRUD** — Create, Read, Update, Delete — deb qisqartiriladi.

Hamma baza jadvalli emas. Hujjat, kalit-qiymat yoki grafik ko'rinishida
saqlaydigan **NoSQL** tizimlari ham mavjud. Baza turi loyiha ehtiyojiga qarab
tanlanadi; "NoSQL zamonaviyroq" yoki "SQL har doim yaxshiroq" degan umumiy
qoida yo'q.

![Foydalanuvchilar jadvalidagi bitta foydalanuvchini bildiradigan qator va ism, email, parol ustunlari](https://learncode.uz/images/web-dasturlash/jadval-qator-ustun.webp)

*Jadval ma'lumotni qator va ustunlarga ajratadi: har qator bitta yozuv, har ustun esa uning xususiyatidir.*

> **Atama**
>
> **Ma'lumotlar bazasi** — ma'lumotni tartibli saqlaydigan va tez qidirish
> imkonini beradigan tizim. Web saytlarda u backend tomonda ishlaydi;
> foydalanuvchi uni bevosita ko'rmaydi, faqat natijasini (ro'yxat, profil)
> ko'radi.

## Backend va baza birga

To'liq zanjir shunday: foydalanuvchi tugmani bosadi → frontend backendga
so'rov yuboradi → backend bazadan ma'lumot oladi → uni frontendga qaytaradi →
frontend chiroyli ko'rsatadi. Baza — shu zanjirning **xotira** qismi.

Backend bazaga kirishni nazorat qiladigan vositachidir. Brauzerga baza paroli
berilmaydi va foydalanuvchi odatda bazaga to'g'ridan-to'g'ri SQL yubormaydi.
Backend so'rovni tekshiradi, ruxsat berilgan amalni bajaradi va faqat kerakli
natijani qaytaradi.

![Frontend so'rovi backend orqali SQL bilan bazaga borib, ma'lumot va javobning yana ekranga qaytish oqimi](https://learncode.uz/images/web-dasturlash/baza-sorov-oqimi.webp)

*Frontend so'rovi backend orqali bazaga yetadi, topilgan ma'lumot esa javob sifatida ekranga qaytadi.*

> **Yodda tuting**
>
> Backend yoki fullstack yo'nalishi uchun [SQL](https://learncode.uz/sql/sql-nima) asoslarini bilish
> juda foydali, chunki ko'plab amaliy loyihalar relatsion bazadan foydalanadi.
> Frontend dasturchi bazaga bevosita murojaat qilmasa ham, API orqali keladigan
> ma'lumotning qanday tuzilganini tushunishi kerak.

## Ishonchlilik va xavfsizlik

Baza faqat saqlash joyi emas. U bir vaqtning o'zida kelgan o'zgarishlar
bir-birini buzmasligi uchun tranzaksiyalardan, tez qidirish uchun indekslardan
va yo'qolgan ma'lumotni tiklash uchun zaxira nusxalardan foydalanishi mumkin.
Bu mavzular keyin chuqur o'rganiladi, ammo boshlovchi bitta muhim qoida bilan
ketishi kerak: foydalanuvchidan kelgan qiymatni tekshirmasdan SQL matniga
qo'shib yuborish xavfli. Parametrli so'rov yoki ishonchli ORM ishlatiladi.

> **Jadvalni loyihalang**
>
> Oddiy vazifalar ilovasi uchun ikki jadval tasavvur qiling:
> `foydalanuvchilar(id, ism, email, parol_hash)` va
> `vazifalar(id, sarlavha, bajarildi, foydalanuvchi_id)`. Oxirgi ustun vazifa
> qaysi foydalanuvchiga tegishli ekanini bog'laydi. Backend shu bog'lanishni
> tekshirib, boshqa odamning vazifasini ko'rishga yo'l qo'ymasligi kerak.

## Qisqacha xulosa

- **Ma'lumotlar bazasi** — ma'lumotni tartibli saqlaydi, tez qidirish beradi.
- Relatsion bazalar jadval va SQLdan foydalanadi; NoSQL bazalar boshqa
  modellarda ishlashi mumkin.
- Backend baza bilan SQL yoki ORM orqali ishlaydi va CRUD amallarini bajaradi.
- Ochiq parol saqlanmaydi; parol xeshi, ruxsat nazorati va parametrli
  so'rovlar muhim.
- Zanjir: frontend → backend → baza → backend → frontend.

Keyingi darsda [API nima va nega kerak](https://learncode.uz/web-dasturlash/api-nima) — backend
ma'lumotni boshqa dasturlarga qanday kelishilgan shaklda berishini ko'ramiz.
