JavaRush /Java blogi /Random-UZ /Biz ma'lumotlar bazalarini va SQL tilini tahlil qilamiz -...

Biz ma'lumotlar bazalarini va SQL tilini tahlil qilamiz - "A dan Zgacha Java loyihasi"

Guruhda nashr etilgan
Java loyihasini yaratish haqidagi turkum maqola. Uning maqsadi - asosiy texnologiyalarni tahlil qilish, natijada telegram botini yozish. Kirish qismi bu yerda . Assalomu alaykum, dastur muhandislari. Bugun biz ma'lumotlar bazalari va SQL tili haqida gapiramiz. "A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 1Ushbu maqola kimga mo'ljallangan? Ha, barcha qiziquvchilarga. Ba'zilar o'z sayohatlarini ushbu maqola bilan boshlashlari mumkin, boshqalari esa qiziqarli faktlar haqida xotiralarini yangilashlari mumkin. Bu qism faqat nazariy bo'ladi. Ma'lumotlar bazalari va SQL sintaksisi nima ekanligini aytishdan oldin, biz ularni nima uchun o'rganishimiz kerakligini tushunishimiz va aniqlashimiz kerak. Ushbu bosqichda biz FAQAT SQL ma'lumotlar bazalari haqida gapiramiz : Biz ushbu maqolalar seriyasida NoSQLni ko'rib chiqmaymiz.

Ma'lumotlar bazasi: bu nima

"A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 2Ma'lumotlar bazasi (keyingi o'rinlarda JB deb yuritiladi) so'rovlar tili yordamida olinishi mumkin bo'lgan tuzilgan ma'lumotlar saqlanadigan joy . Ma'lumotlar bazalari nafaqat saqlashi, balki katta hajmdagi ma'lumotlarni qayta ishlash va o'zgartirishi mumkin. Eslatma: Excel-dagi qiymatlar to'plamini ba'zi mezonlar asosida tezda o'zgartirishga harakat qiling. Aslida, hech qanday murakkab narsa yo'q. Bizning raqamlashtirilmagan real dunyomizdagi kabi emas. Masalan, ko'chalar, ko'chalar, shaharlar nomini o'zgartirish. Agar hamma narsa virtual bo'lsa va ma'lumotlar bazasiga kiritilgan bo'lsa, u normallashtiriladi, bu bir-ikkita arzimas narsa bo'lar edi. Ko'pgina saqlash vositalari avtomatik ravishda o'zgarmasligi sababli azoblanadi. Shu nuqtai nazardan, ma'lumotlar bazalari uchun SQL ma'lumotlar bazasi tushunadigan va shunga mos ravishda javob beradigan tildir. Aytaylik, shahar nomini o'zgartirish qiyin bo'lmaydi, Dnepropetrovsk nomini Dneprga o'zgartirish quyidagicha ko'rinadi:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Tizimga keyingi barcha so'rovlar allaqachon bizga kerak bo'lgan nomni ishlab chiqaradi.

Ma'lumotlar bazalari nima uchun kerak?

Yuqorida aytib o'tganimdek, ma'lumotlar bazalari yordamida siz ma'lumotlarni saqlashingiz mumkin. Ammo bu ma'lumotlar nima? Haqiqiy hayot misolidan foydalanishni tushunish uchun biz ba'zi ilovalar haqida gapirishimiz mumkin. Masalan, xuddi shu telegram bot haqida. Biz botdan qancha odam foydalanayotganini bilmoqchimiz. Buni qanday amalga oshirish mumkin? Oddiy Java ilovasida siz ko'plab noyob elementlarni yaratishingiz mumkin - foydalanuvchining taxallusi yoki chat identifikatorini saqlaydigan to'plam. Bu ishlaydimi? iroda. Aynan Java ilovasi to'xtatilgunga qadar va u qayta ishga tushirilishi bilan noyob elementlar to'plami bo'sh bo'ladi. Ya'ni, ishlaydigan dasturda saqlangan ma'lumotlar shunchaki yo'q bo'lib ketdi. Bu haqda nima qila olasiz? Tizim holatini (ma'lumotlarni) Java ilovasidan boshqa joyga ko'chirishingiz mumkin. Buni CSV formatida kompyuteringizda oddiy faylda saqlashingiz mumkin. Buni alohida faylda bir qatorda qilishingiz mumkin. Buni amalga oshirishingiz va keyin Java ilovasi to'xtamasdan oldin ushbu ma'lumotlarni qayta yozishingiz mumkin. Yozib olishning muvaffaqiyatli bo'lishiga kafolat 100% dan uzoq bo'lsa-da, chunki siz shunchaki serverning quvvat simini tortib olishingiz mumkin va yozib bo'lmaydi. Ushbu yondashuv muhim kamchilikka ega: fayl darajasida ma'lumotlarni olish, yig'ish va qidirish uchun hech qanday funksionallik mavjud emas. Ha, albatta, siz faylni o'qishingiz va u uchun ob'ektlar yaratishingiz mumkin, lekin siz HAR safar barcha ma'lumotlarni ilovaga quyishingiz kerak bo'ladi. Va ularning ko'pi bo'lishi mumkin, masalan, bir necha gigabayt. Ma'lumotlar bazasida ma'lumotlarni saqlash orqali buning oldini olish mumkin. Qanday qilib? Jadvallar va ular orasidagi munosabatlar orqali. Barcha relyatsion ma'lumotlar bazalari shunga asoslanadi.

