NoSQL nebo NOSQL : někde to znamená "nejen SQL" někde to jde zase proti principu SQL, takže "ne-SQL" už v tom je rozpor. Většina těch nových databází, se kterými jsem se prakticky setkal (Mongo, Neo4j) SQL dotazování nemá vůbec. Vytváří vlastně nový jazyk pro dotazování. Podobně jako například QueryDSL. Mongo je vlastně javascript. Je to každý pes jiná ves. Ono vytvořit obecný objektově dotazový jazyk jaksi nejde, protože "objekt" je ideální pojem, který každý jednotlivý programátor, tým, projekt, implementuje jinak s ohledem na svoje potřeby a specifický pohled na konkrétní problematiku.
Ten nový dotazovací jazyk je tedy podřízen nejen konkrétnímu programovacímu jazyku, ale mnoha dalším věcem, často s návazností na nutnost mnoho funkcí implementovat na úrovni programové logiky. NoSQL databáze mají vždy velmi specifické užití - zatímco tabulka je real-world fenomén, který pochopí mnohem širší populace neprogramátorů, tak pod slovem graf si většina lidí představí klikatou čáru (která je na pravé straně víc nahoře než na levé) a světe div se, neabsolvovali ani první semestr diskrétní matematiky. Pod slovem dokument si většina lidí představí word. Tabulku jim vysvětlíte, mj. protože ten excel to vystijuje celkem dobře. Spousta neprogramátorů je ráda, že má data uložené ve formátu, který jsou schopni alespoň částečně pochopit. A pak jim tam uděláte ranec ManyToMany, ale i na to jim můžete udělat views, atd.
SQL RDMS jsou přesně na tohle dělané, i když manažeři se většinou SQL navzdory očekávání většinou nenaučili. Navíc jsou zavedené, optimalizované a neskutečně vymakané.
Začínajícímu programátorovi bych určitě poradil založit svoje snažení na SQL RDMS + ORM + Jazyk vlastního výběru (Java); to otevře cestu do světa.