NoSQL-tietokantojen perusteet - ja miksi niitä tarvitaan

Aloittelijan opas NoSQL-maailmaan

Tietojen järjestäminen on erittäin vaikea tehtävä. Kun sanomme järjestää, luokittelemme itse asiassa tavaraa sen tyypin ja toiminnan mukaan.

Yksi vaihtoehto on, että RDBMS on kuin Excel-taulukko - tiedot luokitellaan taulukoiden muodossa. Voit muodostaa suhteita taulukkojen välille.

Kysely kysymykset tietokannasta, joka antaa sinulle sopiva vaihtoehto vastineeksi. Tämä kyselykieli on SQL tai strukturoitu kyselykieli.

Esimerkiksi,

select * from Employee_Data;

valitsee kaikki työntekijätiedot työntekijän_tiedot -taulukosta.

Relaatiotietokannat noudattavat kaavaa , yksityiskohtaista suunnitelmaa taulukoiden toiminnasta.

Käytät Amazonia, Facebookia ja niin monia verkkosovelluksia. Ne julkaisevat päivityksiä, lisäävät uusia toimintoja ja jopa ylimääräisiä moduuleja. Joten miten kaavaa muutetaan joka kerta? Eikö ole niin aikaa vievää, että niin valtavat yritykset käyttävät aikaa ja työvoimaa järjestelmän muuttamiseen?

Tässä SQL ei voinut toimia .

RDBMS: n haitat

Suhteelliset tietokannat eivät ole niin huonoja kuin ihmiset kuvaavat nykyään. Ne ovat edelleen käytössä useissa organisaatioissa. NoSQL: n käyttöönotto kuvaan on täyttää tilat, joissa RDBMS ei voi olla enää hyödyllinen.

Näytän sinulle esimerkkejä, jotta sinulla on selkeä käsitys.

1. RDBMS ei pysty käsittelemään 'tietolajiketta'.

Strukturoimattomien tietojen määrä kasvaa edelleen vuosittain, ja sen hallinta on vaikeaa. RDBMS ei voi pakottaa kaiken tyyppisiä tietoja yhtenäisen taulukokaavion alle.

Data-siilot ovat myös ongelma kehittäjille.

Tech Targetin mukaan datasäilö on tietovarasto, joka pysyy yhden osaston hallinnassa. Se on eristetty muusta organisaatiosta.

Tämä tarkoittaa, että kun samalle tiedolle on enemmän siiloja, niiden sisältö todennäköisesti eroaa. Se aiheuttaa sekaannusta siitä, mikä arkisto edustaa ajantasaisinta versiota.

Tietojen kasvu vuodesta 2013 vuoteen 2020 näkyy alla olevassa kuvassa.

Noin 44 Zeta-tavua tietoja syntyy vuonna 2020.

Tällaisten monimuotoisten tietojen, jotka eivät liity toisiinsa, käsittely voi olla paljon vaikeampi RDBMS: ssä.

Esimerkki: On vaikea tallentaa yksityiskohtia potilaasta, jolla on erilaiset ruumiinsairaudet. Tällaisen monimuotoisen tiedon luokittelu on vaikeaa RDBMS: ssä.

2. Taulukoiden ja suhteiden vaihtaminen on vaikeaa.

Taulukoiden välisten suhteiden muuttaminen tai uuden taulukon lisääminen voi vaikuttaa olemassa oleviin suhteisiin. Tämä tarkoittaa skeeman muuttamista.

Kaavion muuttaminen merkitsisi nykyisen poistamista ja uuden skeeman suunnittelua.

Uuden toiminnallisuuden lisääminen tarvitsisi kaikki elementit uuden rakenteen tukemiseksi. Muutos on väistämätöntä.

Esimerkki: Jokaisessa ylimääräisessä sarakkeessa on oltava kaikki edelliset rivit, jotta sillä olisi arvot sarakkeelle. Taas Cassandra (a NoSQL tietokanta), voit lisätä sarakkeen tiettyihin rivin osioita.

3. RDBMS seuraa tietokannan ACID-ominaisuuksia.

Tietokannan ACID-ominaisuudet ovat atomisuus, johdonmukaisuus, eristäminen ja kestävyys. ‌

Atomisuus - lähestymistapa "kaikki tai ei mitään". Jos jokin tapahtuman lause epäonnistuu, koko tapahtuma palautetaan.

Johdonmukaisuus - Tapahtuman on täytettävä kaikki järjestelmän määrittelemät protokollat. Ei puolittuneita tapahtumia.

Eristäminen - Mikään tapahtuma ei pääse mihinkään muuhun tapahtumaan, joka on välitilassa tai keskeneräisessä tilassa. Jokainen tapahtuma on riippumaton.

Kestävyys - varmistaa, että kun tapahtuma sitoutuu tietokantaan, se säilytetään varmuuskopioiden ja tapahtumalokien avulla.

ACID-ominaisuudet eivät ole joustavia.

Esimerkiksi RDBMS noudattaa normalisointia tai yhtä totuuskäsitettä . Jokaisen tekemäsi muutoksen yhteydessä on varmistettava tiukat ACID-ominaisuudet. Myös kokonaisuuden eheys- ja viite-eheyssäännöt ovat voimassa.

YMP-lause

Wikipedian mukaan CAP-lauseessa (Brewerin lause) todetaan, että hajautetun tietovaraston on mahdotonta antaa samanaikaisesti enemmän kuin kahta seuraavista kolmesta takuusta:

Johdonmukaisuus: Kuten C happamassa.

Saatavuus : ‌Lähteiden tulisi olla aina saatavilla. Vastaus ei saisi olla virheellinen.

