JavaRush /Java Blogu /Random-AZ /Verilənlər bazalarını və SQL dilini təhlil edirik - "A-da...
Roman Beekeeper
Səviyyə

Verilənlər bazalarını və SQL dilini təhlil edirik - "A-dan Z-yə Java layihəsi"

Qrupda dərc edilmişdir
Java layihəsinin yaradılması haqqında silsilədən məqalə. Onun məqsədi əsas texnologiyaları təhlil etməkdir, nəticə teleqram botunu yazmaqdır. Giriş hissəsi buradadır . Salam, proqram mühəndisləri. Bu gün biz verilənlər bazası və SQL dili haqqında danışırıq. “A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 1Bu məqalə kimlər üçün nəzərdə tutulub? Maraqlanan hər kəsə bəli. Bəziləri səyahətinə bu məqalə ilə başlaya bilər, bəziləri isə maraqlı faktlarla bağlı yaddaşlarını təzələyə biləcəklər. Bu hissə sırf nəzəri olacaq. Verilənlər bazalarının və SQL sintaksisinin nə olduğunu söyləməzdən əvvəl onları niyə öyrənəcəyimizi başa düşmək və müəyyən etməliyik. Bu mərhələdə biz YALNIZ SQL verilənlər bazası haqqında danışacağıq : Bu məqalələr silsiləsində NoSQL-i nəzərdən keçirməyəcəyik.

Verilənlər bazası: bu nədir

“A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 2Verilənlər bazası (bundan sonra DB adlandırılacaq) sorğu dili ilə əldə edilə bilən strukturlaşdırılmış məlumatların saxlandığı yerdir . Verilənlər bazaları böyük həcmdə məlumatları nəinki saxlaya, həm də emal edə və dəyişdirə bilər. Qeyd olaraq: bəzi meyarlara əsaslanaraq Excel-də bir sıra dəyərləri tez dəyişməyə çalışın. Prinsipcə, mürəkkəb bir şey yoxdur. Rəqəmsallaşdırılmamış real dünyamızda olduğu kimi deyil. Məsələn, zolaqların, küçələrin, şəhərlərin adlarının dəyişdirilməsi. Hər şey virtual olsaydı və bazaya daxil olsaydı, normallaşdırılardı, bir-iki xırdalıq olardı. Olduğu kimi, bir çox yaddaş mediası əziyyət çəkir, çünki onlar avtomatik olaraq dəyişə bilmirlər. Bu kontekstdə verilənlər bazası üçün SQL verilənlər bazasının anladığı və buna uyğun cavab verdiyi bir dildir. Tutaq ki, şəhərin adını dəyişdirmək çətin olmayacaq, Dnepropetrovsk adını Dnepr etmək belə görünəcək:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Sistemə edilən bütün sonrakı sorğular artıq bizə lazım olan adı verəcəkdir.

Verilənlər bazası nə üçün lazımdır?

Artıq dediyim kimi, verilənlər bazalarından istifadə edərək məlumatları saxlaya bilərsiniz. Bəs bu məlumat nədir? Real həyat nümunəsindən istifadə edərək başa düşmək üçün bəzi tətbiqlərdən danışa bilərik. Məsələn, eyni teleqram botu haqqında. Botdan neçə nəfərin istifadə etdiyini bilmək istəyirik. Bu necə həyata keçirilə bilər? Adi Java proqramında siz bir çox unikal elementlər yarada bilərsiniz - istifadəçinin ləqəbini və ya söhbət ID-sini saxlayacaq Set. Bu işləyəcək? iradə. Məhz Java proqramı dayandırılana qədər və yenidən işə salınan kimi unikal elementlər dəsti boş qalacaq. Yəni, işləyən proqramda saxlanılan məlumatlar sadəcə yoxa çıxdı. Bununla bağlı nə edə bilərsiniz? Sistem vəziyyətinin (məlumatların) yaddaşını Java proqramından başqa yerə köçürə bilərsiniz. Bunu CSV formatında kompüterinizdə adi faylda saxlaya bilərsiniz. Bunu ayrı bir faylda bir sətirdə edə bilərsiniz. Siz bunu edə və sonra Java proqramı dayanmamışdan əvvəl bu məlumatların üzərinə yaza bilərsiniz. Baxmayaraq ki, qeydin uğurlu olacağına zəmanət 100%-ə yaxın deyil, çünki sadəcə serverin elektrik kabelini çıxara bilərsiniz və qeyd baş tutmayacaq. Bu yanaşmanın əhəmiyyətli çatışmazlığı var: fayl səviyyəsində məlumat əldə etmək, toplamaq və axtarmaq üçün heç bir funksionallıq yoxdur. Bəli, əlbəttə ki, siz faylı oxuya və onun üçün obyektlər yarada bilərsiniz, lakin siz HƏR DƏFƏ bütün məlumatları tətbiqə vurmalı olacaqsınız. Və onların çoxu ola bilər, məsələn, bir neçə gigabayt. Məlumat bazasında saxlanılmaqla bunun qarşısını almaq olar. Necə? Cədvəllər və onlar arasındakı əlaqələr vasitəsilə. Bütün əlaqəli verilənlər bazası buna əsaslanır.

