sql >> Database teknologi >  >> RDS >> Database

Hvad er NoSQL, og hvordan bruges det?

Hvad er NoSQL?

En NoSQL- eller en NoSQL-database er et udtryk, der bruges, når der refereres til en "ikke SQL"- eller "ikke kun SQL"-database. NoSQL-databaser gemmer data i et andet format end traditionelle relationelle databasestyringssystemer. Dette er grunden til, at NoSQL ofte forbindes med udtrykket "ikke-relationel" database. Kort sagt er NoSQL-databaser moderne databaser med høj fleksibilitet, forbløffende ydeevne og bygget til skalerbarhed. Disse databaser bruges, når du har brug for lav latenstid og høj udvidelsesmuligheder, mens du arbejder med store datastrukturer. NoSQL's alsidighed skyldes karakteren af ​​at være ubegrænset sammenlignet med relationelle databasemodeller såsom MySQL eller DB2.

SQL vs. NoSQL sammenligning

Der er flere forskelle mellem SQL- og NoSQL-databasetyper. I tabellen nedenfor vil vi sammenligne nogle af de mest kritiske variationer.

SQL NoSQL
Relationelle datastrukturdatabaser Ikke-relationelle datastrukturdatabaser
Bedre til transaktioner med flere rækker  Bedre til dokumenter og JSON-filer
Databaser baseret på tabeller Databaser er dokumenter, nøgleværdier, grafer eller store kolonner
SQL-databaser er lodret skalerbare  NoSQL-databaser er vandret skalerbare 
Bruger foruddefineret skema Bruger dynamisk skema
Structured Query Language (SQL) Intet forespørgselssprog

NoSQL-databasetyper

Der er fire hovedtyper af NoSQL-databaser.

  • Nøgleværdi-datalagre
  • Dokumentbutikker
  • Bredsøjlebutikker
  • Grafbutikker 

Vi vil gennemgå hver af disse typer og forklare, hvad de bruges til.

Nøgleværdidatalagre

Disse typer databaser bruger nøgleværdi som en metode til at gemme data i databasen. Hver nøgleværdi er unik og fungerer som en identifikator, når en forespørgsel udføres. Den primære nøgle er opdelt i en partitionsnøgle og sorteringsnøgle. For eksempel vil partitionsnøglen have produkt-id lagret, og sorteringsnøglen vil have produkttyper lagret.

Lagrede værdier i disse databaser kan være alt fra de enkleste binære objekter såsom JSON-dokumenter til videoer eller andre massive komplekse elementer. Vores applikation vil have fuldstændig kontrol over disse værdier, og det er grunden til, at Key-Value Data Stores betragtes som den mest fleksible NoSQL-model. Det er vigtigt at nævne, at nøgleværdier ofte ikke understøtter transaktioner, fordi data, der er lagret i dem, er opdelt og brugt på tværs af hele klynger.

Dokumentbutikker

Som navnet antyder, er en NoSQL-database en ikke-relationel skemafri database, der gemmer og forespørger data i et dokument, der ligner en JSON-fil. I modsætning til konventionelle MySQL-tabeller indsamler dokumentlagerdatabaser alle data fra en given enhed til et dokument. Alle data, der er knyttet til denne enhed, gemmes også i det enkelte dokument.

Så på den ene side har du relationelle databaser, der gemmer data om varen i tabeller, og disse data er spredt ud over flere tabeller. På den anden side har du en ikke-relationel dokumentlagerdatabase, som gemmer alle data i en enkelt fil.

Bredsøjlebutikker

Det andet navn for disse databaser er Extensible Record Stores . Ligesom dokumentlagre er disse bredspaltede databaser også skemafrie databaser. Denne database bruger tabeller, rækker og kolonner som en relationsdatabase.

Men der er én forskel! Ingen af ​​kolonnerne eller registreringsnøglerne er faste, hvilket betyder, at navn og format kan variere. Det er grunden til, at bredspaltede databaser ofte ses som todimensionelle nøgleværdi-lagre.

Graph Stores

Graph Stores-databaser er bygget op omkring en simpel datastruktur:

Node — Relationship — Node

Disse databaser har tre typer datafelter. Disse felter kaldes knudepunkter og er sammensat af noder, kanter og egenskaber. Disse felter bruges til at gemme og repræsentere dataene i Graph-lagrene.

Graflagre fungerer ved at indsamle data inden for en node, og kanter lagrer forholdet mellem hver node. Hver kant har fire komponenter:en startnode, en slutnode, en type og en retning. Denne struktur er nødvendig, fordi én node kan have et ubegrænset antal relationer.

Den endelige type datafelt, egenskaber, lagerfunktioner og yderligere information relateret til kanter og relationer. Et eksempel på en egenskab kaldes "Vægt af en kant." Denne egenskab kan spare en omkostning, afstand, rækkevidde, længde eller ethvert andet mål for et forhold mellem to noder.

Eksempler på NoSQL-system

Nu hvor vi ved, hvilke typer NoSQL-databaser vi har, vil vi gennemgå nogle af de mest brugte databasestyringssystemer for hver af disse typer.

Databasetype Mest anvendte administrationssystem
Nøgleværdidatalagre Redis, er langt det mest brugte NoSQL-administrationssystem generelt. Redis kan bruges til andre operationer såsom caching, men databasestyring er dens primære funktion.

Dokumentbutikker MongoDB annonceres som den "mest populære database til moderne applikationer ”. MongoDB er faktisk en hel del mere end blot et databasestyringssystem. Det er en hel dataplatform med mange værktøjer, som udviklere og dataforskere kan bruge.

Bredsøjlebutikker Apache Cassandra bruges af Activision, Hulu, Uber, Walmart og snesevis af andre højprofilerede virksomheder. Ifølge den officielle side bruger 40% af Fortunes Top 100 virksomheder Cassandra i deres daglige drift. Årsagen til dette er enkel. Cassandra er det bedste valg, når du har brug for et administrationssystem til en butik med bred spalte, der tilbyder den bedste skalerbarhed og tilgængelighed uden at gå på kompromis med ydeevnen.

Graph Stores Neo4j er en indbygget grafdatabase, bygget fra bunden for at udnytte noder og relationer. Neo4j skaber forbindelser mellem data, mens de lagres, hvilket muliggør forespørgselstyper, man aldrig havde forestillet sig, ved hastigheder, man sjældent troede var mulige.

Vi kender nu de forskellige typer af NoSQL-databaser. Vi kender også det grundlæggende bag dem. Lad os endelig gennemgå, hvad der ville være den bedste måde at omsætte hver af disse databaser i praksis.

Bedste anvendelsesmuligheder for NoSQL-databaser

  • Nøgleværdi-lagerdatabaser :Disse databaser bruges bedst til forskellige indkøbskurve. Dette skyldes simpelthen, at Key-Value-databaser kan håndtere millioner eller milliarder af ordrer. Massive indgående data behandles uden tab af ydeevne. Disse databaser har også indbygget redundans, så du ikke behøver at bekymre dig om tab af data.
  • Dokumentlagerdatabaser :Disse databaser bruges bedst til forskellige kataloger. Dette kan igen kobles til din e-handelsvirksomhed, hvor du skal gemme tusindvis af forskellige attributter om vores produkter. Da data gemmes i et enkelt dokument, er administrationen af ​​produkter hurtig og nem.
  • Bredsøjlebutikker :Disse databaser bruges bedst til geografisk information, rapporteringssystemer, sensorlogfiler og lignende. Vi oplyser dette, fordi Wide-Column-butikker bruger multidimensionel mapping (rækkeværdi, kolonneværdi og tidsstempel) i et tabelformat beregnet til massiv skalerbarhed. Hvis du nogensinde bruger et websted eller en app til at tjekke køreafstanden fra A til B på et kort, er chancerne temmelig høje for, at Wide-Column-butikker er i brug på den pågældende hjemmeside eller applikation.
  • Grafstore databaser :Disse databaser er bedst brugt til systemer til registrering af svindel over gennemsnittet. Lad os sige, at vi har en kendt sag om svindel for en specifik e-mail eller kreditkort. Hvis denne person forsøger at logge ind og køber noget igen med oplysningerne fra den pågældende svindelsag, vil nogen blive underrettet af systemet. Det sker på grund af, hvordan Graph-lagerets databaser behandler relationer mellem noder i realtid.

Konklusion

Vi støder ofte på brugen af ​​NoSQL-databaser i vores daglige liv uden at være klar over det. Dataene viser, at de overordnede fordele ved NoSQL og dets effektivitet er uoverskuelige. Forhåbentlig giver denne artikel dig brugbar information, og hvordan NoSQL kan implementeres i din forretningsmetode. Afslutningsvis er vi glade for, at vi kunne demonstrere, hvordan NoSQL kan være til gavn for dig.

Hvordan kan vi hjælpe?

Vi er stolte af at være de mest hjælpsomme mennesker inden for Hosting™! Vores kyndige løsninger eller erfarne hostingrådgivere står altid til rådighed for at vise dig, hvordan du kan drage fordel af disse teknikker i dag!

Vi er tilgængelige 24 timer i døgnet, 7 dage om ugen 365 dage om året, via vores billetsystemer på [email protected], på telefon (på 800-580-4986) eller via en LiveChat eller hvilken metode du foretrækker.

Vi arbejder hårdt for dig, så du kan slappe af.


  1. Hvordan kan jeg gå gennem alle rækker i en tabel? (MySQL)

  2. Hvordan skriver man en REST API?

  3. Oracle-lagret procedure:returner både resultatsæt og ud-parametre

  4. Pil notation