NoSQL-opetusohjelma: Mikä on, NoSQL-tietokantojen tyypit ja esimerkki

Mikä on NoSQL?

NoSQL Tietokanta on ei-relaatioinen tiedonhallintajärjestelmä, joka ei vaadi kiinteää skeemaa. Se välttää liitokset ja on helppo skaalata. NoSQL-tietokannan käytön päätarkoitus on hajautettuihin tietovarastoihin, joissa on valtavasti tallennustarpeita. NoSQL:ää käytetään Big dataan ja reaaliaikaisiin verkkosovelluksiin. Esimerkiksi Twitterin, Facebookin ja Googlen kaltaiset yritykset keräävät teratavuja käyttäjätietoja joka ikinen päivä.

NoSQL-tietokanta tarkoittaa "Not Only SQL" tai "Not SQL". Vaikka parempi termi olisi "NoREL", NoSQL otti kiinni. Carl Strozz esitteli NoSQL-konseptin vuonna 1998.

Perinteinen RDBMS käyttää SQL-syntaksia tietojen tallentamiseen ja hakemiseen lisätietoa varten. Sen sijaan NoSQL-tietokantajärjestelmä kattaa laajan valikoiman tietokantatekniikoita, jotka voivat tallentaa strukturoitua, puolirakenteista, strukturoimatonta ja polymorfista tietoa. Ymmärretään NoSQL:stä kaaviolla tässä NoSQL-tietokannan opetusohjelmassa:

NoSQL-tietokanta

Miksi NoSQL?

NoSQL-tietokantojen käsitteestä tuli suosittu Internet-jättiläisten, kuten Googlen, Facebookin, Amazonjne. jotka käsittelevät valtavia tietomääriä. Järjestelmän vasteaika hidastuu, kun käytät RDBMS:ää valtaviin tietomääriin.

Tämän ongelman ratkaisemiseksi voisimme "skaalata" järjestelmiämme päivittämällä olemassa olevaa laitteistoamme. Tämä prosessi on kallis.

Vaihtoehto tälle ongelmalle on jakaa tietokannan kuormitus useille koneille aina, kun kuormitus kasvaa. Tämä menetelmä tunnetaan nimellä "skaalaus".

NoSQL

NoSQL-tietokanta ei ole relaatio, joten se skaalautuu paremmin kuin relaatiotietokannat, koska ne on suunniteltu verkkosovelluksia ajatellen.

NoSQL-tietokantojen lyhyt historia

  • 1998 - Carlo Strozzi käyttää termiä NoSQL kevyestä avoimen lähdekoodin relaatiotietokannastaan
  • 2000- Graafitietokanta Neo4j käynnistyy
  • 2004 – Google BigTable julkaistaan
  • 2005- CouchDB käynnistetään
  • 2007- Tutkimuspaperi aiheesta Amazon Dynamo vapautetaan
  • 2008 - Facebookin avoimet lähteet Cassandra projekti
  • 2009 - Termi NoSQL otettiin uudelleen käyttöön

NoSQL:n ominaisuudet

Ei-relatiivista

  • NoSQL-tietokannat eivät koskaan noudata relaatiomalli
  • Älä koskaan tarjoa taulukoita litteillä kiinteäsarakkeisilla tietueilla
  • Työskentele itsenäisten aggregaattien tai BLOB:ien kanssa
  • Ei vaadi oliorelaatiokartoitusta ja tietojen normalisointia
  • Ei monimutkaisia ​​ominaisuuksia, kuten kyselykielet, kyselysuunnittelijat, viiteeheysliitokset, ACID

Kaaviovapaa

  • NoSQL-tietokannat ovat joko skeemattomia tai niissä on rento skeema
  • Älä vaadi minkäänlaista määrittelyä datan skeemasta
  • Tarjoaa heterogeenisiä datarakenteita samassa toimialueessa
NoSQL:n ominaisuudet
NoSQL on skeematon

Yksinkertainen API

  • Tarjoaa helppokäyttöiset käyttöliittymät toimitettujen tietojen tallentamiseen ja kyselyyn
  • API:t mahdollistavat matalan tason tietojen käsittely- ja valintamenetelmät
  • Tekstipohjaiset protokollat, joita käytetään enimmäkseen HTTP RESTin ja JSONin kanssa
  • Useimmiten ei käytetty standardipohjaista NoSQL-kyselykieltä
  • Web-pohjaiset tietokannat, jotka toimivat Internetiin päin olevina palveluina

