Kaip paaiškinti savo močiutei, kuo skiriasi SQL ir NoSQL

Kaip paaiškinti savo močiutei, kuo skiriasi SQL ir NoSQL

Vienas iš svarbiausių kūrėjo sprendimų – kurią duomenų bazę naudoti. Daugelį metų parinktys buvo apribotos įvairiomis reliacinės duomenų bazės parinktimis, palaikančiomis struktūrinę užklausų kalbą (SQL). Tai apima MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 ir daugelį kitų.

Per pastaruosius 15 metų į rinką pateko daug naujų duomenų bazių pagal No-SQL metodą. Tai apima raktų verčių parduotuves, pvz., „Redis“ ir „Amazon DynamoDB“, plačias stulpelių duomenų bazes, tokias kaip „Cassandra“ ir „HBase“, dokumentų saugyklas, tokias kaip „MongoDB“ ir „Couchbase“, ir grafikų duomenų bazes bei paieškos variklius, tokius kaip „Elasticsearch“ ir „Solr“.

Šiame straipsnyje mes stengsimės suprasti SQL ir NoSQL, nesigilindami į jų funkcijas.
Be to, pakeliui smagiai praleisime laiką.

SQL paaiškinimas močiutei

Močiute, įsivaizduok, kad aš ne vienintelis tavo anūkas. Vietoj to, mama ir tėtis mylėjo vienas kitą kaip triušiai, jie turėjo 100 vaikų, tada jie įsivaikino dar 50.

Taigi, mylite mus visus ir nenorite pamiršti nė vieno mūsų vardo, gimtadienio, mėgstamų ledų skonių, drabužių dydžių, pomėgių, sutuoktinių vardų, palikuonių vardų ir kitų itin svarbių faktų. Tačiau pripažinkime tai. Tau 85 metai, o sena gera atmintis tiesiog negali to susitvarkyti.

Laimei, būdamas protingiausias iš tavo anūkų, galiu padėti. Taigi aš ateinu į jūsų namus, ištraukiu keletą popieriaus lapų ir prašau jūsų iškepti keletą sausainių prieš pradedant.

Viename popieriaus lape sudarome sąrašą pavadinimu "Vaikaičiai“. kas anūkas įrašytas su svarbia informacija apie jį, įskaitant unikalų numerį, kuris dabar nurodys, kaip tai padaryti anūkas jis yra. Taip pat organizavimo sumetimais sąrašo viršuje išrašome įvardytus atributus, kad visada žinotume, kokia informacija yra sąraše.

id
pavadinimas
gimimo diena
paskutinis apsilankymas
drabužių dydis
mėgstamiausi ledai
priėmė

1
laužtuvėlis
09-22-1992
09-01-2019
L
Mėtų šokoladas
klaidingas

2
JESSICA
07-21-1992
02-22-2018
M
akmenuotas kelias
tiesa

... tęsiame sąrašą!

Anūkų sąrašas

Po kurio laiko jūs viską suprantate ir mes beveik baigiame sąrašą! Tačiau jūs kreipiatės į mane ir sakote: „Pamiršome skirti vietos sutuoktiniams, pomėgiams, anūkams! Bet ne, mes nepamiršome! Tai daroma toliau ir reikia naujo popieriaus lapo.

Taigi išsitraukiu kitą popieriaus lapą ir ant jo vadiname sąrašą Sutuoktiniai. Mums svarbius atributus vėl įtraukiame į sąrašo viršų ir pradedame pildyti eilėmis.

id
anūko_id
pavadinimas
gimimo diena

1
2
Jonas
06-01-1988

2
9
Fernanda
03-05-1985

...daugiau sutuoktinių!

Sutuoktinių sąrašas

Šiame etape aš paaiškinu savo močiutei, kad jei ji nori žinoti, kas yra ištekėjusi, jai tereikia sutapti id sąraše anūkai с anūko_id sutuoktinių sąraše.

Po poros dešimčių sausainių man reikia nusnūsti. – Ar gali tęsti, močiute? Išeinu nusnūsti.

Grįšiu po kelių valandų. Tu šauni, močiute! Viskas atrodo puikiai, išskyrus sąrašą hobis. Sąraše yra apie 1000 pomėgių. Dauguma jų pasikartoja; Kas nutiko?

anūko_id
hobis

1
dviračiais

4
dviračiais

3
dviračiais

7
veikia

