აკრონიმი NoSQL შეიქმნა 1998 წელს. ბევრი ადამიანი ფიქრობს, რომ NoSQL არის დამამცირებელი ტერმინი, რომელიც შექმნილია SQL-ის გასატეხად. სინამდვილეში, ტერმინი ნიშნავს არა მხოლოდ SQL-ს. იდეა ისაა, რომ ორივე ტექნოლოგიას შეუძლია თანაარსებობა და თითოეულს თავისი ადგილი აქვს. NoSQL მოძრაობა სიახლეებში იყო ბოლო რამდენიმე წლის განმავლობაში, რადგან Web 2.0-ის ბევრმა ლიდერმა მიიღო NoSQL ტექნოლოგია. კომპანიები, როგორიცაა Facebook, Twitter, Digg, Amazon, LinkedIn და Google, ყველა იყენებს NoSQL-ს ამა თუ იმ გზით. მოდით დავშალოთ NoSQL, რათა ახსნათ ის თქვენს CIO-ს ან თუნდაც თქვენს თანამშრომლებს.

MYSQL მონაცემთა ბაზა.

NoSQL გაჩნდა საჭიროებიდან

Მონაცემთა საცავი: მსოფლიოში შენახული ციფრული მონაცემები იზომება ექსბაიტებში. ეგზაბაიტი უდრის ერთ მილიარდ გიგაბაიტს (GB) მონაცემს. Მიხედვით Internet.com2006 წელს დამატებული შენახული მონაცემების რაოდენობამ შეადგინა 161 ეგზაბაიტი. მხოლოდ 4 წლის შემდეგ, 2010 წელს, შენახული მონაცემების რაოდენობა იქნება თითქმის 1000 Exabyte, რაც 500%-ზე მეტია. სხვა სიტყვებით რომ ვთქვათ, მსოფლიოში უამრავი მონაცემი ინახება და ის უბრალოდ გაგრძელდება.

ურთიერთდაკავშირებული მონაცემები: მონაცემები აგრძელებს უფრო დაკავშირებულს. ვებ-გვერდის შექმნა ხელს უწყობს ჰიპერბმულებს, ბლოგებს აქვს პინგბეკი და ყველა ძირითად სოციალურ ქსელს აქვს ტეგები, რომლებიც აკავშირებს საგნებს ერთმანეთთან. ძირითადი სისტემები აგებულია ერთმანეთთან დასაკავშირებლად.

მონაცემთა რთული სტრუქტურა: NoSQL ადვილად უმკლავდება იერარქიულ ჩადგმულ მონაცემთა სტრუქტურებს. SQL-ში ერთი და იგივე საქმის განსახორციელებლად, დაგჭირდებათ მრავალი რელატიური ცხრილი ყველა სახის გასაღებით. გარდა ამისა, არსებობს კავშირი შესრულებასა და მონაცემთა სირთულეს შორის. შესრულება შეიძლება დაქვეითდეს ტრადიციულ RDBMS-ში, რადგან ჩვენ ვინახავთ მონაცემთა უზარმაზარ რაოდენობას, რომელიც საჭიროა სოციალური ქსელის აპლიკაციებში და სემანტიკური ქსელი.

რა არის NoSQL?

ვფიქრობ, NoSQL-ის განსაზღვრის ერთ-ერთი გზა არის იმის გათვალისწინება, რაც არ არის. ეს არ არის SQL და არ არის რელატიური. როგორც სახელი გვთავაზობს, ეს არ არის RDBMS-ის შემცვლელი, მაგრამ კომპლიმენტებია. NoSQL განკუთვნილია განაწილებული მონაცემთა მაღაზიებისთვის ძალიან დიდი მასშტაბის მონაცემთა საჭიროებისთვის. იფიქრეთ Facebook-ზე თავისი 500,000,000 მომხმარებლით ან Twitter-ზე, რომელიც ყოველდღიურად აგროვებს ტერაბიტებს მონაცემებს.