hajautettu

  • Useita NoSQL-tietokantoja voidaan suorittaa hajautetusti
  • Tarjoaa automaattisen skaalaus- ja vikasieto-ominaisuudet
  • Usein ACID-konsepti voidaan uhrata skaalautuvuuden ja suorituskyvyn vuoksi
  • Useimmiten ei synkronista replikointia hajautettujen solmujen välillä Asynkroninen Multi-Master Replication, peer-to-peer, HDFS-replication
  • Tarjoaa vain lopullista johdonmukaisuutta
  • Ei jaettu mitään Archirakenne. Tämä mahdollistaa vähemmän koordinaatiota ja paremman jakelun.
NoSQL:n ominaisuudet
NoSQL ei ole jaettua mitään.

NoSQL-tietokantojen tyypit

NoSQL-tietokannat Ne luokitellaan pääasiassa neljään tyyppiin: avainarvopari, sarakesuuntautunut, kaaviopohjainen ja asiakirjasuuntautunut. Jokaisella luokalla on ainutlaatuiset ominaisuutensa ja rajoituksensa. Mikään edellä mainituista tietokannoista ei ole parempi ratkaisemaan kaikkia ongelmia. Käyttäjien tulee valita tietokanta tuotetarpeidensa perusteella.

NoSQL-tietokantojen tyypit:

  • Avainarvopariperusteinen
  • Sarakesuuntainen kaavio
  • Kaavioihin perustuva
  • Asiakirjasuuntautunut

NoSQL-tietokantojen tyypit

Avainarvopari perustuu

Tiedot tallennetaan avain/arvo-pareina. Se on suunniteltu käsittelemään paljon dataa ja raskasta kuormaa.

Avainarvoparien tallennustietokannat tallentavat tiedot hash-taulukkona, jossa jokainen avain on yksilöllinen ja arvo voi olla JSON, BLOB (Binary Large Objects), merkkijono jne.

Esimerkiksi avain-arvo-pari voi sisältää avaimen, kuten "Website", joka liittyy arvoon, kuten "Guru99".

Avainarvopari perustuu

Se on yksi yksinkertaisimmista NoSQL-tietokantaesimerkeistä. Tällaista NoSQL-tietokantaa käytetään kokoelmana, sanakirjoina, assosiatiivisena taulukona jne. Avainarvovarastot auttavat kehittäjää tallentamaan skeemattomia tietoja. Ne sopivat parhaiten ostoskorin sisältöön.

Redis, Dynamo, Riak ovat joitain NoSQL-esimerkkejä avainarvovarastotietokannoista. Ne kaikki perustuvat AmazonDynamo-paperi.

Sarakepohjainen

Sarakekohtaiset tietokannat toimivat sarakkeilla ja perustuvat Googlen BigTable-paperiin. Jokainen sarake käsitellään erikseen. Yhden sarakkeen tietokantojen arvot tallennetaan peräkkäin.

Sarakepohjainen NoSQL-tietokanta

Sarakepohjainen NoSQL-tietokanta

Ne tarjoavat korkean suorituskyvyn koontikyselyissä, kuten SUM, COUNT, AVG, MIN jne., koska tiedot ovat helposti saatavilla sarakkeessa.

Sarakepohjaisia ​​NoSQL-tietokantoja käytetään laajalti tietovarastojen hallintaan, bisnesvaisto, CRM, kirjastokorttiluettelot,

HBase, Cassandra, HBase, Hypertable ovat NoSQL-kyselyesimerkkejä sarakepohjaisesta tietokannasta.

Dokumenttisuuntautunut

Asiakirjaorientoitu NoSQL DB tallentaa ja hakee tiedot avainarvoparina, mutta arvoosa tallennetaan asiakirjana. Asiakirja on tallennettu JSON- tai XML-muodossa. Tietokanta ymmärtää arvon, ja siitä voidaan tehdä kysely.

Suhteellinen vs. Asiakirja

Suhteellinen vs. Asiakirja

