Bosh sahifa Wiki DataBase

DataBase

Database — ma’lumotlarni tartibli saqlash, boshqarish, qidirish va yangilash uchun ishlatiladigan tizim. Database o‘zbekchada ma’lumotlar bazasi deb ataladi.

Ma’lumotlar bazasi saytlar, mobil ilovalar, bank tizimlari, internet do‘konlar, CRM, ERP, ijtimoiy tarmoqlar, botlar va boshqa ko‘plab dasturiy tizimlarda ishlatiladi.

Vazifasi

Database ma’lumotlarni oddiy fayllardan ko‘ra tartibliroq va boshqariladigan shaklda saqlaydi.

Database quyidagi vazifalarni bajaradi:

  • ma’lumotlarni saqlash;
  • ma’lumotlarni qidirish;
  • yangi ma’lumot qo‘shish;
  • mavjud ma’lumotni yangilash;
  • keraksiz ma’lumotni o‘chirish;
  • ma’lumotlar orasidagi bog‘lanishni yuritish;
  • foydalanuvchi ruxsatlarini boshqarish;
  • katta hajmdagi ma’lumotlar bilan ishlash;
  • backup va tiklash jarayonlarini qo‘llash.

Masalan, internet do‘konda mahsulotlar, foydalanuvchilar, buyurtmalar va to‘lovlar ma’lumotlar bazasida saqlanadi.

Database qanday ishlaydi?

Dastur database bilan maxsus so‘rovlar orqali ishlaydi. Backend ilova database serverga so‘rov yuboradi, database esa kerakli ma’lumotni topadi yoki o‘zgartiradi.

Oddiy jarayon:

  • client backend API’ga so‘rov yuboradi;
  • backend so‘rovni qayta ishlaydi;
  • backend database’ga query yuboradi;
  • database kerakli amalni bajaradi;
  • natija backendga qaytadi;
  • backend javobni clientga yuboradi.

Masalan, foydalanuvchi login qilganda backend database’dan shu emailga tegishli foydalanuvchini qidiradi.

DBMS

DBMS — database’ni boshqarish uchun ishlatiladigan dasturiy tizim. DBMS inglizcha Database Management System so‘zlarining qisqartmasi.

DBMS quyidagi ishlarni bajaradi:

  • database yaratish;
  • jadval yoki kolleksiya yaratish;
  • ma’lumot qo‘shish;
  • query bajarish;
  • foydalanuvchi ruxsatlarini boshqarish;
  • transaction yuritish;
  • indekslardan foydalanish;
  • backup va restore qilish.

Mashhur DBMS’lar:

Relational database

Relational database — ma’lumotlarni jadval ko‘rinishida saqlaydigan database turi. Unda ma’lumotlar qator va ustunlardan iborat bo‘ladi.

Relational database’da quyidagi tushunchalar ishlatiladi:

Masalan, users jadvalida foydalanuvchilar, orders jadvalida esa buyurtmalar saqlanishi mumkin. Buyurtmalar foydalanuvchi ID’si orqali foydalanuvchilar jadvali bilan bog‘lanadi.

NoSQL database

NoSQL database — ma’lumotlarni jadvaldan boshqa shakllarda saqlaydigan database turi. NoSQL tizimlari katta hajmdagi, moslashuvchan yoki tez o‘zgaradigan ma’lumotlar bilan ishlashda qo‘llanadi.

NoSQL database turlari:

  • Document database — ma’lumotlarni JSON’ga o‘xshash hujjatlarda saqlaydi;
  • Key-value database — kalit va qiymat ko‘rinishida saqlaydi;
  • Graph database — obyektlar orasidagi bog‘lanishlarni grafik shaklida saqlaydi;
  • Column-family database — ma’lumotlarni ustunlar oilasi ko‘rinishida saqlaydi.

MongoDB document database, Redis esa key-value database sifatida ishlatiladi.

Table

Table — relational database’da ma’lumotlar saqlanadigan jadval. Har bir table ma’lum turdagi ma’lumotlarni saqlaydi.

Masalan:

  • users — foydalanuvchilar;
  • products — mahsulotlar;
  • orders — buyurtmalar;
  • comments — kommentlar;
  • categories — kategoriyalar.

Table ichida ustunlar va qatorlar bo‘ladi. Har bir qator bitta yozuvni bildiradi.

Row va column

Relational database’da ma’lumotlar row va column orqali tartiblanadi.

  • Row — jadvaldagi bitta yozuv;
  • Column — yozuvdagi alohida maydon.

Masalan, users jadvalida quyidagi columnlar bo‘lishi mumkin:

  • id;
  • name;
  • email;
  • password;
  • created_at.

Har bir foydalanuvchi esa shu jadvaldagi alohida row sifatida saqlanadi.

Primary key

Primary key — jadvaldagi har bir yozuvni yagona aniqlash uchun ishlatiladigan maydon.

Masalan, users jadvalida id primary key bo‘lishi mumkin. Har bir foydalanuvchining id qiymati boshqa foydalanuvchidan farq qiladi.

Primary key quyidagi xususiyatlarga ega:

  • har bir yozuv uchun yagona bo‘ladi;
  • bo‘sh qiymat bo‘lmaydi;
  • yozuvni aniqlashda ishlatiladi;
  • boshqa jadvallar bilan bog‘lanishda ishlatilishi mumkin.

Foreign key

Foreign key — bir jadvaldagi yozuvni boshqa jadvaldagi yozuv bilan bog‘laydigan maydon.

