NoSQL stworzony został z potrzeby obsługiwania większych wolumenów danych, która wymusiła przejście na model budowania platform na klastrach mniej wydajnych serwerów. Ta zmiana wzbudziła także wątpliwości w sprawie łatwości tworzenia kodu dobrze współpracującego z bazami relacyjnymi. Struktury danych używane przez NoSQL (np. klucz–wartość, graf, dokument, szerokokolumnowe) różnią się od tych używanych domyślnie w relacyjnych bazach danych, dzięki czemu niektóre operacje NoSQL są szybsze. Wybór konkretnej bazy danych pod względem formy przechowywania danych zależy od problemu, który musi rozwiązać. Czasami struktury danych używane przez bazy danych NoSQL są również postrzegane jako „bardziej elastyczne” niż relacyjne bazy danych. Wiele baz danych w celu osiągnięcia wysokiej dostępności danych (przepustowości) rezygnuje całkowicie lub częściowo ze spójności ( ). NoSQL nie posiada jednego standardowego języka zapytań i interfejsuhttp://www.journalofcloudcomputing.com/content/pdf/2192-113X-2-22.pdf.