Tästä vasemmalla olevasta kaaviosta näet, että meillä on rivejä ja sarakkeita, ja oikealla meillä on asiakirjatietokanta, jolla on samanlainen rakenne kuin JSON. Nyt relaatiotietokantaa varten sinun on tiedettävä, mitä sarakkeita sinulla on ja niin edelleen. Asiakirjatietokannassa sinulla on kuitenkin tietovarasto, kuten JSON-objekti. Sinun ei tarvitse määritellä, mikä tekee siitä joustavan.

Asiakirjatyyppiä käytetään enimmäkseen CMS-järjestelmissä, blogialustoissa, reaaliaikaisissa analytiikka- ja verkkokauppasovelluksissa. Sitä ei tulisi käyttää monimutkaisiin tapahtumiin, jotka vaativat useita operaatioita tai kyselyitä vaihtelevia aggregaattirakenteita vastaan.

Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, ovat suosittuja Asiakirja on peräisin DBMS-järjestelmät.

Kaaviopohjainen

Graafityyppinen tietokanta tallentaa entiteetit sekä niiden väliset suhteet. Entiteetti tallennetaan solmuna ja suhde reunoihin. Reuna antaa suhteen solmujen välille. Jokaisella solmulla ja reunalla on yksilöllinen tunniste.

Kaaviopohjainen

Verrattuna relaatiotietokantaan, jossa taulukot on liitetty löyhästi, Graph-tietokanta on luonteeltaan monirelaatiotietokanta. Kulkusuhde on nopea, koska ne on jo tallennettu tietokantaan, eikä niitä tarvitse laskea.

Graafipohjainen tietokanta, jota käytetään enimmäkseen sosiaalisiin verkostoihin, logistiikkaan ja paikkatietoihin.

Neo4J, Infinite Graph, OrientDB, FlockDB ovat suosittuja kaaviopohjaisia ​​tietokantoja.

Kyselymekanismin työkalut NoSQL:lle

Yleisin tiedonhakumekanismi on REST-pohjainen arvon haku sen avaimen/tunnuksen perusteella GET-resurssin avulla.

Asiakirjasäilötietokanta tarjoaa vaikeampia kyselyitä, koska he ymmärtävät avain-arvo-parin arvon. Esimerkiksi, CouchDB mahdollistaa näkymien määrittämisen MapReducen avulla

Mikä on CAP-lause?

CAP-lausetta kutsutaan myös panimolauseeksi. Siinä todetaan, että hajautetun tietovaraston on mahdotonta tarjota enemmän kuin kaksi kolmesta takuusta

  1. Johdonmukaisuus
  2. Saatavuus
  3. Osiotoleranssi

Johdonmukaisuus:

Tietojen tulee pysyä johdonmukaisina myös toimenpiteen suorittamisen jälkeen. Tämä tarkoittaa, että kun tiedot on kirjoitettu, kaikkien tulevien lukupyyntöjen tulee sisältää kyseiset tiedot. Esimerkiksi tilauksen tilan päivityksen jälkeen kaikkien asiakkaiden pitäisi voida nähdä samat tiedot.

Saatavuus:

Tietokannan tulee olla aina saatavilla ja reagoiva. Siinä ei pitäisi olla seisokkeja.

Osiotoleranssi:

Osiotoleranssi tarkoittaa, että järjestelmän tulee jatkaa toimintaansa, vaikka palvelinten välinen tiedonsiirto ei olisi vakaa. Palvelimet voidaan esimerkiksi jakaa useisiin ryhmiin, jotka eivät välttämättä kommunikoi keskenään. Tässä, jos osa tietokannasta ei ole käytettävissä, muut osat eivät aina vaikuta.

Lopullinen johdonmukaisuus

Termi "mahdollinen johdonmukaisuus" tarkoittaa, että tiedoista on kopioita useilla koneilla korkean käytettävyyden ja skaalautuvuuden saavuttamiseksi. Siten yhden koneen tietokohteeseen tehdyt muutokset on siirrettävä muihin replikoihin.

Tietojen replikointi ei välttämättä tapahdu hetkessä, koska jotkut kopiot päivitetään välittömästi, kun taas toiset ajan myötä. Nämä kopiot voivat olla keskenään, mutta ajan myötä niistä tulee johdonmukaisia. Tästä syystä nimi lopullinen johdonmukaisuus.

