Innehållsförteckning:
Definition - Vad betyder NoSQL?
NoSQL är en klass av databashanteringssystem (DBMS) som inte följer alla reglerna i ett relationellt DBMS och inte kan använda traditionell SQL för att fråga data. Termen är något vilseledande när den tolkas som "Ingen SQL", och de flesta översätter den som "Not Only SQL", eftersom denna typ av databas inte i allmänhet är en ersättning utan snarare ett komplement till RDBMS och SQL.
NoSQL-baserade system används vanligtvis i mycket stora databaser, som är särskilt benägna att prestandaproblem orsakade av SQL-begränsningarna och databasernas relationella modell. Många tänker på NoSQL som den moderna valbara databasen som skalar med webbkrav. Några anmärkningsvärda implementationer av NoSQL är Facebook: s Cassandra-databas, Googles BigTable och Amazons SimpleDB och Dynamo.
Techopedia förklarar NoSQL
En NoSQL-databas följer inte nödvändigtvis de strikta reglerna som styr transaktioner i relationsdatabaser. Dessa överträdda regler är kända av förkortningen ACID (Atomicity, Consistency, Integrity, Durability). Till exempel använder NoSQL-databaser inte fasta schematstrukturer och SQL-sammanfogningar.
I en traditionell RDBMS läses och skrivs de grundläggande operationerna. Avläsningar kan skalas genom att replikera data till flera maskiner, och därmed belastningsbalansera läsförfrågningar. Detta påverkar dock skrivningarna eftersom datakonsistensen måste upprätthållas. Endast skrivningar kan skalas genom att dela upp data. Detta påverkar läsningarna, eftersom distribuerade sammanfogningar vanligtvis är långsamma och svåra att implementera. För att behålla ACID-egenskaper måste databaser dessutom låsa data. Detta innebär att när en användare öppnar ett dataobjekt, bör ingen annan användare kunna göra ändringar av samma objekt. Denna begränsning har allvarliga konsekvenser för prestanda.
Dessa begränsningar har inte varit ett stort problem tidigare. Men med tillkomsten av sociala nätverk och big data tvingades ett antal massiva databaser som dykt upp att tjäna tiotals, eller till och med hundratals, miljoner klienter över hela världen med flera tusen läsningar och skrivningar varje minut. Traditionella RDBMS uppfyller helt enkelt inte detta behov eftersom de bara kan "skala upp" eller öka resurserna på en central server. En NoSQL-implementering kan å andra sidan "utskala" eller distribuera databasbelastningen över fler servrar.
NoSQL-databaser är inriktade på särskilda klasser av problem - från att vara mer flexibla när det gäller lagrade data (dokumentlagrar), till inriktning av användningsfall, som relationer (grafdatabaser) och aggregera data (kolumndatabaser) eller bara förenkla idén om en databas ner till något som lagrar ett värde (nyckel / värde lagrar).
NoSQL-databaser erbjuder fördelarna med snabb skalbarhet, mycket bättre prestanda och en enklare struktur jämfört med RDBMS. De lider emellertid också av att vara en relativt ny och obevisad teknik, och de kan inte tillhandahålla RDBMS: s rika rapporterings- och analysfunktioner.
