NoSQL en database som brukes til å lagre semi-strukturelle data i et datasystem. Semi-strukturelle data er data med litt struktur, og kan både være et alternativ til å lagre data i rene tekstfiler, og i enkelte tilfeller et alternativ til strukturerte data lagret i en relasjonsdatabase.

Faktaboks

Etymologi

engelsk no 'ikke' eller not only 'ikke bare' og SQL

NoSQL kan leses «Ikke-SQL», det vil si et alternativ til SQL. NoSQL kan også leses «Ikke-bare-SQL» («Not only SQL»), altså en løsning med et tillegg til tradisjonell SQL-database. NoSQL er lite standardisert. Dette fordi NoSQL er ment å være en mer åpen og fri måte å lagre data på enn relasjonsdatabase.

Populariteten til NoSQL har vokst frem blant annet på grunn av behovet for å lagre store mengder data (stordata) på en enkel og skalerbar måte for videre analyser, for eksempel analyser av brukeradferd på internett. Et annet eksempel er lagring eller loggføring av strømmer av data fra ulike sensorer, slik som observasjoner av værdata eller helsedata.

Beskrivelse

Generelt inkluderer NoSQL et lagringsformat for å representere datainnholdet i databasen knyttet til nøkkelverdier for entydig identifisering av data på et gitt nivå. I tillegg vil løsningen ha et språk for å utføre søk i databasen, samt å endre eller legge til data.

Noen vanlige forskjeller mellom relasjonsdatabase og NoSQL

  • Data lagret i NoSQL er ofte ikke representert i henhold til et detaljert skjema (engelsk schemaless). Et skjema setter krav til både hvilke data og hvordan data skal lagres i databasen, og gir visse begrensninger i hva databasen kan inneholde. NoSQL gir generelt større fleksibilitet for variasjon i data som lagres inkludert endringer i data over tid.
  • Relasjonsdatabaser er gode til å svare på mange ulike typer spørringer (spørsmål) skrevet i det standard spørrespråket SQL. En NoSQL-løsning settes typisk opp til å kunne svare på noen få forhåndsdefinerte spørringer, og er ofte mye raskere enn SQL-databaser til å svare på disse. For andre spørringer er den enten tregere enn SQL eller den kan ikke svare. Det kan derfor sies at NoSQL er en mer spesifikk databaseløsning.
  • Mange relasjonsdatabasesystem gir støtte for samtidige transaksjoner. Det betyr at selv om det er mange som bruker databasen samtidig så ser alle brukerne en oppdatert og konsistent versjon av databasen til enhver tid. NoSQL gir ofte ikke en slik garanti fullt ut. De tillater ofte at brukerne kan se litt utdaterte data fra databasen. NoSQL-løsningene gjør dette for å øke ytelse og tilgjengelighet til systemet.
  • En relasjonsdatabase kan være normalisert etter bestemte regler. For NoSQL er det ingen faste regler for å unngå mulig dobbeltlagring av data i databasen.

Noen kjente NoSQL-løsninger

Dokumentdatabase

Dokumentdatabaser (engelsk document store) representerer data som JSON eller lignende semi-strukturelle dokumenter med en tilhørende nøkkel for hvert dokument. XML er et alternativ til JSON, men er i praksis mindre brukt i kommersielle NoSQL-løsninger i dag. Det kan hevdes at bruken av JSON gir en god (nær) kobling mellom database og programmeringsspråk, for eksempel språk brukt i web-utvikling.

Nøkkelverdi-løsning

Nøkkelverdi-løsninger (engelsk key-value) er noe enklere enn dokumentdatabase og lagrer data bestående av par med en nøkkelverdi knyttet til et datainnhold. Dette gir veldig raske søk i datainnhold via nøkkelen, og er skalerbar i forhold til antall par i databasen. Andre søk i databasen enn bruk av nøkkelen går derimot tregt.

(Vid) kolonne-løsning

Vid kolonne-løsning (engelsk wide-column) kan være en hybrid av nøkkelverdi-løsning og en stor tabell med kolonner lignende en relasjonsdatabase. Slike løsninger er tiltenkt lagring og søk i store datamengder, kanskje distribuert utover flere datamaskiner i en skyløsning.

Grafdatabase

En grafdatabase representerer data i et nettverk av noder og koblinger (kanter) mellom dem. Dette er knyttet til matematisk grafteori. Fordeler er at det er enkelt å bevege seg rundt i nettverket ved søking, i tillegg til at det er lett å gjøre endringer i nettverket ved oppdatering av data.

Eksempler på bruk er, men ikke begrenset til, lagring av organisasjonskart, sosiale nettverk og GPS-koordinater i to-dimensjonale kart.

Les mer i Store norske leksikon

Kommentarer

Kommentarer til artikkelen blir synlig for alle. Ikke skriv inn sensitive opplysninger, for eksempel helseopplysninger. Fagansvarlig eller redaktør svarer når de kan. Det kan ta tid før du får svar.

Du må være logget inn for å kommentere.

eller registrer deg