„NoSQL“ duomenų bazių pagrindai - ir kodėl mums jų reikia

„NoSQL“ pasaulio pradedančiųjų vadovas

Duomenų tvarkymas yra labai sunki užduotis. Sakydami organizuoti, mes iš tikrųjų skirstome daiktus pagal jų tipą ir funkciją.

Viena iš galimybių yra RDBMS yra kaip „Excel“ lapas - jūs duomenis suskirstote į lenteles. Tarp lentelių galite užmegzti ryšius.

A užklausa abejoja duomenų, kurie suteikia jums atitinkamą atsakymą mainais. Ši užklausų kalba yra SQL arba struktūrinė užklausų kalba.

Pavyzdžiui,

select * from Employee_Data;

iš lentelės Darbuotojo_duomenys parenka visus darbuotojo duomenis.

Reliacinės duomenų bazės atitinka schemą , išsamų jūsų lentelių darbo planą.

Jūs naudojate „Amazon“, „Facebook“ ir tiek daug tinklo programų. Jie išleidžia naujinimus, prideda naujų funkcijų ir net papildomų modulių. Taigi, kaip kaskart keisti schemą? Ar neužima laiko tokioms didžiulėms įmonėms skirti laiko ir darbo schemos keitimui?

Čia SQL negalėjo veikti .

RDBMS trūkumai

Reliacinės duomenų bazės nėra tokios blogos, kaip žmonės vaizduoja šiais laikais. Jas vis dar naudoja daugybė organizacijų. „NoSQL“ įvedimas į paveikslėlį yra užpildyti vietas, kuriose RDBMS nebegalima naudoti.

Aš jums parodysiu pavyzdžių, kad jūs aiškiai suprastumėte.

1. RDBMS negali apdoroti duomenų įvairovės.

Nestruktūrizuotų duomenų kiekis kasmet didėja, todėl sunku juos valdyti. RDBMS negali priversti visų tipų duomenų pagal vieningą lentelių schemą.

Duomenų silosai taip pat yra problema kūrėjams.

Pasak „Tech Target“, duomenų saugykla yra duomenų saugykla, kuri lieka kontroliuojama vieno departamento. Jis yra izoliuotas nuo likusios organizacijos.

Tai reiškia, kad kai tiems patiems duomenims yra daugiau silosų, jų turinys greičiausiai skirsis. Tai kelia painiavą, kuri saugykla atspindi naujausią versiją.

Duomenų padidėjimas nuo 2013 m. Iki 2020 m. Matomas paveikslėlyje žemiau.

2020 m. Bus sukurta apie 44 „Zeta“ baitų duomenų.

RDBMS gali būti daug sunkiau tvarkyti tokius skirtingus duomenis, kurie nėra tarpusavyje susiję.

Pavyzdys: sunku išsaugoti išsamią informaciją apie pacientą, kurio kūno būklės skiriasi. RDBMS sunku suskirstyti tokius įvairius duomenis į kategorijas.

2. Sunku keisti lenteles ir santykius.

Ryšių tarp lentelių pakeitimas arba naujos lentelės pridėjimas gali turėti įtakos esamiems santykiams. Tai reiškia, kad reikia pakeisti schemą.

Schemos pakeitimas būtų toks pats, kaip panaikinti esamą ir sukurti naują schemą.

Norint pridėti naują funkciją, reikės visų elementų, kad būtų galima palaikyti naują struktūrą. Pokyčiai neišvengiami.

Pavyzdys: kiekvienam papildomam stulpeliui reikalingos visos ankstesnės eilutės, kad būtų to stulpelio vertės. „ Cassandra“ („NoSQL“ duomenų bazėje) galite pridėti stulpelį prie konkrečių eilučių skaidinių.

3. RDBMS laikosi ACID duomenų bazės savybių.

Rūgštingos duomenų bazės savybės yra atomiškumas, nuoseklumas, izoliavimas ir patvarumas. ‌

Atomiškumas - požiūris „viskas arba nieko“. Jei kuris nors operacijos teiginys nepavyksta, visa operacija grąžinama atgal.

Nuoseklumas - operacija turi atitikti visus sistemos apibrėžtus protokolus. Pusė užbaigtų operacijų nėra.

Izoliacija - jokia operacija neturi prieigos prie jokių kitų operacijų, kurios yra tarpinės ar nebaigtos būsenos. Kiekviena operacija yra nepriklausoma.

Patvarumas - užtikrina, kad kai tik operacija bus įtraukta į duomenų bazę, ji bus išsaugota naudojant atsargines kopijas ir operacijų žurnalus.

ACID savybės nėra lanksčios.

Pavyzdžiui, RDBMS vadovaujasi normalizavimu arba vienu tiesos taško samprata. Kiekvieną atliktą pakeitimą turėtumėte užtikrinti griežtas rūgšties savybes. Taip pat taikomos subjekto vientisumo ir referencinio vientisumo taisyklės.

BŽŪP teorema

Remiantis „Wikipedia“, BŽŪP teoremoje (aludario teoremoje) teigiama, kad paskirstytoje duomenų saugykloje neįmanoma vienu metu pateikti daugiau nei dviejų iš šių trijų garantijų:

Nuoseklumas: kaip C rūgštyje.

Prieinamumas : ‌ Ištekliai turėtų būti visada prieinami. Turėtų būti atsakymas be klaidos.

Pertvarų tolerancija : nėra vieno gedimo taško (ar mazgo).

Sunku pasiekti visas tris sąlygas. Turi būti kompromisas tarp trijų.