BASE: Basikaalisesti Asaatavilla, Susein tila, Evenuaalinen johdonmukaisuus

  • Pohjimmiltaan käytettävissä tarkoittaa, että DB on käytettävissä koko ajan CAP-lauseen mukaisesti
  • Pehmeä tila tarkoittaa jopa ilman tuloa; järjestelmän tila voi muuttua
  • Lopullinen johdonmukaisuus tarkoittaa, että järjestelmästä tulee johdonmukainen ajan myötä

Lopullinen johdonmukaisuus

NoSQL:n edut

  • Voidaan käyttää ensisijaisena tai analyyttisenä tietolähteenä
  • Big Data -ominaisuus
  • Ei yhtään viallispistettä
  • Helppo replikointi
  • Erillistä välimuistikerrosta ei tarvita
  • Se tarjoaa nopean suorituskyvyn ja vaakasuuntaisen skaalautuvuuden.
  • Pystyy käsittelemään strukturoitua, puolistrukturoitua ja strukturoimatonta dataa yhtä tehokkaasti
  • Olio-ohjelmointi, joka on helppokäyttöinen ja joustava
  • NoSQL-tietokannat eivät tarvitse erityistä korkean suorituskyvyn palvelinta
  • Tuki keskeisiä kehittäjäkieliä ja -alustoja
  • Helppo toteuttaa kuin RDBMS:n käyttö
  • Se voi toimia verkkosovellusten ensisijaisena tietolähteenä.
  • Käsittelee suurdataa, joka hallitsee tiedon nopeutta, vaihtelua, määrää ja monimutkaisuutta
  • Erinomainen hajautettujen tietokantojen ja useiden tietokeskusten toiminnassa
  • Poistaa tietyn välimuistikerroksen tarpeen tietojen tallentamiseen
  • Tarjoaa joustavan mallisuunnittelun, jota voidaan helposti muuttaa ilman seisokkeja tai palveluhäiriöitä

NoSQL:n haitat

  • Ei standardointisääntöjä
  • Rajoitetut kyselyominaisuudet
  • RDBMS tietokannat ja työkalut ovat suhteellisen kehittyneitä
  • Se ei tarjoa perinteisiä tietokantaominaisuuksia, kuten johdonmukaisuutta, kun useita tapahtumia suoritetaan samanaikaisesti.
  • Kun datamäärä kasvaa, on vaikea ylläpitää yksilöllisiä arvoja, koska avaimet vaikeutuvat
  • Ei toimi yhtä hyvin relaatiotietojen kanssa
  • Oppimiskäyrä on jäykkä uusille kehittäjille
  • Avoimen lähdekoodin vaihtoehdot eivät ole niin suosittuja yrityksille.

Yhteenveto

  • NoSQL on ei-relaatioinen DMS, joka ei vaadi kiinteää skeemaa, välttää liitoksia ja on helppo skaalata
  • NoSQL-tietokantojen käsitteestä tuli suosittu Internet-jättiläisten, kuten Googlen, Facebookin, Amazonjne. jotka käsittelevät valtavia tietomääriä
  • Vuonna 1998 Carlo Strozzi käytti termiä NoSQL kevyestä avoimen lähdekoodin relaatiotietokannastaan.
  • NoSQL-tietokannat eivät koskaan noudata relaatiomallia, vaan ne ovat joko skeemattomia tai niissä on rento skeema
  • Neljä NoSQL-tietokannan tyyppiä on 1). Avainarvopari perustuu 2). Sarakesuuntainen kaavio 3). Kaaviot perustuvat 4). Asiakirjasuuntautunut
  • NOSQL pystyy käsittelemään strukturoitua, puolistrukturoitua ja strukturoimatonta dataa yhtä tehokkaasti
  • CAP-lause koostuu kolmesta sanasta Consistency, Availability ja Partition Tolerance
  • BASE tarkoittaa Basikaalisesti Asaatavilla, Susein tila, Evenuaalinen johdonmukaisuus
  • Termi "mahdollinen johdonmukaisuus" tarkoittaa, että tiedoista on kopioita useilla koneilla korkean käytettävyyden ja skaalautuvuuden saavuttamiseksi.
  • NoSQL tarjota rajoitettuja kyselyominaisuuksia