Osiotoleranssi : Ei yksittäistä vikapistettä (tai solmua).

Kaikkia kolmea ehtoa on vaikea saavuttaa. Kolmen välillä on tehtävä kompromisseja.

BASE pelastukseen!

‌NoSQL perustuu pehmeämpään malliin, joka tunnetaan nimellä BASE-malli. BASE ( B asically Käytettävissä oleva, S usein tila, E ventual johdonmukaisuus).

Pohjimmiltaan saatavana: takaa tietojen saatavuuden. Pyyntöön vastataan (voi olla myös epäonnistuminen).

Pehmeä tila : Järjestelmän tila voi muuttua ajan myötä.

Lopullinen yhdenmukaisuus: Järjestelmä muuttuu lopulta yhtenäiseksi, kun se lopettaa tulojen vastaanottamisen.

NoSQL-tietokannat luopuvat A-, C- ja / tai D-vaatimuksista ja vastineeksi parantavat skaalautuvuutta.

NoSQL

Tällöin NoSQL tuli apuun. ‌ Se on " Ei vain SQL" tai "Ei-relaatio" -tietokanta.

NoSQL: n ominaisuudet:

  • Skeematon
  • Lopulta yhdenmukainen (kuten BASE-ominaisuudessa)
  • Tietovarastojen replikointi yhden vikaantumisen välttämiseksi.
  • Pystyy käsittelemään tietojen vaihtelua ja valtavia määriä tietoja.

NoSQL-tietokantojen tyypit

NoSQL-tietokannat jaetaan neljään pääluokkaan:

Tärkeimmät arvokaupat - Riak, Voldemort ja Redis

Laaja sarakekauppa - Cassandra ja HBase.

Asiakirjatietokannat - MongoDB

Kuvaajatietokannat - Neo4J ja HyperGraphDB.

Oikeanpuoleiset sanat ovat esimerkkejä NoSQL-tietokantatyypeistä.

1. Avainarvokaupat

Avainarvosäilö käyttää hash-taulukkoa , jossa on yksilöllinen avain ja osoitin tietylle tietokohteelle.

Kuvittele, että avainarvomyynnit ovat kuin puhelinluettelo, jossa yksilön nimet ja heidän numeronsa kartoitetaan yhteen.

Avainarvomyymälöillä ei ole oletuskyselykieltä. Haet tietoja käyttämällä get, put ja delete -komentoja. Tästä syystä sillä on korkea suorituskyky.

Sovellukset : Hyödyllinen kommenttien ja istuntotietojen tallentamiseen. ‌Pinterest käyttää Redistä tallentaakseen luetteloita käyttäjistä, seuraajista, seuraamattomista, taulukoista.

2. Laaja sarakevarasto

Sarakemyymälätietokannassa kunkin rivin sarakkeet sisältyvät kyseiseen riviin.

Jokainen sarakeperhe on rivi RDBMS-taulukossa. Avain identifioi rivin, joka koostuu useita sarakkeita.

Riveillä ei tarvitse olla yhtä monta saraketta. Sarakkeita voidaan lisätä mihin tahansa riviin milloin tahansa lisäämättä sitä muihin riveihin. Se on osioitu rivikauppa.

Kuinka saraketietokanta tallentaa tietoja?

Sovellukset : Spotify käyttää Cassandraa käyttäjäprofiilien määritteiden ja metatietojen tallentamiseen.

3. Asiakirjatietokannat

‌Dokumenttivarastot käyttävät JSON-, XML- tai BSON-asiakirjoja (JSON-koodaus).

Se on kuin avainarvotietokanta, mutta asiakirjavarasto koostuu osittain strukturoidusta datasta .

Ainoa asiakirja on tallentaa tietueet ja niiden tiedot.

‌Se ei tue suhteita tai liittymisiä.

Jos haluamme tallentaa asiakastiedot ja heidän tilauksensa, voimme tehdä sen asiakirjakaupoissa.

Sovellukset: SEGAkäyttää MongoDB: tä 11 miljoonan MongoDB: lle rakennetun pelin sisäisen tilin käsittelemiseen.

4. Kuvaa tietokantoja

‌Nodit ja suhteet ovat olennaisia ​​osia graafitietokannoissa. Solmu edustaa kokonaisuutena. Suhde edustaa sitä, kuinka kaksi solmua on liitetty.

RD RDBMS: ssä toisen relaation lisääminen johtaa paljon kaavamuutoksiin.

Kuvaajatietokanta vaatii tietojen tallentamisen vain kerran (solmut). Eri tyyppiset suhteet (reunat) määritetään tallennetuille tiedoille.

Solmujen väliset suhteet ovat ennalta määriteltyjä, toisin sanoen sitä ei määritetä kyselyn aikana.

Pysyvien suhteiden kulkeminen on nopeampaa.

Kahden solmun välistä suhdetta on vaikea muuttaa. Se johtaisi regressiivisiin muutoksiin tietokannassa.

Esimerkki : Tämä kuva toimii MySQL: nä, jossa sen on suoritettava monia toimintoja löytääksesi oikean tuloksen Alicelle.

Graafinen tietokanta , joka määrittää ennalta suhteita.

Nämä ovat joitain perustietoja, joita tarvitset aloittaaksesi NoSQL: n tutkimisen. Uusia tietokantoja kehitetään erityiskäyttöön.

Opi sovelluksesi tuottaman datan tyyppi, ja sitten on helppo valita oikea tietokanta.

Kirjoitan tarinoita elämänopetuksista, koodauksesta ja tekniikasta. Jos haluat lukea lisää, seuraa minua Twitterissä ja Mediumissa.