CodeGym /Kurslar /SQL SELF /SƏBƏD növləri: relasion və NoSQL

SƏBƏD növləri: relasion və NoSQL

SQL SELF
Səviyyə , Dərs
Mövcuddur

İ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

  1. 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.
  2. 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.
  3. 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.
  4. Çə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:

  1. Ç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ə.
  2. 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.
  3. 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.
  4. 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.

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