SQL: ma'lumotlar bazasi tushunadigan til

Ma'lumotlar bazasini boshqarish tizimlari (keyingi o'rinlarda DBMS deb yuritiladi) mavjud va ular tushunadigan til SQL. SQL - bu ma'lumotlar bazasini manipulyatsiya qilish va boshqarish uchun dasturlash tili. Bu qanday ishlashini tushunish uchun rasmni ko'rib chiqamiz: "A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 3Foydalanuvchi ma'lumotlar bazasiga SQL so'rovlarini yuboradi, ma'lumotlar bazasi ma'lumotlar bazasi nima qilish kerakligini tushunadi, buni qiladi va agar so'rov ma'lumotlarni olish uchun bo'lsa, uni qaytaradi. Shuning uchun, ishlab chiquvchilar sifatida biz SQL so'rovlar tilini o'zlashtirishimiz kerak. Siz shunday deb o'ylashingiz mumkin: “Oh, boshqa til. Xudoning yordami bilan men bu erda Java tilini zo'rg'a tushunaman va siz darhol menga boshqa tilni taklif qilyapsiz. Bu to'g'ri emas: SQL ma'lumotlar bazalari va umuman dasturlashdan juda uzoqda bo'lgan buxgalterlar ushbu tilda yozishlari uchun DBMS uchun spetsifikatsiya tili sifatida ixtiro qilingan. Bu shuni anglatadiki, uni o'rganish unchalik qiyin bo'lmaydi. Asosiysi AMALIY-AMALIYAT-AMALIYAT. Bugun nazariya bo'ladi, ammo keyingi maqola amaliyot haqida bo'ladi. Relyatsion ma'lumotlar bazasi ikki o'lchovli massiv-jadvallar va ular orasidagi munosabatlar to'plami bo'lganligi sababli, ish ular atrofida ishlaydi. Agar misol haqida gapiradigan bo'lsak, ikkita jadvalni ko'rsatishimiz mumkin - "Mamlakatlar" va "Shaharlar" va ular qanday bog'langan. "A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 4Ushbu bosqichda biz uchun jadvaldagi yozuvlar Java olamidagi ba'zi ob'ektlar haqidagi ma'lumotlar ekanligini tushunish muhimdir. Masalan, ushbu ikkita jadvalni Java-da quyidagicha tasvirlash mumkin:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
Xo'sh, bu go'zal emasmi, a? Ma'lumotlar bazasi istalgan miqdordagi jadvallarni saqlashi mumkin. Bizning holatlarimizda ulardan ikkitasi bor.

Jadval tuzilishi

Menimcha, har bir kishi Excel jadvallari bilan u yoki bu tarzda duch kelgan va siz satr va ustun atamalarini tushunasiz . Ma'lumotlar bazalari kontekstida biz ko'proq yozuvlar va maydonlar haqida gapiramiz: "A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 5Shunday qilib, City sinfining har bir ob'ekti ma'lumotlar bazasidagi jadvaldagi yozuv ekanligi ma'lum bo'ldi.

Asosiy kalit

"A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 6Ko'pincha ma'lumotlar bazalaridagi maydonlar bir xil qiymatlarga ega bo'ladi. Masalan, ism, familiya va hatto otasining ismi bo'yicha bir nechta odamni topish mumkin bo'lgan ijtimoiy tarmoqlar. Va relyatsion ma'lumotlar bazalari yozuvga kirish uchun ishlatilishi mumkin bo'lgan noyob maydonni talab qiladi. Bu birinchi kalit yoki asosiy kalit deb ataladi. Odatda, bunday kalit sifatida ID(id) maydoni ishlatiladi - bu identifikatorning qisqartmasi. Shuning uchun har bir jadvalga ID maydoni qo'shishingiz kerak ."A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 7

Tashqi kalit

