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. Bu 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
Verilə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: İ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. Bu 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ətir və sü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: Beləliklə, məlum olur ki, City sinfinin hər bir obyekti verilənlər bazasında cədvəldəki qeyddir.Əsas açar
Tez-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 .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: Burada 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: Şə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.
GO TO FULL VERSION