Masalan, orders jadvalida user_id maydoni bo‘lishi mumkin. Bu maydon users jadvalidagi foydalanuvchiga bog‘lanadi.

Foreign key quyidagi holatlarda ishlatiladi:

  • foydalanuvchi va buyurtmalarni bog‘lash;
  • maqola va muallifni bog‘lash;
  • mahsulot va kategoriyani bog‘lash;
  • komment va foydalanuvchini bog‘lash;
  • to‘lov va buyurtmani bog‘lash.

Foreign key database ichidagi ma’lumotlar orasidagi munosabatlarni tartibli saqlashga yordam beradi.

Query

Query — database’ga yuboriladigan so‘rov. Query orqali ma’lumot olish, qo‘shish, yangilash yoki o‘chirish mumkin.

SQL query misollari:

SELECT * FROM users;

INSERT INTO users (name, email) VALUES ('Ali', '[email protected]');

UPDATE users SET name = 'Vali' WHERE id = 1;

DELETE FROM users WHERE id = 1;

Query backend ilova, admin panel, database client yoki terminal orqali bajarilishi mumkin.

SQL

SQL — relational database bilan ishlash uchun ishlatiladigan so‘rov tili. SQL inglizcha Structured Query Language so‘zlarining qisqartmasi.

SQL yordamida quyidagi amallar bajariladi:

  • table yaratish;
  • ma’lumot qo‘shish;
  • ma’lumot o‘qish;
  • ma’lumot yangilash;
  • ma’lumot o‘chirish;
  • jadvallarni bog‘lash;
  • filterlash;
  • saralash;
  • guruhlash.

PostgreSQL, MySQL, SQLite va Microsoft SQL Server SQL asosida ishlaydi.

Index

Index — database’da qidiruvni tezlashtirish uchun ishlatiladigan maxsus tuzilma. Index kitob oxiridagi ko‘rsatkichga o‘xshaydi: kerakli ma’lumotni tezroq topishga yordam beradi.

Index quyidagi maydonlarda ishlatilishi mumkin:

Masalan, email ustunida index bo‘lsa, foydalanuvchini email orqali topish tezroq bajariladi.

Transaction

Transaction — database’da bir nechta amalni bitta yaxlit jarayon sifatida bajarish usuli. Transaction ichidagi amallar to‘liq bajariladi yoki umuman bekor qilinadi.

Transaction quyidagi holatlarda muhim:

  • pul o‘tkazish;
  • buyurtma yaratish;
  • to‘lovni tasdiqlash;
  • ombordagi mahsulot sonini kamaytirish;
  • bir nechta jadvalni bir vaqtda yangilash.

Masalan, to‘lov jarayonida pul yechilsa, lekin buyurtma yaratilmasa, ma’lumotlar noto‘g‘ri holatga keladi. Transaction bunday jarayonlarni yaxlit boshqaradi.

Backup

Backup — database nusxasini saqlab qo‘yish jarayoni. Backup ma’lumot yo‘qolishi yoki tizim buzilishi holatida database’ni tiklash uchun ishlatiladi.

Backup quyidagi ma’lumotlarni saqlashi mumkin:

  • barcha jadvallar;
  • foydalanuvchi ma’lumotlari;
  • buyurtmalar;
  • konfiguratsiyalar;
  • loglar;
  • fayl bog‘lanishlari;
  • schema tuzilmasi.

Database backup tizimi server va biznes tizimlarida muhim infratuzilma qismi hisoblanadi.

Replication

Replication — database ma’lumotlarini bir serverdan boshqa serverga nusxalash jarayoni. Bu usul yuqori barqarorlik, o‘qish yuklamasini taqsimlash va zaxira tizim yaratish uchun ishlatiladi.

Replication turlari:

  • primary-replica;
  • master-slave;
  • master-master;
  • synchronous replication;
  • asynchronous replication.

Masalan, asosiy database yozish amallarini qabul qiladi, replica database esa o‘qish so‘rovlariga javob berishi mumkin.

Database va backend

Backend ilova ko‘pincha database bilan ishlaydi. Foydalanuvchi yuborgan ma’lumotlar backend orqali database’ga yoziladi yoki database’dan o‘qiladi.

Backend database orqali quyidagilarni bajaradi:

  • foydalanuvchi ro‘yxatdan o‘tkazish;
  • login tekshirish;
  • mahsulotlar ro‘yxatini olish;
  • buyurtma yaratish;
  • komment saqlash;
  • statistika hisoblash;
  • admin panel ma’lumotlarini chiqarish.

Masalan, Django, FastAPI, Laravel yoki Express.js backend ilovalari database bilan bevosita ishlaydi.

ORM

ORMdasturlash tili obyektlari orqali database bilan ishlashga yordam beradigan qatlam. ORM SQL query yozmasdan model va metodlar orqali ma’lumotlar bilan ishlash imkonini beradi.

ORM quyidagi vazifalarda ishlatiladi:

  • model yaratish;
  • yozuv qo‘shish;
  • ma’lumot o‘qish;
  • filterlash;
  • update qilish;
  • delete qilish;
  • relationlar bilan ishlash;
  • migration yaratish.

Django ORM, SQLAlchemy, Prisma, TypeORM va Eloquent mashhur ORM vositalariga misol bo‘ladi.

Bog‘liq tushunchalar

SQL, NoSQL, PostgreSQL, MySQL, MongoDB, Redis, Table, Row, Column, Primary key, Foreign key, Query, Index, ORM, Backend