Bazy danych NoSQL celowo rezygnują ze sztywnej, wspólnej struktury tabel modelu relacyjnego, a w zamian zyskują model danych dobrany specjalnie do konkretnego rodzaju problemu. Bazy dokumentowe przechowują każdy rekord jako elastyczny, samowystarczalny dokument, magazyny klucz-wartość pobierają dane wyłącznie za pomocą pojedynczego klucza wyszukiwania, a bazy grafowe traktują relacje między rekordami jako główną rzecz, którą faktycznie się przechowuje, zamiast traktować te relacje jako coś dodanego na koniec, nałożonego na osobne tabele.
Sztywny wspólny schemat staje się realnym ograniczeniem dla danych nieregularnych lub prostych wyszukiwań
Sztywny schemat tabel bazy relacyjnej wymaga, by każdy rekord tego samego typu miał dokładnie taką samą strukturę, co staje się realnym, praktycznym ograniczeniem, gdy dane są z natury nieregularne – katalog produktów, w którym różne typy produktów faktycznie mają różne atrybuty, na przykład – albo gdy głównym celem aplikacji jest niezwykle szybkie, proste wyszukiwanie, a nie złożone zapytania relacyjne obejmujące jednocześnie wiele osobnych tabel.
Trzy naprawdę różne modele NoSQL istnieją, bo rozwiązują trzy naprawdę różne problemy
Bazy dokumentowe dobrze pasują do nieregularnych, samowystarczalnych rekordów, przechowując każdy z nich jako elastyczny dokument, bez zmuszania wszystkich rekordów do identycznego, wspólnego kształtu. Magazyny klucz-wartość pasują do niezwykle szybkich, prostych wyszukiwań, takich jak pamięć podręczna sesji, gdzie nigdy nie jest naprawdę potrzebne nic bardziej złożonego niż pobranie jednej wartości po jednym dokładnym kluczu. Bazy grafowe pasują do danych, w których to relacje między rekordami, a nie same rekordy, naprawdę wymagają wydajnego odpytywania, a połączenia sieci społecznościowej są tego najbardziej oczywistym, powszechnym przykładem.
Czego wciąż nie jesteśmy pewni
To, że bazy danych NoSQL zamieniają wspólną strukturę modelu relacyjnego na model dopasowany do konkretnego problemu, to dobrze ugruntowana, bezsporna inżynieria baz danych. To, co jest naprawdę żywym, aktywnie dyskutowanym kompromisem inżynieryjnym, to wybór właściwego modelu NoSQL – albo wybór zamiast tego bazy relacyjnej – dla danej rzeczywistej aplikacji, ponieważ baza dokumentowa może ostatecznie wymagać niezgrabnego odtworzenia złączeń w stylu relacyjnym w kodzie aplikacji, gdy dane aplikacji z czasem stają się naprawdę bardziej powiązane ze sobą, a przewidzenie z góry, czy tak się stanie w przypadku konkretnej nowej aplikacji, pozostaje realną, niedoskonałą oceną, a nie czymś, co może rozstrzygnąć sztywna reguła.
To mieści się w ramach Modeli NoSQL (Dokumentowego, Klucz-Wartość, Grafowego), jednego z siedmiu tematów w Bazach Danych, jednej z siedmiu dziedzin w Informatyce, jednym z siedemnastu przedmiotów, z których aplikacja może cię przepytać.