NoSQL მონაცემთა ბაზაში არ არის ფიქსირებული სქემა და არ არის შეერთება. RDBMS „მასშტაბდება“ უფრო და უფრო სწრაფი აპარატურის მიღებისა და მეხსიერების დამატებით. მეორეს მხრივ, NoSQL-ს შეუძლია ისარგებლოს „სკალირებისგან“. სკალირება ეხება ტვირთის გავრცელებას ბევრ სასაქონლო სისტემაზე. ეს არის NoSQL-ის კომპონენტი, რაც მას იაფ გადაწყვეტად აქცევს მონაცემთა დიდი ნაკრებისთვის.

NoSQL კატეგორიები

მიმდინარე NoSQL სამყარო ჯდება 4 ძირითად კატეგორიაში.

  1. გასაღები-მნიშვნელობების მაღაზიები ეფუძნება პირველ რიგში ამაზონის დინამოს ქაღალდი რომელიც დაიწერა 2007 წელს. მთავარი იდეა არის ჰეშის ცხრილის არსებობა, სადაც არის უნიკალური გასაღები და მითითება მონაცემების კონკრეტულ ელემენტზე. ამ რუკებს, როგორც წესი, ახლავს ქეში მექანიზმები, რათა მაქსიმალურად გაზარდოს შესრულება.
    1. სვეტი საოჯახო მაღაზიები შეიქმნა იმისთვის, რომ შეინახოს და დაამუშავოს ძალიან დიდი რაოდენობით მონაცემები, რომლებიც განაწილებულია ბევრ მანქანაზე. ჯერ კიდევ არის გასაღებები, მაგრამ ისინი მიუთითებენ რამდენიმე სვეტზე. BigTable-ის შემთხვევაში (Google-ის Column Family NoSQL მოდელი), სტრიქონები იდენტიფიცირებულია მწკრივის ღილაკით, სადაც მონაცემები დალაგებულია და ინახება ამ გასაღებით. სვეტები განლაგებულია სვეტების ოჯახის მიხედვით.
  2. დოკუმენტების მონაცემთა ბაზები შთაგონებული იყვნენ ლოტუსის ნოტები და მსგავსია გასაღების ღირებულების მაღაზიების. მოდელი ძირითადად არის ვერსიირებული დოკუმენტები, რომლებიც წარმოადგენს სხვა გასაღების ღირებულების კოლექციებს. ნახევრად სტრუქტურირებული დოკუმენტები ინახება ფორმატებში, როგორიცაა JSON.
  3. გრაფიკის მონაცემთა ბაზაs აგებულია კვანძებით, ნოტებს შორის ურთიერთობებით და კვანძების თვისებებით. რიგებისა და სვეტების ცხრილებისა და SQL-ის ხისტი სტრუქტურის ნაცვლად, გამოიყენება მოქნილი გრაფიკის მოდელი, რომელსაც შეუძლია მასშტაბირება მრავალ მანქანაში.

ძირითადი NoSQL მოთამაშეები