SQL: verilənlər bazalarının başa düşdüyü dil

Verilənlər Bazasının İdarəetmə Sistemləri (bundan sonra DBMS) var və onların başa düşdüyü dil SQL-dir. SQL verilənlər bazalarını manipulyasiya etmək və idarə etmək üçün proqramlaşdırma dilidir. Bunun necə işlədiyini başa düşmək üçün şəklə baxaq: “A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 3İstifadəçi DBMS-ə SQL sorğuları göndərir, DBMS nə edilməli olduğunu başa düşür, bunu edir və sorğu məlumat əldə etmək idisə, onu qaytarır. Ona görə də tərtibatçılar olaraq biz SQL sorğu dilini mənimsəməliyik. Düşünə bilərsiniz: “Oh, başqa dil. Allahın köməyi ilə mən burada Java dilini çətinliklə başa düşürəm və siz dərhal mənə başqa dil təklif edirsiniz”. Bu doğru deyil: SQL verilənlər bazası və ümumiyyətlə proqramlaşdırmadan çox uzaq olan mühasiblərin bu dildə yaza bilməsi üçün DBMS üçün spesifikasiya dili kimi icad edilmişdir. Bu o deməkdir ki, onu öyrənmək o qədər də çətin olmayacaq. Əsas odur ki, TƏCRÜBƏ-TƏCRÜBƏ-TƏCRÜBƏDİR. Bu gün nəzəriyyə olacaq, amma növbəti məqalə təcrübə haqqında olacaq. Əlaqəli verilənlər bazası ikiölçülü massiv-cədvəllər toplusundan və onlar arasında əlaqələr olduğundan, iş onların ətrafında işləyəcək. Bir nümunə haqqında danışsaq, iki cədvəl göstərə bilərik - "Ölkələr" və "Şəhərlər" və onların necə bir-birinə bağlı olduğunu. “A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 4Bu mərhələdə cədvəldəki qeydlərin Java dünyasından hansısa obyekt haqqında məlumat olduğunu başa düşmək bizim üçün vacibdir. Məsələn, bu iki cədvəl Java-da belə təsvir edilə bilər:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
Yaxşı, gözəl deyil, hə? Verilənlər bazası istənilən sayda cədvəli saxlaya bilər. Bizim vəziyyətimizdə onlardan ikisi var.

Cədvəl quruluşu

Düşünürəm ki, hər kəs Excel cədvəlləri ilə bu və ya digər şəkildə rastlaşıb və siz sətirsütun terminlərini başa düşürsünüz . Verilənlər bazaları kontekstində biz daha çox qeydlər və sahələr haqqında danışırıq: “A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 5Beləliklə, məlum olur ki, City sinfinin hər bir obyekti verilənlər bazasında cədvəldəki qeyddir.

Əsas açar

“A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 6Tez-tez olur ki, verilənlər bazasındakı sahələr eyni dəyərlərə malikdir. Məsələn, birdən çox şəxsin adı, soyadı və hətta atasının adı ilə tapıla biləcəyi sosial şəbəkələr. Və əlaqəli verilənlər bazaları qeydə daxil olmaq üçün istifadə edilə bilən unikal sahə tələb edir. Buna birinci açar və ya Əsas açar deyilir. Tipik olaraq, ID(id) sahəsi belə bir açar kimi istifadə olunur - bu, identifikator üçün qısadır. Buna görə hər cədvələ ID sahəsi əlavə etməlisiniz .“A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 7

Xarici açar

