Innholdsfortegnelse:
Definisjon - Hva betyr NoSQL?
NoSQL er en klasse av databasestyringssystemer (DBMS) som ikke følger alle reglene i et relasjonelt DBMS og ikke kan bruke tradisjonell SQL for å spørre data. Begrepet er noe misvisende når det tolkes som "Ingen SQL", og de fleste oversetter det som "Ikke bare SQL", ettersom denne typen databaser vanligvis ikke er en erstatning, men snarere et utfyllende tillegg til RDBMS og SQL.
NoSQL-baserte systemer brukes vanligvis i veldig store databaser, som er spesielt utsatt for ytelsesproblemer forårsaket av begrensningene til SQL og den relasjonsmodellen for databaser. Mange tenker på NoSQL som den moderne valgte databasen som skalerer med webkrav. Noen viktige implementeringer av NoSQL er Facebooks Cassandra-database, Googles BigTable og Amazons SimpleDB og Dynamo.
Techopedia forklarer NoSQL
En NoSQL-database følger ikke nødvendigvis de strenge regler som styrer transaksjoner i relasjonsdatabaser. Disse overtrådte reglene er kjent under forkortelsen ACID (Atomicity, Consistency, Integrity, Holdability). For eksempel bruker NoSQL-databaser ikke faste skjemastrukturer og SQL-sammenføyninger.
I en tradisjonell RDBMS blir de grunnleggende operasjonene lest og skrevet. Avlesninger kan bli skalert ved å gjenskape data til flere maskiner, og dermed lastebalansering av forespørsler. Dette påvirker imidlertid skriver fordi datakonsistensen må opprettholdes. Bare forfattere kan skaleres ved å dele opp dataene. Dette påvirker lesene, da distribuerte sammenføyninger vanligvis er treg og vanskelig å implementere. I tillegg, for å opprettholde ACID-egenskaper, må databaser låse data. Dette betyr at når en bruker åpner et dataelement, skal ingen andre brukere være i stand til å gjøre endringer på samme vare. Denne begrensningen har alvorlige konsekvenser for ytelsen.
Disse begrensningene har ikke vært et stort problem tidligere. Imidlertid, med ankomsten av sosiale nettverk og big data, ble en rekke massive databaser som dukket opp tvunget til å tjene titalls, eller til og med hundrevis, av millioner av klienter over hele verden med flere tusen leser og skriver hvert minutt. Tradisjonelle RDBMS oppfyller ganske enkelt ikke dette behovet fordi de bare kan "skalere opp" eller øke ressursene på en sentral server. En NoSQL-implementering kan derimot "skalere ut" eller distribuere databasebelastningen på flere servere.
NoSQL-databaser er fokusert på spesielle klasser av problemer - fra å være mer fleksible når det gjelder lagrede data (dokumentlagre), til å målrette brukssaker, som relasjoner (grafdatabaser) og samle data (kolonnedatabaser) eller bare forenkle ideen om en database ned til noe som lagrer en verdi (nøkkel / verdi lagrer).
NoSQL-databaser tilbyr fordelene med rask skalerbarhet, mye bedre ytelse og en enklere struktur sammenlignet med RDBMS-er. Imidlertid lider de også av å være en relativt ny og uprovosert teknologi, og de kan ikke gi RDBMS 'rike rapporterings- og analytiske funksjonalitet.