PAGALBA gelbėti!

„NoSQL“ remiasi minkštesniu modeliu, vadinamu „BASE“ modeliu. PAGRINDAS ( B asically A laisable , S ofth state, E ventual nuoseklumas).

Iš esmės prieinama: garantuoja duomenų prieinamumą. Bus atsakymas į bet kurią užklausą (gali būti ir nesėkmė).

Minkšta būsena : laikui bėgant sistemos būsena gali pasikeisti.

Galutinis nuoseklumas: nustojus gauti įvestį, sistema galiausiai taps nuosekli.

„NoSQL“ duomenų bazės atsisako A, C ir (arba) D reikalavimų ir mainais pagerina mastelį.

„NoSQL“

Tada „NoSQL“ atėjo į pagalbą. ‌ Tai yra „ Ne tik SQL“ ar „Nesusijusios“ duomenų bazės.

„NoSQL“ charakteristikos:

  • Schema nemokama
  • Galų gale nuoseklus (kaip ir BASE nuosavybėje)
  • Duomenų saugyklų kopijavimas, siekiant išvengti vieno gedimo taško.
  • Gali tvarkyti duomenų įvairovę ir didžiulį duomenų kiekį.

NoSQL duomenų bazių tipai

„NoSQL“ duomenų bazės skirstomos į keturias pagrindines kategorijas:

Pagrindinės vertės parduotuvės - Riak, Voldemort ir Redis

Plačios kolonų parduotuvės - „ Cassandra“ ir „HBase“.

Dokumentų duomenų bazės - MongoDB

Grafikų duomenų bazės - „Neo4J“ ir „HyperGraphDB“.

Dešinėje pusėje esantys žodžiai yra NoSQL duomenų bazių tipų pavyzdžiai.

1. Pagrindinės vertės parduotuvės

Raktų vertės saugykloje naudojama maišos lentelė , kurioje yra unikalus raktas ir žymeklis į konkretų duomenų elementą.

Įsivaizduokite, kad pagrindinės vertės saugyklos yra panašios į telefono katalogą, kuriame susiejami asmens vardai ir numeriai.

Pagrindinių verčių saugyklose nėra numatytosios užklausos kalbos. Duomenis nuskaitote naudodami komandas „ gauti, įdėti“ ir „ištrinti“ . Tai yra priežastis, kodėl ji turi aukštą našumą.

Programos : naudinga saugant komentarus ir sesijos informaciją. ‌Pinterest naudoja „Redis“ naudotojų, stebėtojų, stebėtojų, lentų sąrašams saugoti.

2. Plačios kolonų parduotuvės

Stulpelių saugyklos duomenų bazėje kiekvienos eilutės stulpeliai yra toje eilutėje.

Kiekviena stulpelių šeima yra eilučių konteineris RDBMS lentelėje. Raktas identifikuoja eilutę, susidedančią iš kelis stulpelius.

Eilėse nebūtinai turi būti vienodas stulpelių skaičius. Stulpelius galima pridėti prie bet kurios eilutės bet kuriuo metu, nepridedant jos prie kitų eilučių. Tai yra padalinta eilių parduotuvė.

Kaip stulpelių duomenų bazėje saugomi duomenys?

Programos : „ Spotify“ naudoja „Cassandra“ naudotojo profilio atributams ir metaduomenims saugoti.

3. Dokumentų duomenų bazės

‌Dokumentų saugyklose duomenims saugoti naudojami JSON, XML arba BSON (JSON dvejetainis kodavimas) dokumentai.

Tai panašu į raktų vertės duomenų bazę, tačiau dokumentų saugykla susideda iš pusiau struktūruotų duomenų .

Viename dokumente saugomi įrašai ir jų duomenys.

‌Tai nepalaiko santykių ar prisijungia.

Jei norime išsaugoti kliento duomenis ir jų užsakymus, tai galime naudoti dokumentų saugyklose.

Programos: SEGAnaudoja „MongoDB“ tvarkyti 11 milijonų žaidime esančių sąskaitų, sukurtų „MongoDB“.

4. Grafikų duomenų bazės

‌Neimos ir ryšiai yra pagrindinės grafų duomenų bazių sudedamosios dalys. Mazgas reiškia subjektą. Santykiai rodo, kaip du mazgai yra susiję.

RD RDBMS pridėjus kitą ryšį, atsiranda daug schemos pakeitimų.

Grafikų duomenų bazėje duomenis reikia saugoti tik vieną kartą (mazgus). Skirtingi ryšių tipai (kraštai) nurodomi saugomiems duomenims.

Santykiai tarp mazgų yra iš anksto nustatyti, tai yra, jie nenustatomi užklausos metu.

Važiuojantiems išsilaikė santykiai yra greičiau.

Sunku pakeisti santykį tarp dviejų mazgų. Tai sukeltų regresinius duomenų bazės pokyčius.

Pavyzdys : Šis paveikslėlis veikia kaip „ MySQL“, kur ji turi atlikti daug operacijų, kad rastų teisingą „Alice“ rezultatą.

Graph duomenų , kurie lemia santykius.

Tai yra pagrindinė informacija, kurios jums reikės norint pradėti tyrinėti NoSQL. Kuriamos naujos duomenų bazės, skirtos konkretiems tikslams.

Sužinokite, kokius duomenis generuoja jūsų programa, tada lengva pasirinkti tinkamą duomenų bazę.

Rašau istorijas apie gyvenimo pamokas, kodavimą ir technologijas. Norėdami skaityti daugiau, sekite mane „Twitter“ ir „Medium“.