Bizim nümunəmizdə belə bir sahə Ölkənin açarını istifadə edən Şəhər cədvəlindədir. Və belə işləyir: hər bir şəhər öz ölkəsi üçün unikal məlumat identifikatorunu bilir və onu götürüb məlumat bazasında sorğu yaratsaq, ölkə haqqında hərtərəfli məlumat alacağıq. Şəkildə gördüyünüz kimi iki cədvəl arasında əlaqə var: “A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 8Burada xarici açarın prinsipi göstərilib.

SQL-də hansı bölmələr var?

Yeri gəlmişkən, müsahibələr zamanı onlardan SQL-də hansı əməliyyatların olması tez-tez soruşulur:
  • DDL (Data Definition Language) cədvəlləri, onların strukturunu və s. dəyişdirən/yaradan operatorlar qrupudur. Yəni cədvəlin yaradılması, silinməsi, cədvəllərdə sahələrin yaradılması/silinməsi; yeni əsas açarın yaradılması və s.;
  • DML (Data Manipulation Language) verilənlərin dəyişdirilməsini idarə edən operatorlar qrupudur. Bunlar verilənlər bazasında məlumatları dəyişdirən bütün əməliyyatlardır: əlavə etmək, almaq, dəyişdirmək və silmək;
  • DCL (Data Control Language) istifadəçinin hərəkətləri yerinə yetirmək hüquqlarını təsdiqləyən vasitədir. DDL/DML əməliyyatlarını yerinə yetirə bilməsi üçün konkret istifadəçiyə giriş və hüquqlar vermək əməliyyatları.

SQL-də hansı məlumat növləri var

Cədvəllər müəyyən növ məlumatları saxlaya və emal edə bilər. Burada hər şey Java-da istifadə etdiyimizə bənzəyəcək. Əsas olanlar haqqında danışaq. Onlardan yalnız üçü var, biz lazım olduqda və/və ya istədiyiniz kimi digərlərini də əlavə edəcəyik: “A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 9Şəkildən göründüyü kimi bunlar:
  • INT - tam qiymətlər. Unikal identifikator və sadə tam ədəd üçün istifadə olunur;
  • VARCHAR bizim simimizdir ;
  • DATE bizim Yerli Tariximizdir.
İndiyə qədər hər şey sadədir, elə deyilmi? Cədvəl yaratarkən sahə növləri müəyyən edilir. Aydındır ki, sahəyə fərqli tipli qiymət yazmaq mümkün olmayacaq.

SQL operatorları nədir

Operator bəzi hərəkətləri yerinə yetirən ayrıca əmrdir. Operatorlar cümlələrdən ibarətdir ki, onlar da öz növbəsində sorğularda istifadə olunan açar sözlərdən ibarətdir. Bir nümunəyə baxaq: “A-dan Z-yə Java layihəsi”: verilənlər bazası və SQL dilinin təhlili - 10Burada daha maraqlıdır, burada sorğu artıq qurulub. Onların orada nə işi var? Bu sadədir, orada deyilir: "Müştərilər cədvəlindən üç sahə (Ad, Yaş və Yaradılma tarixi) götürün, yalnız adın Romana bərabər olduğu qeydləri seçin."

Nəticə

Bu yazıda verilənlər bazalarını öyrənməyə başladıq. Bunun nə olduğunu və nə üçün lazım olduğunu başa düşdük. Sonra, növbəti məqalədə daha ətraflı danışacağımız SQL-in ilk əlamətlərini nəzərdən keçirdik. Həmişə olduğu kimi, bu seriyanı və orada işlədiyim digər layihələrimi izləmək üçün GitHub-da qeydiyyatdan keçməyi və hesabı izləməyi təklif edirəm .

Ev tapşırığı

JRTB-dəki bu məqalələr seriyasına maraq artırmaq üçün vaxtaşırı ev tapşırıqları olacaq. Məsələn, bugünkü tapşırıq olmadan, növbəti məqaləni başa düşmək çox çətin olacaq, çünki orada çoxlu təcrübə olacaq. Buna görə də, vəzifə MySQL DBMS-ni kompüterinizə quraşdırmaq və ya konsol və ya digər həllər vasitəsilə verilənlər bazasına daxil olmaqdır. Oxuduğunuz üçün hamınıza təşəkkür edirəm, tezliklə görüşərik!

Serialdakı bütün materialların siyahısı bu məqalənin əvvəlindədir.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION