NoSQL qıs altması 1998-ci ildə yaradılmışdır. Bir çox insanlar NoSQL-in SQL-i soxmaq üçün yaradılmış alçaldıcı termin olduğunu düşünür. Əslində bu termin təkcə SQL deyil. İdeya ondan ibarətdir ki, hər iki texnologiya birlikdə mövcud ola bilər və hər birinin öz yeri var. Web 2.0 liderlərinin bir çoxu NoSQL texnologiyasını mənimsədiyinə görə, NoSQL hərəkatı son bir neçə ildə xəbərlərdə olmuşdur. Facebook, Twitter, Digg, Amazon, LinkedIn və Google kimi şirkətlər bu və ya digər şəkildə NoSQL-dən istifadə edirlər. Gəlin NoSQL-i parçalayaq ki, onu CIO-nuza və ya iş yoldaşlarınıza izah edəsiniz.
NoSQL Ehtiyacdan Yarandı
Məlumat Saxlama: Dünyada saxlanılan rəqəmsal məlumatlar ekzabaytlarla ölçülür. Ekzabayt bir milyard gigabayta (GB) məlumat bərabərdir. Internet.com-un məlumatına görə, 2006-cı ildə əlavə edilmiş saxlanılan məlumatların həcmi 161 ekzabayt təşkil edib. Cəmi 4 il sonra 2010-cu ildə saxlanılan məlumatların həcmi demək olar ki, 1000 ExaBayt təşkil edəcək ki, bu da 500%-dən çox artım deməkdir. Başqa sözlə, dünyada çoxlu məlumat saxlanılır və onlar böyüməyə davam edəcək.
Bir-birinə Bağlı Data: Data daha çox əlaqəli olmağa davam edir. Vebin yaradılması hiperlinklərdə dəstəklənir, bloqlarda pingbacks var və hər bir böyük sosial şəbəkə sistemində hər şeyi bir-birinə bağlayan etiketlər var. Əsas sistemlər bir-birinə bağlanmaq üçün qurulub.
Kompleks Data Strukturu: NoSQL iyerarxik iç-içə məlumat strukturlarını asanlıqla idarə edə bilər. SQL-də eyni şeyi yerinə yetirmək üçün hər cür açarları olan çoxlu əlaqəli cədvəllərə ehtiyacınız olacaq. Bundan əlavə, performans və məlumatların mürəkkəbliyi arasında əlaqə var. Sosial şəbəkə proqramlarında və semantik internetdə tələb olunan böyük həcmdə məlumatı saxladığımız üçün ənənəvi RDBMS-də performans aşağı düşə bilər.
NoSQL nədir?
Məncə NoSQL-i müəyyən etməyin bir yolu onun nə olmadığını nəzərə almaqdır. Bu SQL deyil və əlaqəli deyil. Adından da göründüyü kimi, bu, RDBMS-ni əvəz etmir, lakin onu tərifləyir. NoSQL çox böyük miqyaslı məlumat ehtiyacları üçün paylanmış məlumat anbarları üçün nəzərdə tutulmuşdur. 500, 000, 000 istifadəçisi olan Facebook və ya hər gün Terabit məlumat toplayan Twitter haqqında düşünün.
NoSQL verilənlər bazasında sabit sxem və birləşmə yoxdur. RDBMS daha sürətli və daha sürətli aparat əldə etməklə və yaddaş əlavə etməklə "ölçülür". NoSQL, əksinə, "miqyasları genişləndirmək"dən istifadə edə bilər. Ölçəkləmə yükün bir çox əmtəə sistemləri üzərində yayılmasına aiddir. Bu NoSQL komponentidir və onu böyük verilənlər dəstləri üçün ucuz həll edir.
NoSQL Kateqoriyaları
Mövcud NoSQL dünyası 4 əsas kateqoriyaya uyğundur.
- Açar dəyərlər Mağazaları əsasən Amazon-un 2007-ci ildə yazılmış Dynamo Paper-a əsaslanır. Əsas fikir, unikal açarın və müəyyən bir məlumat elementinə göstəricinin olduğu bir hash cədvəlinin mövcudluğudur. Performansı artırmaq üçün bu xəritələr adətən keş mexanizmləri ilə müşayiət olunur.
- Sənəd Verilənlər Bazaları Lotus Notes-dan ilhamlanıb və əsas dəyər dükanlarına bənzəyir. Model əsasən digər açar-dəyər kolleksiyalarının kolleksiyaları olan versiyalı sənədlərdir. Yarı strukturlaşdırılmış sənədlər JSON kimi formatlarda saxlanılır.
- Qrafik verilənlər bazası qovşaqlar, qeydlər arasındakı əlaqələr və qovşaqların xüsusiyyətləri ilə qurulur. Sətir və sütun cədvəlləri və SQL-in sərt strukturu əvəzinə bir çox maşında miqyaslaya bilən çevik qrafik modeli istifadə olunur.
Sütun Ailə Mağazaları bir çox maşın üzərində paylanmış çox böyük həcmdə məlumatı saxlamaq və emal etmək üçün yaradılmışdır. Hələ də düymələr var, lakin onlar bir neçə sütuna işarə edir. BigTable (Google'un Sütun Ailəsi NoSQL modeli) vəziyyətində sətirlər bu açarla çeşidlənən və saxlanılan məlumatlarla sətir açarı ilə müəyyən edilir. Sütunlar sütun ailəsinə görə düzülüb.
Əsas NoSQL Oyunçuları
NoSQL-də əsas oyunçular, ilk növbədə, onları qəbul edən təşkilatlar sayəsində ortaya çıxdı. Ən böyük NoSQL texnologiyalarından bəziləri bunlardır:
- Dinamo: Dinamo Amazon.com tərəfindən yaradılmışdır və ən görkəmli Key-Value NoSQL verilənlər bazasıdır. Amazon-un e-ticarət biznesləri üçün yüksək dərəcədə genişləndirilə bilən paylanmış platformaya ehtiyacı var idi, ona görə də onlar Dinamo-nu inkişaf etdirdilər. Amazon S3 yaddaş mexanizmi kimi Dynamo-dan istifadə edir.
- Cassandra: Cassandra Facebook tərəfindən açıq mənbədir və sütun yönümlü NoSQL verilənlər bazasıdır.
- BigTable: BigTable Google-un xüsusi sütun yönümlü verilənlər bazasıdır. Google BigTable-ın istifadəsinə icazə verir, lakin yalnız Google Tətbiq Mühərriki üçün.
- SimpleDB: SimpleDB başqa bir Amazon verilənlər bazasıdır. Amazon EC2 və S3 üçün istifadə olunur, istifadədən asılı olaraq ödəniş tələb edən Amazon Veb Xidmətlərinin bir hissəsidir.
- CouchDB: CouchDB MongoDB ilə birlikdə açıq mənbəli sənəd yönümlü NoSQL verilənlər bazasıdır.
- Neo4J: Neo4j açıq mənbəli qrafik verilənlər bazasıdır.
Sorğu NoSQL
NoSQL verilənlər bazasını necə sorğulamaq sualı əksər tərtibatçıları maraqlandırır. Axı nəhəng verilənlər bazasında saxlanılan məlumatların heç kimə faydası yoxdur, əgər siz onu götürüb son istifadəçilərə göstərə bilmirsinizsə və ya veb xidmətləri. NoSQL verilənlər bazaları SQL kimi yüksək səviyyəli deklarativ sorğu dilini təmin etmir. Əvəzində, bu verilənlər bazalarını sorğulamaq > PREFIX foaf:
SELECT ?url
FROM
HERDE {
?təqdimatçı foaf:name "Jon Foobar".
?töhfəçi foaf:weblog ?url.
}
NoSQL-in gələcəyi
Kütləvi məlumatların saxlanmasına ehtiyacı olan təşkilatlar NoSQL-ə ciddi şəkildə baxırlar. Göründüyü kimi, konsepsiya kiçik təşkilatlarda o qədər də cəlbedici deyil. İnformasiya Həftəsi tərəfindən aparılan sorğuda biznes İT mütəxəssislərinin 44%-i NoSQL haqqında eşitməmişdir. Bundan əlavə, respondentlərin yalnız 1%-i NoSQL-in onların strateji istiqamətlərinin bir hissəsi olduğunu bildirdi. Aydındır ki, NoSQL bizim əlaqəli dünyamızda öz yerini tutur, lakin çoxlarının düşündüyü kütləvi cəlbediciliyi əldə etmək üçün təkamülə davam etməlidir.