11
dviračiais

... tęsiame!

Atsiprašau, aš visiškai pamiršau pasakyti! Naudodami vieną sąrašą galite sekti tik hobis. Tada kitame sąraše turime atsekti anūkaikurie tai daro hobis. Mes tai paskambinsime „Bendras sąrašas“. Pamatęs, kad tau nepatinka, sunerimau ir grįžtu į sąrašo režimą.

id
hobis

1
dviračiais

2
veikia

3
plaukiojimas

...daugiau pomėgių!

Pomėgių sąrašas

Kai turime savo pomėgių sąrašą, sukuriame antrąjį sąrašą ir vadiname jį "Anūkų pomėgiai".

anūko_id
hobis_id

4
1

3
1

7
2

...daugiau!

Bendras anūkų pomėgių sąrašas

Po viso šio darbo močiutė dabar turi puikią atminties sistemą, leidžiančią sekti visą savo nuostabiai didelę šeimą. Ir tada – norėdama mane ilgiau išlaikyti – ji užduoda magišką klausimą: „Kur tu visa tai išmokai daryti?

Reliacinės duomenų bazės

Reliacinė duomenų bazė yra formaliai aprašytų lentelių rinkinys (mūsų pavyzdyje tai yra lapai), iš kurių galite pasiekti Pagal arba rinkti juos įvairiais būdais, nereikalaujant pertvarkyti lentelių Duomenų bazė. Yra daug skirtingų reliacinių duomenų bazių tipų, bet, deja, sąrašas ant popieriaus lapo nėra vienas iš jų.

Populiariausių reliacinių duomenų bazių bruožas yra SQL (Structured Query Language) užklausų kalba. Jo dėka močiutė, perkėlusi atminties sistemą į kompiuterį, gali greitai gauti atsakymus į tokius klausimus: „Kas pernai manęs neaplankė, yra vedęs ir neturi pomėgių?

Viena iš populiariausių SQL duomenų bazių valdymo sistemų yra atvirojo kodo MySQL. Ji pirmiausia įdiegta kaip reliacinė duomenų bazių valdymo sistema (RDBMS), skirta žiniatinklio programinės įrangos programoms.

Kai kurios pagrindinės MySQL funkcijos:

  • Jis yra gana gerai žinomas, plačiai naudojamas ir plačiai išbandytas.
  • Yra daug kvalifikuotų kūrėjų, turinčių patirties dirbant su SQL ir reliacinėmis duomenų bazėmis.
  • Duomenys saugomi įvairiose lentelėse, todėl nesunku užmegzti ryšius naudojant pirminius ir pašalinius raktus (identifikatorius).
  • Jį lengva naudoti ir jis efektyvus, todėl puikiai tinka didelėms ir mažoms įmonėms.
  • Šaltinio kodas yra pagal GNU bendrosios viešosios licencijos sąlygas.

Dabar pamiršk VISI.

NoSQL paaiškinimas močiutei

Močiute, mes turime didelę šeimą. Ji turi 150 anūkų! Daugelis iš jų yra vedę, turi vaikų, ką nors mėgsta ir pan. Jūsų amžiuje neįmanoma prisiminti visko apie mus visus. Jums reikia atminties sistemos!

Laimei, I ne Noriu, kad pamirštum mano gimtadienį ir mėgstamiausio skonio ledus, galiu padėti. Taigi bėgu į artimiausią parduotuvę, pasiimu sąsiuvinį ir grįžtu į tavo namus.

Pirmas žingsnis – ant sąsiuvinio viršelio didelėmis paryškintomis raidėmis užrašysiu „Anūkai“. Tada užverčiu pirmą puslapį ir pradedu rašyti viską, ką reikia prisiminti apie mane. Po kelių minučių puslapis atrodo maždaug taip.

{ 
  "_id":"dkdigiye82gd87gd99dg87gd",
  "name":"Cody",
  "birthday":"09-12-2006",
  "last_visit":"09-02-2019",
  "clothing_size":"XL",
  "favorite_ice_cream":"Fudge caramel",
  "adopted":false,
  "hobbies":[ 
     "video games",
     "computers",
     "cooking"
  ],
  "spouse":null,
  "kids":[ 

  ],
  "favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
  "misc_notes":"Prefers ice-cream cake on birthday instead of chocolate cake!"
}