NoSQL-ის ძირითადი მოთამაშეები გაჩნდნენ ძირითადად იმ ორგანიზაციების გამო, რომლებმაც მიიღეს ისინი. ზოგიერთი უმსხვილესი NoSQL ტექნოლოგია მოიცავს:

  • დინამო: Dynamo შეიქმნა Amazon.com-ის მიერ და არის ყველაზე ცნობილი Key-Value NoSQL მონაცემთა ბაზა. ამაზონს სჭირდებოდა უაღრესად მასშტაბური განაწილებული პლატფორმა მათი ელექტრონული კომერციის ბიზნესისთვის, ამიტომ მათ განავითარეს Dynamo. Amazon S3 იყენებს Dynamo-ს, როგორც შენახვის მექანიზმს.
  • კასანდრა:კასანდრა იყო ღია წყარო Facebook-ის მიერ და არის სვეტზე ორიენტირებული NoSQL მონაცემთა ბაზა.
  • დიდი მაგიდა: BigTable არის Google-ის საკუთრების სვეტზე ორიენტირებული მონაცემთა ბაზა. Google უშვებს BigTable-ის გამოყენებას, მაგრამ მხოლოდ Google App Engine-ისთვის.
  • SimpleDB: SimpleDB არის ამაზონის კიდევ ერთი მონაცემთა ბაზა. გამოიყენება Amazon EC2 და S3-სთვის, ის Amazon Web Services-ის ნაწილია, რომელიც იხდის საფასურს გამოყენების მიხედვით.
  • CouchDB:CouchDB MongoDB-თან ერთად არის ღია კოდის დოკუმენტზე ორიენტირებული NoSQL მონაცემთა ბაზები.
  • Neo4J:ნეო4ჯ არის ღია კოდის გრაფიკის მონაცემთა ბაზა.

NoSQL-ის მოთხოვნა

კითხვა, თუ როგორ უნდა მოითხოვოთ NoSQL მონაცემთა ბაზა, არის ის, რაც დეველოპერების უმეტესობას აინტერესებს. ყოველივე ამის შემდეგ, მონაცემთა უზარმაზარ მონაცემთა ბაზაში შენახული მონაცემები არავის არ მოაქვს რაიმე სარგებელს, თუ თქვენ ვერ შეძლებთ მის მოძიებას და აჩვენოთ საბოლოო მომხმარებლებს ან ვებ სერვისებს. NoSQL მონაცემთა ბაზები არ იძლევა მაღალი დონის დეკლარაციულ შეკითხვის ენას, როგორიცაა SQL. სამაგიეროდ, ამ მონაცემთა ბაზების შეკითხვა სპეციფიკურია მონაცემთა მოდელისთვის.

NoSQL-ის მრავალი პლატფორმა საშუალებას აძლევს მონაცემთა RESTful ინტერფეისებს. სხვა შეთავაზების შეკითხვის API-ები. შემუშავებულია შეკითხვის რამდენიმე ინსტრუმენტი, რომლებიც ცდილობენ მოიძიონ მრავალი NoSQL მონაცემთა ბაზა. ეს ინსტრუმენტები ჩვეულებრივ მუშაობს NoSQL ერთ კატეგორიაში. ერთი მაგალითია SPARQL. SPARQL არის დეკლარაციული შეკითხვის სპეციფიკაცია, რომელიც შექმნილია გრაფიკის მონაცემთა ბაზებისთვის. აქ არის SPARQL მოთხოვნის მაგალითი, რომელიც იპოვის კონკრეტული ბლოგერის URL-ს. IBM):

პრეფიქსი foaf: 
აირჩიეთ ?url
FROM
სად {
?კონტრიბუტორი foaf: სახელი "Jon Foobar" .
?კონტრიბუტორი foaf: weblog ?url .
}

NoSQL-ის მომავალი

ორგანიზაციები, რომლებსაც აქვთ მონაცემთა შენახვის უზარმაზარი საჭიროებები, სერიოზულად უყურებენ NoSQL-ს. როგორც ჩანს, კონცეფცია არ იძენს იმდენ წევას მცირე ორგანიზაციებში. Information Week-ის მიერ ჩატარებული გამოკითხვით, ბიზნეს IT პროფესიონალების 44%-ს არ სმენია NoSQL-ის შესახებ. გარდა ამისა, გამოკითხულთა მხოლოდ 1%-მა აღნიშნა, რომ NoSQL მათი სტრატეგიული მიმართულების ნაწილია. ცხადია, NoSQL-ს აქვს თავისი ადგილი ჩვენს დაკავშირებულ სამყაროში, მაგრამ უნდა განაგრძოს განვითარება, რათა მივიღოთ მასობრივი მიმზიდველობა, რაც ბევრი ფიქრობს, რომ მას შეიძლება ჰქონდეს.