Məzmuna keç
Educora
Başlanğıc12 dəq1 / 22

Verilənlər bazası və cədvəllər

Verilənlər bazasının nə olduğunu, cədvəllərin sətir və sütunlardan necə qurulduğunu və açarların cədvəlləri necə əlaqələndirdiyini öyrən.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Verilənlər bazası və VBİS anlayışlarını izah etmək
  • Cədvəlin sətir, sütun və xanalarını ayırd etmək
  • Əsas və xarici açarın rolunu başa düşmək
  • İlk SQL sorğunu icra etmək

Məktəbdə 1000 şagird, onlarla fənn və minlərlə qiymət var. Bütün bunları dəftərdə, hətta bir Excel faylında saxlamaq tezliklə əzaba çevrilir: məlumat təkrarlanır, səhvlər yaranır, lazım olanı tapmaq saatlar çəkir. Banklar, onlayn mağazalar, sosial şəbəkələr və elektron məktəb jurnalları bu problemi verilənlər bazası ilə həll edir. Onunla danışmaq üçün isə xüsusi dil var — SQL.

Verilənlər bazası nədir?

Verilənlər bazası — nizamlı şəkildə saxlanan, asanlıqla axtarılıb dəyişdirilə və qoruna bilən məlumatlar toplusudur. Bazanın faylları ilə biz birbaşa işləmirik — bunu bizim əvəzimizə xüsusi proqram edir. O, məlumatları diskdə saxlayır, sorğularımızı icra edir, yüzlərlə istifadəçinin eyni anda işləməsinə imkan verir və icazəsi olmayanları içəri buraxmır.

Tərif
VBİS (verilənlər bazasını idarəetmə sistemi)

Verilənlər bazalarını yaradan, saxlayan və onlara göndərilən sorğuları icra edən proqram. Məsələn: SQLite, MySQL, PostgreSQL, Microsoft SQL Server.

Bu kursda relyasiya (cədvəlli) verilənlər bazalarını öyrənəcəyik. Onlarda bütün məlumatlar cədvəllərdə saxlanılır, cədvəllər isə bir-biri ilə əlaqələndirilir. Bu ideyanı 1970-ci ildə IBM tədqiqatçısı Edqar Kodd irəli sürüb və bu gün də ən geniş yayılmış yanaşma məhz budur.

Cədvəl: sətirlər və sütunlar

Cədvəl bir növ obyekt haqqında məlumat saxlayır: şagirdlər, kurslar, məhsullar. Bu kursun bütün nümunələri eyni məşq bazasında işləyir. Gəl, courses (kurslar) cədvəlinə baxaq. Aşağıdakı sorğunu icra et: SELECT * «bütün sütunları götür», FROM courses «courses cədvəlindən», ORDER BY id isə «id-yə görə sırala» deməkdir.

SQL
SELECT *
FROM courses
ORDER BY id;
▸ Gözlənilən nəticə
id | title | subject | teacher | credits
1 | Algebra | Math | Ramin Səfərov | 4
2 | Geometry | Math | Ramin Səfərov | 3
3 | Mechanics | Physics | Ülviyyə Axundova | 4
4 | Organic Chemistry | Chemistry | Samir Hacıyev | 3
5 | World History | History | Nərmin Vəliyeva | 2
6 | Python Basics | Informatics | Elnur Qasımov | 3
7 | English B1 | English | Sara Mitchell | 2
Sənin ilk SQL sorğun. Onu icra et və nəticəyə bax.
  • Sütun (sahə) — bir xüsusiyyətdir: title (ad), teacher (müəllim), credits (kredit). Hər sütunun adı və məlumat tipi var: mətn, tam ədəd, kəsr ədəd, tarix.
  • Sətir (yazı) — bir obyekt haqqında bütün məlumatdır. Məsələn, 3-cü sətir Mechanics kursunu təsvir edir.
  • Xana — sətirlə sütunun kəsişməsindəki tək qiymətdir, məsələn, Mechanics kursunun krediti: 4.
  • Cədvəldəki sətirlərin öz-özlüyündə sırası yoxdur. Nəticənin müəyyən ardıcıllıqla gəlməsini istəyiriksə, ORDER BY yazırıq.

Açarlar: cədvəllər necə əlaqələnir

Tərif
Əsas açar (primary key)

Hər sətri birmənalı müəyyən edən sütun. Onun qiymətləri təkrarlana və boş qala bilməz. Məşq bazamızda bu, hər cədvəldəki id sütunudur.

Tərif
Xarici açar (foreign key)

Başqa cədvəlin əsas açarına istinad edən sütun. Məsələn, enrollments.student_id sütunu students.id-yə istinad edir və yazılışın hansı şagirdə aid olduğunu göstərir.

enrollments (kurslara yazılış) cədvəlində şagirdlərin adı yoxdur — yalnız nömrələri var. Aşağıdakı sorğu 1 nömrəli şagirdin, yəni Ayselin yazıldığı kursları göstərir: course_id 1 — Algebra, 6 isə Python Basics-dir. Beləliklə, şagirdin adı və şəhəri yalnız bir yerdə — students cədvəlində saxlanılır və heç yerdə təkrarlanmır.