Я: "Atrodo, viskas paruošta!"
Бабушка: „Palauk, o kaip su kitais anūkais?
Я: "Taip tiksliai. Tada kiekvienam skirkite po vieną puslapį.
Бабушка: „Ar man reikės visiems užrašyti tą pačią informaciją, kaip ir tau?
Я: „Ne, tik jei nori. Leisk man parodyti."
Paėmusi močiutės rašiklį, perverčiu puslapį ir greitai užsirašau informaciją apie savo nemėgstamiausią pusbrolį.

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Born on same day as Cody but not as important"
}

Kai močiutei reikia ką nors prisiminti apie vieną iš savo anūkų, jai tereikia nueiti į reikiamą anūkų sąsiuvinio puslapį. Visa informacija apie juos bus saugoma čia pat jų puslapyje, kurį ji gali greitai pakeisti ir atnaujinti.

Kai viskas bus padaryta, ji užduoda magišką klausimą: „Kur tu visa tai išmokai daryti?

NoSQL duomenų bazės

Yra daug NoSQL duomenų bazės („ne tik SQL“). Savo pavyzdžiuose mes parodėme dokumentų duomenų bazė. NoSQL duomenų bazės modeliuoja duomenis taip, kad neįtrauktų lentelių ryšių, naudojamų reliacinėse duomenų bazėse. Šios duomenų bazės išpopuliarėjo 2000-ųjų pradžioje tarp įmonių, kurioms reikėjo debesies pagrindu veikiančių duomenų bazių grupavimo dėl aiškių mastelio keitimo reikalavimų (pvz., „Facebook“). Tokiose programose duomenų nuoseklumas buvo daug mažiau svarbus nei našumas ir mastelio keitimas.

Pradžioje NoSQL duomenų bazės dažnai buvo naudojamos nišinėms duomenų valdymo užduotims atlikti. Iš esmės, kalbant apie žiniatinklio ir debesies programas, NoSQL duomenų bazės apdorodavo ir paskirstydavo didelius duomenų kiekius. NoSQL inžinieriams taip pat patiko lanksti duomenų schema (arba jos nebuvimas), todėl buvo galima greitai pakeisti atnaujintas programas.

Pagrindinės NoSQL savybės:

  • Labai lankstus duomenų saugojimo būdas
  • Horizontalus mastelio keitimas į grupes
  • Galima seka pagal patvarumą / sklaidą
  • Dokumentai, identifikuojami naudojant unikalius raktus

Išsamus palyginimas

MySQL reikalinga apibrėžta ir struktūrizuota schema.
„NoSQL“ leidžia saugoti bet kokius duomenis „dokumente“.

„MySQL“ turi didžiulę bendruomenę.
NoSQL turi mažą ir sparčiai augančią bendruomenę.

„NoSQL“ lengva keisti.
MySQL reikia daugiau valdymo.

MySQL naudoja SQL, kuris naudojamas daugelio tipų duomenų bazėse.
NoSQL yra duomenų bazės dizainas su populiariais diegimais.

MySQL naudoja standartinę užklausų kalbą (SQL).
NoSQL nenaudoja standartinės užklausos kalbos.

„MySQL“ turi daug puikių ataskaitų teikimo įrankių.
„NoSQL“ turi keletą ataskaitų teikimo įrankių, kuriuos sunku standartizuoti.

„MySQL“ gali parodyti didelių duomenų našumo problemas.
„NoSQL“ užtikrina puikų didelių duomenų našumą.

Mintys 8base

Įmonė 8 bazėkur aš dirbu, kiekvienam projektui suteikiame darbo vietą su Aurora MySQL reliacine duomenų baze, esančia AWS. Nors NoSQL yra logiškas pasirinkimas, kai jūsų programai reikalingas didelis našumas ir mastelio keitimas, manome, kad kuriant SaaS programas ir kitą verslo programinę įrangą, DBVS užtikrinamas tvirtas duomenų nuoseklumas yra būtinas.

Pradedantiesiems ir kūrėjams, kuriantiems verslo programas, kurioms reikia ataskaitų teikimo, operacijų vientisumo ir gerai apibrėžtų duomenų modelių, investuoti į reliacines duomenų bazes, mūsų nuomone, yra teisingas pasirinkimas.

Sužinokite daugiau apie kūrimą naudojant Aurora, Serverless ir GraphQL adresu 8base.com čia.

Šaltinis: www.habr.com

Добавить комментарий