01 β Ma'lumotlar bazasi nima?¶
π README Β· Keyingi: 02 β MySQL'ni o'rnatish va ishga tushirish β‘οΈ
Bu bobda: ma'lumotlar bazasi nima va u oddiy daftar yoki Excel'dan nimasi bilan kuchli ekanini, jadval, qator, ustun va id tushunchalarini, SQL (til) bilan MySQL (dastur) o'rtasidagi farqni hamda klient-server modeli qanday ishlashini o'rganamiz.
Hayotiy misol bilan boshlaymiz¶
Tasavvur qiling: siz mahalladagi kichik kutubxonada ishlaysiz. Sizda daftar bor, unga yozasiz:
Aziz Karimov β "O'tkan kunlar" kitobini oldi β 5-iyun
Malika Tosheva β "Mehrobdan chayon" oldi β 6-iyun
Aziz Karimov β kitobni qaytardi β 9-iyun
100 ta o'quvchi bo'lsa β daftar yetadi. 10 000 ta bo'lsa-chi? Savollar tug'iladi:
- "Aziz qaytarmagan kitoblari bormi?" β butun daftarni varaqlaysiz
- "Eng ko'p o'qilgan kitob qaysi?" β bir kunlik ish
- Ikki xodim bir vaqtda yozsa β daftar bitta, navbat kutadi
Ma'lumotlar bazasi (database) β mana shu daftarning kompyuterdagi aqlli versiyasi. U:
- Millionlab yozuv ichidan keraklisini soniyaning ulushida topadi
- Bir vaqtda minglab odamga xizmat qiladi β hech kim navbat kutmaydi
- Ma'lumotni yo'qotib qo'ymaslik uchun maxsus himoyaga ega: svet o'chib qolsa ham, saqlangan yozuv joyida qoladi
Excel yetmaydimi?¶
"Jadval kerak bo'lsa, Excel bor-ku!" β to'g'ri savol. Kichik ro'yxatlar (50β100 qator) uchun Excel juda qulay. Lekin jiddiy ish boshlanishi bilan farq sezilib qoladi:
| Mezon | Excel | Ma'lumotlar bazasi |
|---|---|---|
| Hajm | million qator atrofida qiynala boshlaydi | yuz millionlab qator β muammosiz |
| Birga ishlash | fayl ochiq bo'lsa, boshqalar kutadi | minglab odam bir vaqtda yozadi va o'qiydi |
| Qidiruv | qator ko'paygani sari sekinlashadi | maxsus tuzilmalar tufayli soniyada topadi |
| Xatodan himoya | istalgan katakka istalgan narsa yoziladi | qoida o'rnatasiz: "yil ustuniga faqat son" |
Qisqasi: Excel β shaxsiy daftarcha, ma'lumotlar bazasi β butun kutubxonaning tartibli arxivi.
Jadval, qator, ustun¶
Baza ichida ma'lumot jadval (table) ko'rinishida saqlanadi β Excel'dagi varaq kabi:
JADVAL: kitoblar
+----+------------------+----------------+------+
| id | nomi | muallif | yil | β USTUNLAR (column)
+----+------------------+----------------+------+
| 1 | O'tkan kunlar | A. Qodiriy | 1925 | β QATOR (row)
| 2 | Mehrobdan chayon | A. Qodiriy | 1928 | β QATOR
| 3 | Sariq devni minib| X. To'xtaboyev | 1968 | β QATOR
+----+------------------+----------------+------+
- Ustun (column) β ma'lumot turi: nomi, muallif, yil. Har bir ustunning o'z nomi va o'z "qoidasi" bo'ladi (masalan, yil ustuniga faqat son yoziladi)
- Qator (row) β bitta yozuv: bitta kitob haqidagi hamma ma'lumot
- id β har bir qatorning takrorlanmas raqami (pasport raqami kabi). Ismlar takrorlanishi mumkin (ikki xil Aziz Karimov bo'lishi mumkin), lekin id β hech qachon. Odatda uni baza 1 dan boshlab o'zi avtomatik beradi
Bitta bazada odatda bir nechta jadval bo'ladi: kutubxona bazasida mualliflar, kitoblar, azolar, ijaralar β har biri o'z mavzusidagi ma'lumotni saqlaydi. Aynan shu to'rt jadvalli kutubxona bazasini 3-bobda o'z qo'lingiz bilan qurasiz.
SQL nima?¶
SQL (Structured Query Language β "tuzilgan so'rovlar tili"; "es-kyu-el" yoki "sikvel" deb o'qiladi) β bazaga buyruq berish tili. Inglizchaga juda o'xshaydi:
So'zma-so'z: "TANLA nomi[ni] kitoblar[dan] QAYERDA yil > 1950". Tarjimasi: "1950-yildan keyin chiqqan kitoblar nomini ko'rsat".
SQL faqat o'qish uchun emas: ma'lumot qo'shish (INSERT), o'zgartirish (UPDATE) va o'chirish (DELETE) buyruqlari ham bor β hammasini keyingi boblarda birma-bir o'rganamiz.
MySQL nima?¶
- SQL β til (o'zbek tili kabi)
- MySQL β shu tilni tushunadigan dastur (o'zbek tilida gaplashadigan odam kabi)
Bunday dasturlarning rasmiy nomi β MBBT (ma'lumotlar bazasini boshqarish tizimi, inglizcha DBMS). Boshqa "odamlar" ham bor: PostgreSQL, SQLite, Oracle. Hammasi SQL tilida gaplashadi β faqat kichik "sheva" farqlari bilan. MySQL β dunyodagi eng ommabop ochiq kodli (bepul) baza, biz shuni o'rganamiz.
MySQL qanday ishlaydi: klient va server¶
MySQL kompyuterda server bo'lib ishlaydi β doim yoniq turadigan, buyruq kutadigan dastur. Siz esa klient orqali (qora oyna β terminal, yoki DBeaver kabi grafik dastur) unga SQL buyruq yuborasiz:
- Siz buyruq yozasiz:
SELECT nomi FROM kitoblar; - MySQL server buyruqni qabul qilib, bajaradi
- Natijani jadval ko'rinishida sizga qaytaradi
"Server" so'zidan cho'chimang: u sizning oddiy noutbukingizda ham bemalol ishlaydi. Keyingi bobda aynan shuni qilamiz β MySQL'ni o'rnatib, birinchi buyruqlarimizni beramiz.
1-bob masalalari (kompyutersiz, qog'ozda)¶
- O'z hayotingizdan 3 ta "jadval bo'lishi mumkin" narsani toping (masalan: telefon kontaktlari)
- "Telefon kontaktlari" jadvalining ustunlarini yozing (kamida 4 ta)
- O'sha jadvalga 3 ta qator (misol ma'lumot) yozing
- Maktab uchun "o'quvchilar" jadvali ustunlarini o'ylab toping
- "Dorixona" tizimida qanday jadvallar bo'ladi? (kamida 3 ta jadval nomi)
- "Taksi ilovasi"da qanday jadvallar bo'ladi? (kamida 4 ta)
- Nega har bir qatorga
idkerak? O'z so'zingiz bilan tushuntiring - Ikki xil odamning ismi bir xil bo'lsa (2 ta Aziz Karimov), baza ularni qanday farqlaydi?
- Excel va ma'lumotlar bazasining 3 ta farqini yozing
SELECT nomi FROM kitoblarβ bu buyruq nima qiladi? Taxmin qilingSELECT * FROM kitoblar WHERE yil = 1925β bu nima qiladi?- "Bemorlar" jadvali uchun 6 ta ustun o'ylab toping
- Kutubxonada "kim qaysi kitobni olgan"ni saqlash uchun qanday jadval kerak? Ustunlarini yozing
- Bitta muallifning 5 ta kitobi bo'lsa, muallif ismini har safar yozish yaxshimi? Nega?
- "Online do'kon"da buyurtma jadvalining ustunlarini o'ylab toping
- Qaysi ma'lumotni jadvalda saqlash NOTO'G'RI: a) mijoz telefoni b) mijozning bugungi kayfiyati c) buyurtma summasi β javobingizni asoslang
- SQL va MySQL farqini bir gapda yozing
- O'zingiz bilgan biror ilovani (Telegram, Click, Uzum) oling β unda qanday jadvallar bo'lishi mumkin? 5 ta yozing
- "Davomat" (kim qaysi kuni kelgan) jadvalini chizing β ustunlar + 3 qator misol
- Nega katta kompaniyalar Excel emas, baza ishlatadi? 2 ta sabab yozing