Co jsou NoSQL databáze?
NoSQL databáze jsou nerelační databázové systémy, které nepoužívají tradiční tabulkovou strukturu jako SQL databáze. Název NoSQL původně znamenal "No SQL" (žádné SQL), ale dnes se častěji interpretuje jako "Not Only SQL" – tyto databáze totiž často podporují SQL-like dotazovací jazyky, ale nejsou na ně omezeny. NoSQL databáze vznikly jako odpověď na potřeby Big Data, vysoké rychlosti a škálovatelnosti, které tradiční relační databáze nedokázaly efektivně pokrýt.
Největší rozdíl oproti SQL je flexibilní schéma – nemusíte předem definovat strukturu dat jako u MySQL tabulek. Můžete ukládat dokumenty různých struktur do stejné kolekce. To je ideální pro rychlý vývoj, protože změny datového modelu nevyžadují nákladné migrace. NoSQL databáze jsou navrženy pro horizontální škálování (přidáním dalších serverů), zatímco SQL databáze typicky škálují vertikálně (výkonnějším serverem). Pro aplikace s miliony uživatelů nebo petabajty dat je horizontální škálování klíčové.
NoSQL databáze často pracují s CAP teorémem – můžete vybrat maximálně dvě ze tří vlastností: Consistency (konzistence), Availability (dostupnost) a Partition Tolerance (odolnost vůči síťovému rozdělení). Většina NoSQL databází volí dostupnost a partition tolerance, což znamená "eventual consistency" – data se časem stanou konzistentními, ale ne okamžitě. Tento kompromis je přijatelný pro mnoho moderních aplikací jako sociální sítě, kde není kritické vidět nejnovější data okamžitě. NoSQL databáze dokonale fungují s API architekturou a podporují JSON formát, což perfektně sedí k moderním backendovým technologiím.