Bizning misolimizda bunday maydon Shahar jadvalida joylashgan bo'lib, unda Mamlakat kalitidan foydalaniladi. Va u shunday ishlaydi: har bir shahar o'z mamlakati uchun noyob ma'lumot identifikatorini biladi va agar biz uni olib, ma'lumotlar bazasida so'rov yaratsak, biz mamlakat haqida to'liq ma'lumot olamiz. Rasmda ko'rib turganingizdek, ikkita jadval o'rtasida bog'liqlik mavjud: "A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 8Bu erda chet el kalitining printsipi ko'rsatilgan.

SQL da qanday bo'limlar mavjud?

Aytgancha, intervyu paytida ulardan ko'pincha SQL-da qanday operatsiyalar borligi so'raladi:
  • DDL (Data Definition Language) - jadvallarni, ularning tuzilishini va boshqalarni o'zgartiruvchi/yaraydigan operatorlar guruhi. Ya'ni, jadval yaratish, uni o'chirish, jadvallarda maydonlarni yaratish/o'chirish; yangi asosiy kalit yaratish va boshqalar;
  • DML (Data Manipulation Language) - ma'lumotlarni o'zgartirishni boshqaradigan operatorlar guruhi. Bularning barchasi ma'lumotlar bazasidagi ma'lumotlarni o'zgartiradigan operatsiyalar: qo'shish, olish, o'zgartirish va o'chirish;
  • DCL (Data Control Language) - bu foydalanuvchining harakatlarni amalga oshirish huquqlarini tasdiqlash vositasi. Muayyan foydalanuvchi DDL/DML operatsiyalarini bajarishi uchun unga kirish va huquqlarni ta'minlash bo'yicha operatsiyalar.

SQLda qanday ma'lumotlar turlari mavjud

Jadvallar ma'lum turdagi ma'lumotlarni saqlashi va qayta ishlashi mumkin. Bu erda hamma narsa biz Java-da ishlatadigan narsalarga o'xshash bo'ladi. Keling, asosiylari haqida gapiraylik. Ulardan faqat uchtasi bor, biz kerak bo'lganda va/yoki xohlagancha boshqalarni qo'shamiz: "A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 9Rasmdan ko'rinib turibdiki, bular:
  • INT - butun qiymatlar. Noyob identifikator va oddiy butun son uchun ishlatiladi;
  • VARCHAR - bu bizning String ;
  • DATE bizning LocalDate.
Hozircha hamma narsa oddiy, to'g'rimi? Jadvalni yaratishda maydon turlari ko'rsatiladi. Maydonga boshqa turdagi qiymatni yozish mumkin bo'lmasligi aniq.

SQL operatorlari nima

Operator ba'zi amallarni bajaradigan alohida buyruqdir. Operatorlar jumlalardan iborat bo'lib, ular o'z navbatida so'rovlarda ishlatiladigan kalit so'zlardan iborat. Keling, misolni ko'rib chiqaylik: "A dan Zgacha Java loyihasi": ma'lumotlar bazalari va SQL tilini tahlil qilish - 10Bu erda qiziqroq, bu erda so'rov allaqachon qurilgan. Ular u yerda nima qilishyapti? Bu oddiy, unda shunday deyilgan: "Mijozlar jadvalidan uchta maydonni (Ism, Yosh va Yaratilgan sana) oling, faqat nomi Rimga teng bo'lgan yozuvlarni tanlang."

Xulosa

Ushbu maqolada biz ma'lumotlar bazalarini o'rganishni boshladik. Biz bu nima ekanligini va nima uchun kerakligini tushundik. Keyinchalik, biz SQL ning birinchi belgilarini ko'rib chiqdik, bu haqda keyingi maqolada batafsilroq gaplashamiz. Odatdagidek, men GitHub-da ro'yxatdan o'tishni va ushbu seriyani va u erda ishlayotgan boshqa loyihalarimni kuzatish uchun hisobimni kuzatishni taklif qilaman.

Uy vazifasi

JRTB-dagi ushbu maqolalar turkumiga qiziqish qo'shish uchun vaqti-vaqti bilan uy vazifalari bo'ladi. Misol uchun, bugungi topshiriqsiz, keyingi maqolani tushunish ancha qiyin bo'ladi, chunki u erda juda ko'p amaliyot bo'ladi. Shuning uchun vazifa MySQL ma'lumotlar bazasini kompyuteringizga o'rnatish va konsol orqali yoki boshqa echimlar orqali ma'lumotlar bazasiga kirishdir. O'qiganingiz uchun barchangizga rahmat, tez orada ko'rishguncha!

Seriyadagi barcha materiallar ro'yxati ushbu maqolaning boshida.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION