NoSQL 101

Forfatter: Judy Howell
Oprettelsesdato: 26 Juli 2021
Opdateringsdato: 21 Juni 2024
Anonim
How do NoSQL databases work? Simply Explained!
Video.: How do NoSQL databases work? Simply Explained!

Indhold


Tag væk:

Ikke-relationelle eller NoSQL-databaser er blevet en fremtrædende alternativ model for databaseadministratorer, fordi de er billigere, de er mere fleksible, de kræver mindre styring og de er mere skalerbare.

I mange år har relationelle databaser domineret databasestyring. Men ikke længere. I dag er ikke-relationelle databaser eller NoSQL databaser blevet en fremtrædende alternativ model for databasestyrere. Hvorfor? De er billigere, de er mere fleksible, de kræver mindre styring og de er mere skalerbare (noget der bliver stadig vigtigere med væksten af ​​big data).

Her skal du tage et indledende kig på denne voksende form for databasestyring.

Lidt baggrund om databasestyring

En database er en samling af dataposter i en organiseret form. For at gemme, få adgang til og manipulere disse data, har vi brug for en struktur. Denne struktur kan være alt fra et simpelt filsystem til et sofistikeret databasesystem (DBMS). Begge har deres eget sæt fordele og ulemper, men en DBMS foretrækkes normalt af grunde som:


  • En DBMS kan håndtere omfattende mængder data.
  • System backup, gendannelse og data gendannelse funktionalitet understøttes ofte ikke i et filsystem.
  • Redundans af data er godt taget hånd om i et DBMS, som forhindrer misbrug af hukommelse.
  • En database kan bedre udstyres med sikkerhedsforanstaltninger for at bevare tilstanden og integriteten af ​​de lagrede data.
  • En DBMS understøtter adgang til flere brugere og tager sig af samtidige problemer.
  • En DBMS giver flere brugervisninger sammen med flere abstraktionslag.
  • En DBMS opretholder de centrale ACID-egenskaber ved hentning og opdatering af data.

De fleste moderne databasesystemer er relationelle databasestyringssystemer (RDBMS), hvor data findes i tabeller med mindst dobbeltkopiering. Som navnet antyder, etablerer en relationel database forhold mellem data og giver mulighed for at udtrække de samme data fra og se i databaserne på mange forskellige måder. Imidlertid kommer denne kontrol til en pris. (Se mere om en introduktion til databaser for mere baggrundslæsning).


Hvad er NoSQL?

NoSQL er en type database, der ikke overholder den bredt anvendte relationelle databasestyringsmodel. Med andre ord er NoSQL-databaser ikke primært bygget på tabeller, og i modsætning til en RDBMS bruger de ikke SQL til at manipulere data - derav navnet. NoSQL blev oprettet som en support til SQL, ikke som dens erstatning. Den er baseret på en model, der er mindre streng og ikke i det væsentlige følger et fast skema. Det klarer muligvis ikke at holde på ACID-egenskaberne, og der er ikke noget koncept som JOIN, i modsætning til i de fleste af RDBMS'erne.

En stor definition af NoSQL kommer fra nosql-database.org, som definerer udtrykket som:

Næste generations databaser adresserer for det meste nogle af følgende punkter: at være ikke-relationel, distribueret, open source og vandret skalerbar. Den oprindelige hensigt har været moderne webbaserede databaser. Ofte gælder flere egenskaber såsom: skemafri, let replikationssupport, enkel API, til sidst konsistent / BASE (ikke ACID), en enorm mængde data og mere.

Historien og rødderne af NoSQL

Bare for at blive lidt mere forvirrende er der en RDBMS kaldet NoSQL. Det har sine rødder i 1990'erne og blev skabt af Carl Strozzi. Dette er faktisk helt anderledes; det er et relationelt system, men uden en SQL-interface. Strozzi har kommenteret, at det, der i øjeblikket er kendt som NoSQL, faktisk burde have været kaldet "NoREL", eller noget deromkring.

Ingen fejl, ingen stress - Din trinvis vejledning til oprettelse af livsændrende software uden at ødelægge dit liv

Du kan ikke forbedre dine programmeringsevner, når ingen er interesseret i softwarekvalitet.

Den moderne bevægelse af NoSQL, som vi beskæftiger os med, drejer sig om it-giganter som, Google og Amazon, og deres behov for en database, der kan skalere med de enorme mængder data, de producerede. Selvfølgelig har buzzwordet til dette udviklet sig til det, der er kendt som big data, hvoraf NoSQL er en enorm del. (Læs The Evolution of Big Data for at lære mere).

Uden at blive for specifik om datoerne i 2000'erne, men især det sidste halvdel af tiåret, var næsten alle store webfirmaer involveret i NoSQL på en eller anden måde med databasestyringssystemer som BigTable, CouchDB, Amazon Dynamo, MongoDB , Cassandra og Hadoop, blandt mange, mange andre (se en historie her og en fantastisk liste her). Det, der sparkede fra NoSQL-navnet, var det af en Rackspace-medarbejder ved navn Eric Evans i 2009 at bruge. Han brugte navnet til et møde vedrørende "open source, distribuerede, ikke-relationelle databaser." Derefter gik navnet bare fast.

Hvorfor bruge NoSQL?

Hvorfor bruger vi overhovedet NoSQL, når vi har vores gode, gamle RDBMS'er? Svaret er, i nogle tilfælde, en RDBMS er ikke tilstrækkelig, mens det i andre er overdreven. Her er et par ulemper ved relationelle databaser, der kan gøre NoSQL til en bedre løsning:

  • En applikation skal muligvis gemme data i et hierarkisk netværk eller træstruktur.
  • Du ønsker måske bare at gemme elementerne i applikationen i en vedvarende opbevaring konsekvent, men RDBMS kan være temmelig dyrt med hensyn til omkostninger og ressourcer.
  • NoSQL passer bedst, når applikationsenhederne har brug for en forespørgselsfunktion i dem.
  • RDBMS kan mislykkes, hvis du arbejder på en distribueret database eller på en skybaseret applikation for tilgængelighed og holdbarhed.
  • NoSQL kræver ikke en stiv skemadefinition eller lagring af metadata for at supplere de eksisterende data.

Den vigtigste ting at forstå er, at der var et behov drevet af de enorme datamængder og ændringen i, hvordan databaser blev krævet. Efterhånden som internettet blev mere socialt, handlede det ikke kun om læsninger, men skriver, og hvordan man skalerer det. I disse tilfælde er NoSQL bedre end et mere traditionelt RDBMS.

Den nederste linje på NoSQL

Følgende i fodspor af internetgiganter bruger mange virksomheder og organisationer, der beskæftiger sig med masser af bunker af data, NoSQL sammen med deres eksisterende DBMS'er til højere ydelse og effektivitet. Hvis du beskæftiger dig med højvolumen webapplikationer, har du sandsynligvis brug for en stærk forståelse af NoSQL.

For mindre organisationer er værdien af ​​NoSQL ikke så stærk, især da der er alvorlige udfordringer med hensyn til at implementere det, herunder mangel på support, ekspertise, administration, analyse og forretningsinformation. Kendsgerningen er, at den gennemsnitlige lille virksomhed ikke genererer petabytes med data hver dag. Når det er sagt, vokser NoSQLs popularitet og vil sandsynligvis fortsat være et stadig vigtigere værktøj og færdighed for databaseadministratorer, så det gør ikke ondt at i det mindste kende det grundlæggende.