İki əsas SƏBƏD (Verilənlər Bazası İdarəetmə Sistemi) tipi var: relasion və NoSQL. Birincilər cədvəllərlə işləyir, hər şey sütunlara görə dəqiqdir — elə bil Excel-də işləyirsən. İkincilər isə daha sərbəstdir, sərt struktur tələb etmir. Bu, o zaman rahatdır ki, məlumatların dəqiq sxemi yoxdur və ya tez-tez dəyişir.
Yeri gəlmişkən, NoSQL "SQL yoxdur" demək deyil. Əslində, "yalnız SQL deyil" (Not Only SQL) deməkdir. Bir çox NoSQL-sistemlər SQL sorğularını başa düşür, sadəcə bir az fərqli işləyirlər.
Məşhur SƏBƏD nümunələri:
- Relasion: PostgreSQL, MySQL, Microsoft SQL Server.
- NoSQL: MongoDB, Cassandra, Redis.
Relasion SƏBƏD-lər
Relasion verilənlər bazası (RVB) məlumatları cədvəllər şəklində təşkil edir, burada hər sətr — ayrıca qeyd (və ya obyekt), hər sütun isə — sahə (atribut) olur. Cədvəllər bir-biri ilə açarlar vasitəsilə əlaqələndirilir: əsas açar (qeydin identifikasiyası üçün) və xarici açar (cədvəlləri birləşdirmək üçün).
Budur, relasion SƏBƏD-də klassik "Tələbələr" cədvəlinin nümunəsi:
| id | name | age | group |
|---|---|---|---|
| 1 | Anna | 21 | KA-01 |
| 2 | Eve | 20 | KA-02 |
| 3 | Max | 22 | KA-01 |
Relasion SƏBƏD-lərin əsas xüsusiyyətləri:
- Məlumatlar sərt şəkildə strukturlaşdırılıb.
- Cədvəllər arasındakı əlaqələr açarlar vasitəsilə müəyyən olunur.
- Məlumatlarla işləmək üçün SQL (Structured Query Language) istifadə olunur.
Üstünlüklər
- Sərt məlumat strukturu: cədvəllər hər obyektin sabit sahələr dəstinə malik olmasını təmin edir. Bu, məlumatların idarəsini asanlaşdırır.
- Məlumatların bütövlüyü: əsas və xarici açarlar sayəsində relasion VB-də məlumat uyğunsuzluqlarının qarşısı alınır.
- ACID standart dəstəyi: relasion SƏBƏD-lər əməliyyatların etibarlılığını təmin edir, atomluq, uyğunluq, izolyasiya və davamlılıq prinsiplərinə əməl edir.
- Çətin sorğuların dəstəyi: SQL güclü seçim, sıralama və aqreqasiya əməliyyatları etməyə imkan verir.
Relasion SƏBƏD-lər məlumatlar dəqiq strukturlaşdırılıbsa və hər şeyin son rəqəmə qədər uyğun olması vacibdirsə, əladır. Məsələn, bank sistemlərində heç nə itə bilməz — hər bir hesab hərəkəti nəzarətdə olmalıdır. Və ya, məsələn, uçot sistemlərində: fakturalar, müştərilər və anbarlar adətən sabit struktura malik olur və onları cədvəl şəklində saxlamaq rahatdır. Həmçinin, bir çox veb-tətbiqlərdə, məsələn, istifadəçi, məhsul, sifariş siyahısı varsa — bunların hamısı cədvəl və sərt əlaqələrə çox gözəl oturur.
NoSQL-SƏBƏD-lər
NoSQL (Not Only SQL) — relasion modeldən istifadə etməyən SƏBƏD-lərdir. Məlumatlar sənəd, açar-dəyər, qraf və ya sütun formatında saxlanıla bilər. Fikir — elastiklikdədir: məlumatları tapşırığa uyğun istədiyin kimi saxlaya bilərsən, sərt qaydalar olmadan. Və bunun üçün uyğun qiymət ödəyirsən.
NoSQL-də məlumatların saxlanmasının nümunəsi (MongoDB üçün):
{
"id": 1,
"name": "Alex",
"age": 21,
"group": "KA-01"
}
NoSQL SƏBƏD-lər çox fərqli ola bilər — məlumatları necə saxladıqlarından asılı olaraq. Məsələn, sənəd tipli SƏBƏD-lər, məsələn MongoDB, elastik strukturlarla işləyir, burada məlumatlar sənəd şəklində, adətən JSON formatında saxlanılır. Bu, əgər məlumat strukturu qeyddən qeydə dəyişirsə, çox rahatdır.
Açar-dəyər SƏBƏD-lər, məsələn Redis, nəhəng "açar:dəyər" cütləri anbarı kimidir. Onlar cache və ya sadə ayarlara sürətli çıxış üçün idealdır.
Əgər obyektlər arasında əlaqələrlə işləmək lazımdırsa — məsələn, sosial şəbəkədə dostları analiz etmək və ya marşrutlar qurmaq — qraf SƏBƏD-lər (Neo4j kimi) kömək edir. Onlar məlumatı düyünlər və əlaqələr şəbəkəsi kimi saxlayır, bu cür strukturlarla işləmək üçün çox rahatdır.
Bir də sütun tipli SƏBƏD-lər, məsələn Apache Cassandra və ya HBase, məlumatları sətr yox, sütun üzrə saxlayır. Bu, xüsusilə böyük həcmli məlumatlarla işləyərkən və yalnız müəyyən göstəriciləri tez analiz etmək lazım olanda faydalıdır — analitika və ya Big Data sistemlərində olduğu kimi.
Niyə və nə vaxt NoSQL seçmək lazımdır
NoSQL verilənlər bazaları ənənəvi relasion SƏBƏD-lər tıxananda yaxşı işləyir. Onların bir neçə güclü tərəfi var:
- Çox sürətlidirlər. NoSQL nəhəng həcmdə məlumatlarla əla işləyir — sorğular tez işlənir, hətta məlumat çox və Excel-dəki kimi strukturlaşdırılmayıbsa belə.
- Elastikdirlər. Məlumat strukturunu istənilən vaxt dəyişmək olar: bu gün obyektin üç sahəsi var, sabah — beş, və heç nə pozulmur.
- Asan miqyaslanır. Məlumat çox olanda, sadəcə fərqli serverlərə bölmək olar. Buna horizontal miqyaslama deyilir və NoSQL bunu çox sevir.
- Big Data ilə dostdurlar. Əgər sizdə log axını, hadisələr, istifadəçi hərəkətləri və ya başqa "xam" məlumatlar varsa, dəqiq sxem olmadan — NoSQL öhdəsindən gələcək.
Belə SƏBƏD-lər xüsusilə aşağıdakı hallarda yaxşıdır:
- məlumat həcmi tez artır və struktur dəyişir (məsələn, log və ya hadisə analizi),
- məlumatı tez tapmaq və aqreqasiya etmək lazımdır (analitika kimi),
- çətin əlaqələr şəbəkəsi istifadə olunur, sosial şəbəkələrdə olduğu kimi (bunun üçün qraf SƏBƏD-lər uyğundur).
Qısacası, əgər layihəniz daha çox canlı orqanizmə bənzəyirsə, nəinki sərt cədvələ, NoSQL bəlkə də məhz sizə lazımdır.
Relasion və NoSQL SƏBƏD-lərin müqayisəsi
| Xüsusiyyət | Relasion SƏBƏD-lər | NoSQL SƏBƏD-lər |
|---|---|---|
| Məlumatların saxlanması | Cədvəllər, sətrlər, sütunlar | Sənədlər, qraflar, açar-dəyər, sütunlar |
| Sorğu dili | SQL | Reallaşdırmadan asılıdır (məsələn, MongoDB Query) |
| Məlumatların bütövlüyü | Yüksək (əsas/xarici açarlar) | Reallaşdırmadan asılıdır (bütövlük zəmanət verilmir) |
| Miqyaslanma | Şaquli (server gücünü artırmaq) | Üfüqi (serverlər arasında bölüşdürmək) |
| Struktur elastikliyi | Sərt struktur (cədvəllər və sahələr sabitdir) | Dinamik struktur (dəyişə bilər) |
| Performans | Strukturlaşdırılmış məlumatlar üçün optimaldır | Böyük həcm və zəif strukturlaşdırılmış məlumatlarda yüksəkdir |
| Nümunələr | PostgreSQL, MySQL, Oracle Database | MongoDB, Cassandra, Redis |
Nə vaxt relasion, nə vaxt NoSQL-SƏBƏD seçmək lazımdır?
Relasion SƏBƏD-lər:
- Məlumatlar sərt şəkildə strukturlaşdırılıbsa.
- Əməliyyat dəstəyi lazımdırsa.
- SQL ilə çətin analitika tələb olunursa.
NoSQL SƏBƏD-lər:
- Məlumat strukturunda elastiklik lazımdırsa.
- Miqyaslanma sərt struktura nisbətən daha vacibdirsə.
- Böyük həcmli və cədvələ salmaq çətin olan məlumatlarla işləmək lazımdırsa.
Belə bir bənzətmə aparmaq olar: relasion SƏBƏD elə bil Excel-də cədvəldir, hər şey sətr və sütunlara görə idealdır. NoSQL isə — qeydlər üçün lövhədir, ora istənilən şeyi, qeyddən tutmuş şəkilə qədər, yapışdıra bilərsən.
GO TO FULL VERSION