SQL
SELECT *
FROM enrollments
WHERE student_id = 1
ORDER BY id;
▸ Gözlənilən nəticə
id | student_id | course_id | score | enrolled_on
1 | 1 | 1 | 92 | 2025-09-15
2 | 1 | 6 | 88 | 2025-09-15
WHERE yalnız şərtə uyğun sətirləri saxlayır — onu növbəti dərslərdə ətraflı öyrənəcəyik.
CədvəlNə saxlayırSətir sayı
studentsşagirdlər: ad, soyad, yaş, sinif, şəhər, e-poçt12
courseskurslar: ad, fənn, müəllim, kredit7
enrollmentshansı şagirdin hansı kursa yazıldığı və balı20
productsməhsullar: ad, kateqoriya, qiymət, anbar qalığı10
customersmüştərilər: ad, şəhər, ölkə, qeydiyyat tarixi7
orderssifarişlər: kim, hansı məhsuldan, neçə ədəd, nə vaxt12
Kursun məşq bazası. Bütün nümunələr bu altı cədvəllə işləyir.

SQL və onun dialektləri

SQL (Structured Query Language — strukturlaşdırılmış sorğu dili) verilənlər bazası ilə danışmaq üçün standart dildir. O, deklarativ dildir: sən nəticəni necə tapmağı yox, nə istədiyini yazırsan, ən yaxşı yolu isə VBİS özü seçir. SQL açar sözləri böyük-kiçik hərfə həssas deyil, amma onları böyük hərflə yazmaq qəbul olunmuş qaydadır. Hər əmr adətən nöqtəli vergüllə (;) bitir.

SQL standartdır, lakin hər VBİS ona öz əlavələrini edib. Bu variantlara dialekt deyilir. Əsas əmrlər (SELECT, WHERE, JOIN və s.) hamısında eynidir, fərqlər isə kiçik detallardadır. Bu kursda nümunələr SQLite-da icra olunur, vacib fərqləri isə yeri gəldikcə qeyd edəcəyik.

VBİSHarada istifadə olunurXüsusiyyəti
SQLitemobil tətbiqlər, brauzerlər, kiçik proqramlarserver tələb etmir: bütün baza bir fayldır
MySQLveb-saytlar və veb-tətbiqləraçıq mənbəli və çox populyardır
PostgreSQLmürəkkəb tətbiqlər, analitikaaçıq mənbəli, SQL standartına çox yaxındır
SQL Serverşirkətlərin Microsoft əsaslı sistemləriMicrosoft-un məhsuludur, dialekti T-SQL adlanır
1 / 6
Tapşırıq

customers (müştərilər) cədvəlinin bütün sütunlarını göstər və sətirləri id-yə görə sırala.

Tapşırıq · SQL
-- show every column of the customers table, sorted by id
▸ Gözlənilən nəticə
id | name | city | country | joined_on
1 | Anar Mustafayev | Bakı | Azerbaijan | 2024-01-10
2 | Lalə Əhmədova | Gəncə | Azerbaijan | 2024-03-22
3 | Emre Yılmaz | İstanbul | Türkiye | 2024-05-05
4 | Olga Ivanova | Moscow | Russia | 2024-06-18
5 | John Carter | London | United Kingdom | 2024-08-30
6 | Zəhra Hüseynli | Bakı | Azerbaijan | 2025-02-14
7 | Mehmet Kaya | Ankara | Türkiye | 2025-04-01
Tapşırıq

enrollments cədvəlindən 3 nömrəli kursa (Mechanics) edilən bütün yazılışları göstər və onları id-yə görə sırala.

Tapşırıq · SQL
SELECT *
FROM enrollments
-- keep only course 3 and sort by id
▸ Gözlənilən nəticə
id | student_id | course_id | score | enrolled_on
4 | 2 | 3 | 81 | 2025-09-16
7 | 4 | 3 | 68 | 2025-09-18
12 | 6 | 3 | 77 | 2025-09-20
19 | 11 | 3 | 94 | 2025-09-23

Əsas fikirlər

  • Verilənlər bazası nizamlı məlumatlar toplusudur, onu VBİS idarə edir.
  • Relyasiya bazasında məlumatlar cədvəllərdə saxlanılır: sətir — bir obyekt, sütun — bir xüsusiyyətdir.
  • Əsas açar hər sətri birmənalı müəyyən edir, xarici açar isə başqa cədvəlin sətrinə istinad edir.
  • SQL deklarativ dildir: nə istədiyini yazırsan, necə tapmağı VBİS həll edir.
  • SQLite, MySQL, PostgreSQL və SQL Server eyni əsas SQL-i başa düşür, fərqlər yalnız detallardadır.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
Cədvəldə bir obyekt (məsələn, bir şagird) haqqında bütün məlumat harada saxlanılır?