Trace Id is missing
Gå til hovedindhold

NoSQL-database – hvad er NoSQL?

Et overblik til at komme i gang

Hvad er NoSQL-databaser?

NoSQL-databaser kaldes også "databaser uden relationer", "NoSQL-DB'er" eller blot "non-SQL" for at fremhæve det faktum, at de kan håndtere store mængder hastigt skiftende ustrukturerede data på andre måder end en relationsdatabase (SQL) med rækker og tabeller.

NoSQL-teknologierne har eksisteret siden 1960'erne under forskellige navne og har nydt godt af en stigende popularitet, i takt med at datalandskabet har ændret sig, og udviklerne er nødt til at kunne håndtere enorme mængder forskellige data, der genereres fra skyen, mobil, sociale medier og big data.

Nye data og datatyper lige fra virale tweets fra berømtheder til livsvigtige oplysninger i elektroniske medicinske journaler genereres i et svimlende højt tempo. NoSQL-databaser hjælper udviklerne med hurtigt at oprette databasesystemer for at lagre nye oplysninger og gøre dem klar med det samme til søgning, konsolidering og analyse.

Fordelene ved NoSQL-databaser (NoSQL-DB'er)

NoSQL-databaser hjælper it-eksperter og udviklere med at håndtere de nye udfordringer, der er forbundet med den konstant voksende mængde datatyper og -modeller, og er meget effektive til at håndtere uforudsigelige data, ofte med lynhurtig forespørgselshastighed. De tilbyder også en ubesværet databaseoverførsel til skyen for eksisterende NoSQL-arbejdsbelastninger.

Udvikling med fleksibilitet for øje

Med muligheden for at reagere på ikke-planlagte situationer imødekommer NoSQL-databaser behovene i forbindelse med hyppige softwareudgivelser og er samtidig velegnede til hurtig og fleksibel appudvikling.

Fleksibel håndtering af data

NoSQL giver udviklerne en højere grad af frihed, hastighed og fleksibilitet til at ændre både skema og forespørgsler og på den måde imødekomme datakrav. Oplysninger, der er gemt som en samling, gør det let at foretage iterative forbedringer uden at skulle foretage skemadesign på forhånd.

Drift i enhver målestok

NoSQL-DB'er kan tilbyde overbevisende driftsfordele og besparelser med mulighed for at skalere "ud" horisontalt – eller tilføje billigere servere uden at skulle opgradere. De kan skaleres til at håndtere flere data eller rumme en enkelt stor database inden for en meget distribuerbar klynge servere.

Typer af datamodeller med NoSQL-databaser

De fleste højtydende databaser uden relationer, som også nogle gange kaldes "ikke kun SQL", kan også håndtere meget strukturerede data – de er ikke kun begrænset til faste datamodeller ligesom relationsdatabaser (SQL).

 

De fire mest almindelige typer NoSQL-databaser er:

Nøgleværdi

Nøgleværdilagre parrer nøgler og værdier ved hjælp af en hashtabel. Nøgleværdityper er bedst, når en nøgle er kendt, og den tilknyttede værdi for nøglen er ukendt.

Dokument

Dokumentdatabaser udvider konceptet med nøgleværdidatabaser ved at organisere hele dokumenter i grupper, der kaldes samlinger. De understøtter indlejrede nøgleværdipar og muliggør forespørgsler på en hvilken som helst attribut i et dokument.

Kolonne

Databaser med kolonner, brede kolonner eller kolonnefamilier lagrer effektivt data og forespørger på tværs af rækker bestående af sparsomme data og er fordelagtige, når der forespørges på tværs af bestemte kolonner i databasen.

Grafisk afbildning

Databaser til grafiske afbildninger benytter en model, der er baseret på noder og grænser, for at repræsentere forbundne data – f.eks. relationer mellem mennesker i sociale netværk – og tilbyder forenklet lagring og navigation gennem komplekse relationer.

Sådan vælger du mellem relationsdatabaser (SQL) og databaser uden relation (NoSQL)

NoSQL eller database uden relation SQL eller med relation

BEDST TIL:

  • Håndtering af data uden relation eller store mængder ikke definerede eller hurtigt skiftende data.
  • Skemaagnostiske data eller skemadikterede af appen.
  • Apps, hvor ydeevne og tilgængelighed er vigtigere end en høj grad af konsekvens.
  • Apps, der altid er tilgængelige, og som servicerer brugere over hele verden.
  • Håndtering af relationsdata og data, som har logiske og diskrete krav, der kan identificeres på forhånd.
  • Skema, der skal vedligeholdes og holdes synkroniseret mellem appen og databasen.
  • Ældre systemer, der er udviklet til relationsstrukturer.
  • Apps, der kræver komplekse forespørgsler eller transaktioner over flere rækker.

SCENARIER:

  • Mobile apps.
  • Analyser i realtid.
  • Indholdsstyring.
  • Personlig tilpasning.
  • IoT-apps.
  • Databaseoverførsel.
  • Regnskabs-, økonomi- og banksystemer.
  • Systemer til lagerstyring.
  • Systemer til transaktionsstyring.

SKALERING:

  • Skalerer data horisontalt ved at sharde på tværs af servere.
  • Skalerer data vertikalt ved at øge serverbelastningen.

DATAMODEL:

  • Databasetyper: nøgleværdi, dokument, kolonne eller grafisk afbildning.
  • Lagrer data ud fra databasetype.
  • Databasetype: Tabeller med rækker, der grupperes i relationer.
  • Bruger SQL (Structured Query Language).
  • Lagrer data som rækker i tabeller; relaterede data, der er lagret separat og forbundet til komplekse forespørgsler.

Hvordan evaluerer jeg en NoSQL-DB?

Vælg en datamodel

Mange NoSQL-databaser er orienteret mod samlinger – en samling data, som du interagerer med som en enhed. Dette gør dem til et fordelagtigt valg til moderne objektorienterede programmeringssprog. Når du vælger en NoSQL-DB, er det en god idé at starte med en datamodel – og derefter evaluerer NoSQL-databaser, der understøtter det, samt de programmeringssprog og SDK'er, som hver database understøtter.

Afvej kompromiserne i forbindelse med konsekvens

De fleste NoSQL-DB'er giver dig mulighed for at vælge fra begge ender af et konsekvensspektrum – fra stærk konsekvens, hvor du får de nyeste data, men hvor du måske skal vente, til mulig konsekvens, hvor du får et hurtigt svar, men data kan være forældede. Der er mange NoSQL-databaser, der understøtter andre konsekvensniveauer, som typisk falder mere i midten af disse ekstremer. Vælg den NoSQL-DB, der giver dig mest fleksibilitet og kontrol i konsekvensmodeller til dine behov.

Overvej en cloudløsning og databaseoverførsel

NoSQL-databaser er med deres distribuerede natur og horisontale skalerbarhed ideelle til cloudcomputing, selvom du kan finde mange NoSQL-databasesystemer, der er designet til at køre i det lokale miljø eller i hybride scenarier.

Når du evaluerer dine cloudmuligheder, bør du overveje følgende:

  • Understøttede datamodeller. Understøtter cloududbyderen alle de datamodeller, som du måske vil bruge?
  • Udrulning og drift. Hvor nemt kan du udrulle din database og replikere den i andre områder, hvis der er behov for det?
  • Geografisk tilstedeværelse. Hvor er cloududbyderens datacentre? Kan du placere dine data der, hvor du vil? Hvordan overholder du globale forordninger om beskyttelse af personlige oplysninger, f.eks. EU's GDPR?
  • Nemhed ved replikering. Hvordan er processen til replikering af databasen til et andet geografisk område?
  • Skalerbarhed. Sikrer NoSQL-databaseressourcerne dig tilstrækkelig ydeevne samt skalerbarhed i forbindelse med vækst? Vil du kunne skalere op, ned eller horisontalt?
  • Høj tilgængelighed. Hvad sker der i tilfælde af en uventet fejl? Tilbyder tjenesten integreret høj tilgængelighed og it-katastrofeberedskab?
  • Serviceniveauer. Hvilke niveauer af tilgængelighed eller ventetidsgarantier tilbydes?
  • Økosystem. Er databasen tæt integreret med resten af cloudplatformen, og kan den hurtigt sammenstykkes for at skabe nye løsninger?

Måder at bruge NoSQL-databasesystemer på

Brug af datamodeller, der er baseret på NoSQL, er velegnet til virksomheder, der gerne vil udvikle mobilapps, webapps, IoT-apps og gamingapps, der kræver fleksible, skalerbare, højtydende og meget funktionelle databaser for at levere fantastiske brugeroplevelser – uanset om der er tale om gaming, e-handel, big data-analyser eller webapps i realtid m.m.

Distribuer dine apps globalt

Få flere brugere, uanset hvor i verden de befinder sig, med forbedret appydeevne, der skyldes høj tilgængelighed og et it-katastrofeberedskab.

Tilbyd kundeoplevelser i realtid

Levér personlig tilpasning, anbefalinger i realtid og en forbedret brugeroplevelse med NoSQL-databaserne.

Imødekom forskellige IoT-arbejdsbelastninger

Skalér øjeblikkeligt og elastisk for at håndtere vedvarende dataindtagelse, når der skrives mange data, med forbedret forespørgselsydeevne for IoT-apps.

Gør dine apps til e-handel endnu bedre

NoSQL er med sine fleksible skemaer og hierarkiske data velegnet til lagring af produktkatalogdata, hvor de forskellige produkter har forskellige attributter.

Aktivér gamere med nyt indhold

Levér personligt tilpassede oplevelser med indhold som f.eks. statistikker i spillet, integration med sociale medier og leaderboards. Lav ventetid og elastisk skalerbarhed understøtter spidsbelastninger i trafikken under spillanceringer eller spilturneringer.

Kompiler serveruafhængige apps

Skalér ubesværet dataindtagelse, dataoverførselshastighed og datamængder med øjeblikkelig tilgængelighed, automatisk indeksering, stabile indtagelsesrater og stabil forespørgselsydeevne.

Få større indsigt fra big data

Implementer maskinel indlæring i stor målestok på tværs af store mængder hurtigt skiftende data, og få mere ud af dine analyser.

Overfør eksisterende NoSQL-arbejdsbelastninger til skyen

Brug mindre tid på administration af en database i det lokale miljø ved at overføre til skyen, mens du stadig benytter eksisterende værktøjer, drivere, biblioteker og SDK'er.

Kom i gang med NoSQL og databaseoverførsel til skyen

Få mere at vide om, hvordan du udvikler dine apps med ny fleksibilitet og skalerbarhed til håndtering af dine databasesystemer og diverse datatyper samt en clouddatabaseoverførsel for eksisterende NoSQL-arbejdsbelastninger. Få en teknisk oversigt over Azure Cosmos DB for udviklere , og få mere at vide om oprindelig support til NoSQL i en globalt distribueret, massivt skalerbar databasetjeneste i flere modeller.

Få mere at vide om Azure Cosmos DB til NoSQL-data   
Få mere at vide