NoSQL oznacza „nie tylko SQL” i zwykle oznacza, że baza danych nie jest relacyjną bazą danych, która była bardzo popularna w ostatnich dziesięcioleciach.
Powodem, dla którego NoSQL był tak popularny w ciągu ostatnich kilku lat, jest głównie to, że gdy relacyjna baza danych wyrasta z jednego serwera, nie jest już tak łatwa w użyciu. Innymi słowy, nie skalują się zbyt dobrze w systemie rozproszonym. Wszystkie duże witryny, o których wspominałeś Google, Yahoo, Facebook i Amazon (niewiele wiem o Digg), zawierają wiele danych i przechowują je w systemach rozproszonych z kilku powodów. Możliwe, że dane nie mieszczą się na jednym serwerze lub istnieją wymagania dotyczące wysokiej dostępności .
Twierdzenie CAP
Właściwości systemu rozproszonego można opisać twierdzeniem CAP . Z trzech właściwości możesz mieć tylko dwie:
- C GODNOŚĆ
- vailability
- tolerancja na sieci P artitioning
Amazon Dynamo używa Ostatecznej spójności, aby zbliżyć się do wszystkich trzech właściwości. Artykuł Dynamo: sklep Amazon o wysokiej dostępności, którego wartość jest kluczowa, jest wart przeczytania podczas poznawania baz danych NoSQL i systemów rozproszonych. Amazon Dynamo ma właściwości A i P.
Google ma inne podejście do BigTable , który ma właściwości C i A.
Inne bazy danych NoSQL
Jak napisałem na początku, istnieje wiele innych rodzajów baz danych NoSQL, które są zaprojektowane dla różnych wymagań. Wykres baz danych np jak Neo4j , bazy danych dokumentów, jak CouchDB i multimodel / przedmiot baz danych, takich jak OrientDB .
Na koniec chciałbym powiedzieć, że relacyjne bazy danych pozostaną popularne. Są bardzo elastyczne i łatwe w utrzymaniu. Ale nie zawsze są najlepszym wyborem.