De vraag is extreem breed, maar ik zal proberen deze zo goed mogelijk te beantwoorden.
Ik hou er over het algemeen niet van om dit soort vragen te beantwoorden, omdat het lijkt alsof je heel weinig onderzoek hebt gedaan voordat je naar SO kwam. Het lijkt er ook op dat u verward bent met applicatie- en databaserollen. Ik zal je in ieder geval beginnen met wat materiaal/ideeën en je zelf laten beslissen.
Er is geen "zilveren kogel" voor een backend-ontwerp, vooral als het gaat om databases. SQL-databases zijn over het algemeen erg goed in de meeste databasefunctionaliteit, en terecht; het is een technologie die erg volwassen is en niet voor niets de tand des tijds heeft doorstaan. De meeste NOSQL-oplossingen zijn gespecialiseerd voor bepaalde doeleinden. Bijvoorbeeld:als je veel informatie aan het loggen was, wil je misschien naar Cassandra kijken. Als je met veel relationele gegevens te maken hebt, zou je zoiets als Neo4j (of PostgreSQL/MySQL voor RMDBS) willen gebruiken. Als je met veel realtime gegevens te maken hebt, kun je Redis eens bekijken.
Het is dom om NOSQL vs SQL te vragen om een paar redenen:
NOSQL is over het algemeen een slechte term. En het betekent niet "Geen SQL". Het betekent "Niet alleen SQL". Helaas heeft de term zelfs de meest tegenpool van databases ingekapseld.
Alleen u kent de volledige functionaliteit van uw toepassing. Zelfs als ik de basis wist van wat je wilde bereiken, zou ik je nog steeds geen definitief antwoord kunnen geven. Niemand anders kan dat ook. Het is zeer subjectief, en nogmaals, alleen JIJ weet PRECIES wat je applicatie zou moeten doen.
De grootste reden:het is 2014. Waarom één database? Tien jaar geleden zou "DatabaseX vs DatabaseY" een praktische vraag zijn geweest. Nu kunt u vele toepassingsframeworks configureren om meerdere databases in slechts enkele minuten betrouwbaar te gebruiken. Moraal van het verhaal:gebruik elke database voor zijn gespecialiseerde doel. Meer over polyglot-persistentie hier .
Wat Facebook betreft:een Google-zoekopdracht van vijf minuten onthult welke backend-technologieën ze in het verleden hebben gebruikt, en het is niet zo moeilijk om een aantal van hun huidige backend-oplossingen te onderzoeken. Je bent geen Facebook. U hoeft zich nu niet voor te bereiden op een miljard gebruikers. Begin met eenvoudige, bewezen technologieën. Hiermee kunt u uw toepassing op natuurlijke wijze schalen. Wanneer die technologieën een knelpunt beginnen te worden, maak je dan zorgen over de schaalbaarheid.
Ik hoop dat dit je heeft geholpen bij het starten van je codeerreis, maar gebruik Stack Overflow als laatste redmiddel als je problemen hebt met code. Niet meteen een aanrader.