JET School

NoSQL nədir?

NoSQL (Açıq şəkildə “Not Only SQL” – “Yalnız SQL deyil”) — ənənəvi münasibətli (relational) verilənlər bazası modellərinə alternativ olaraq yaranmış, qeyri-münasibətli (non-relational) verilənlər bazası sistemlərini təsvir edən ümumi bir anlayışdır. NoSQL sistemləri, böyük həcmli məlumatların çevik şəkildə saxlanması, emalı və miqyaslandırılması ehtiyacından doğmuşdur. Bu sistemlər strukturlaşdırılmış, yarı-strukturlaşdırılmış və ya strukturlaşdırılmamış məlumatların saxlanmasına imkan verir.

Əsas xüsusiyyətləri:

Münasibət əsaslı deyil:

Ənənəvi SQL bazaları cədvəllərlə işləyir, lakin NoSQL sistemlərində bu struktura məcburiyyət yoxdur. Məlumatlar sənəd (document), açar-dəyər (key-value), sütun əsaslı (column-family) və ya qraf (graph) formasında saxlanıla bilər.

Yüksək miqyaslana bilmə (scalability):

NoSQL sistemləri üfüqi (horizontal) miqyaslandırmanı dəstəkləyir, yəni serverlər əlavə edilərək sistemin gücü artırılır.

Esneklik və sürət:

Fərqli tipli və dəyişkən strukturlu məlumatlarla işləməyə imkan verir. Bu, sürətli inkişaf dövründə və müxtəlif mənbələrdən gələn məlumatların toplanmasında üstünlükdür.

Şemaya ehtiyac yoxdur:

Əvvəlcədən müəyyən edilmiş məlumat strukturu (schema) tələb olunmur. Məlumatlar dinamik olaraq dəyişə bilər.

Yüksək performans:

Bəzi istifadə hallarında, NoSQL sistemləri münasibətli bazalardan daha sürətli nəticələr verir – xüsusilə oxuma və yazma əməliyyatlarında.

NoSQL-in əsas növləri:

Document-based (Sənəd əsaslı):

Məlumatlar JSON, BSON və ya XML formatında saxlanılır.

Məsələn: MongoDB, CouchDB

Key-Value Store (Açar-Dəyər):

Hər bir məlumat bir açar və dəyər cütü formasında saxlanılır.

Məsələn: Redis, DynamoDB

Column-Family Store (Sütun əsaslı):

Məlumatlar sütun qrupları şəklində təşkil olunur.

Məsələn: Apache Cassandra, HBase

Graph Database (Qraf əsaslı):

Qovşaq (node) və əlaqələr (edge) şəklində məlumat saxlanır – sosial şəbəkələr, tövsiyə sistemləri üçün idealdır.

Məsələn: Neo4j, ArangoDB

NoSQL nə zaman istifadə olunur?

  • Böyük həcmli və tez dəyişən məlumatlarla işləyərkən
  • Real-time (ani) analiz və sürətli cavab tələb olunan sistemlərdə
  • Ənənəvi verilənlər bazası ilə işləməyin çətin və ya mümkün olmadığı hallarda
  • Strukturlaşdırılmamış və ya yarı-strukturlaşdırılmış məlumatlar ilə işləyərkən
  • Sürətli tətbiq inkişafına ehtiyac olduqda (startup-lar və mikroservis memarlığı kimi)

Məhdudiyyətlər və Çətinliklər:

  • SQL sorğularının güclü imkanlarından məhrum olmaq
  • Məlumat bütövlüyü (ACID) zəmanətinin tam olmaması
  • Müxtəlif sistemlər üçün öyrənmə əyrisinin dik olması
  • NoSQL-lərin bir çoxu CAP teoremində ConsistencyAvailability arasında balansı fərqli formada qoruyur

Nəticə:

NoSQL verilənlər bazası sistemləri ənənəvi SQL bazalarına güclü alternativdir və müasir tətbiqlərin bir çoxunda daha çevik, sürətli və miqyaslana bilən həllər təklif edir. Lakin tətbiqə uyğun olaraq hansının daha əlverişli olduğunu müəyyənləşdirmək vacibdir — bəzi hallarda ənənəvi SQL, bəzi hallarda isə NoSQL üstün ola bilər.

Əlaqəli terminlər:

IT sahəsini dərindən öyrənmək üçün kurslarımıza qoşulun. Ətraflı məlumat almaq üçün sorğu göndərin!