Si t'i shpjegoni gjyshes tuaj ndryshimin midis SQL dhe NoSQL

Si t'i shpjegoni gjyshes tuaj ndryshimin midis SQL dhe NoSQL

Një nga vendimet më të rëndësishme që merr një zhvillues është se cilën bazë të dhënash të përdorë. Për shumë vite, opsionet ishin të kufizuara në opsione të ndryshme të bazës së të dhënave relacionale që mbështetnin gjuhën e strukturuar të pyetjeve (SQL). Këto përfshijnë MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 dhe shumë të tjerë.

Gjatë 15 viteve të fundit, shumë baza të dhënash të reja No-SQL janë shfaqur në treg. Këto përfshijnë dyqane me vlerë kyçe si Redis dhe Amazon DynamoDB, baza të të dhënave të gjera kolone si Cassandra dhe HBase, dyqane dokumentesh si MongoDB dhe Couchbase, dhe baza të të dhënave grafike dhe motorë kërkimi si Elasticsearch dhe Solr.

Në këtë artikull do të përpiqemi të kuptojmë SQL dhe NoSQL pa hyrë në funksionalitetin e tyre.
Plus, ne do të kemi pak argëtim gjatë procesit.

Duke i shpjeguar SQL gjyshes

Gjyshe, imagjino që nuk jam nipi yt i vetëm. Në vend të kësaj, mami dhe babi e donin njëri-tjetrin si lepuj, patën 100 fëmijë dhe më pas adoptuan 50 të tjerë.

Pra, ju na doni të gjithëve dhe nuk doni të harroni asnjë nga emrat tanë, ditëlindjet, shijet e preferuara të akullores, madhësitë e veshjeve, hobi, emrat e bashkëshortëve, emrat e pasardhësve dhe fakte të tjera super të rëndësishme. Megjithatë, le ta pranojmë. Ju jeni 85 vjeç dhe kujtesa e vjetër nuk mund ta përballojë.

Për fat të mirë, duke qenë më i zgjuari nga nipërit tuaj, unë mund t'ju ndihmoj. Kështu që unë vij në shtëpinë tuaj, nxjerr disa fletë letre dhe ju kërkoj të piqni disa biskota përpara se të fillojmë.

Në një fletë letre ne bëjmë një listë të quajtur "nipërit dhe mbesat" Çdo nipi regjistruar me disa informacione thelbësore rreth tij, duke përfshirë një numër unik që tani do të tregojë se cilin nipi ai eshte. Gjithashtu, për hir të organizimit, ne shkruajmë atributet e emërtuara në krye të listës në mënyrë që të dimë gjithmonë se çfarë informacioni përmban lista.

id
emër
ditëlindje
vizita e fundit
madhësia e veshjes
akullorja e preferuar
i adoptuar

1
Hap me levë
09-22-1992
09-01-2019
L
Çokollatë me nenexhik
i rremë

2
Jessica
07-21-1992
02-22-2018
M
Rrugë shkëmbore
i vërtetë

...vazhdoni listën!

Lista e nipërve

Pas një kohe ju i kuptoni të gjitha dhe ne pothuajse kemi mbaruar me listën! Megjithatë, ti më kthehesh dhe më thua: “Kemi harruar të shtojmë hapësirë ​​për bashkëshortët, hobi, nipërit!” Por jo, nuk kemi harruar! Kjo vijon më tej dhe kërkon një fletë të re letre.

Kështu që unë nxjerr një copë tjetër letre dhe mbi të quajmë listën Bashkëshortët. Ne përsëri shtojmë atributet që janë të rëndësishme për ne në fillim të listës dhe fillojmë të shtojmë në rreshta.

id
nipi_id
emër
ditëlindje

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

...më shumë bashkëshortë!

Lista e bashkëshortëve

Në këtë fazë, unë i shpjegoj gjyshes sime se nëse ajo dëshiron të dijë se kush me kë është martuar, atëherë ajo vetëm duhet të krahasojë id në listë nipërit dhe mbesat с nipi_id në listën e bashkëshortëve.

Pas disa biskotave, më duhet një sy gjumë. "A mund të vazhdoni, gjyshe?" Unë po iki për të marrë një sy gjumë.

Do të kthehem pas disa orësh. Ti je e lezetshme, gjyshe! Gjithçka duket e mrekullueshme përveç listës hobi. Ka rreth 1000 hobi në listë. Shumica e tyre janë të përsëritura; Cfare ndodhi?

nipi_id
hobi

1
biking

4
biking

3
biking

7
running

11
biking

...le te vazhdojme!

Më falni, harrova plotësisht të them! Duke përdorur një listë, mund të gjurmoni vetëm hobi. Pastaj në një listë tjetër duhet të gjurmojmë nipërit dhe mbesattë cilët e bëjnë këtë hobi. Ne do ta quajmë atë "Lista e përbashkët". Duke parë që nuk ju pëlqen, filloj të shqetësohem dhe kthehem në modalitetin e listës.

id
hobi

1
biking

2
running

3
not

... më shumë hobi!

Lista e hobive

Pasi të kemi listën tonë të hobi, ne krijojmë listën tonë të dytë dhe e quajmë atë "Hobi i nipërve dhe mbesave'.

nipi_id
hobby_id

4
1

3
1

7
2

…më shumë!

Lista e përgjithshme e hobive të nipërve

Pas gjithë kësaj pune, gjyshja tani ka një sistem të mrekullueshëm memorie për të mbajtur gjurmët e familjes së saj jashtëzakonisht të madhe. Dhe pastaj - për të më mbajtur më gjatë - ajo bën pyetjen magjike: "Ku mësuat t'i bëni të gjitha këto?"

Bazat e të dhënave relacionale

Një bazë të dhënash relacionale është një grup tabelash të përshkruara zyrtarisht (në shembullin tonë këto janë fletë) nga të cilat mund të përdorni të dhëna ose mblidhni ato në mënyra të ndryshme pa pasur nevojë të riorganizoni tabelat Baza e të dhënave. Ka shumë lloje të ndryshme të bazave të të dhënave relacionale, por fatkeqësisht një listë në një copë letër nuk është një prej tyre.

Një tipar dallues i bazave të të dhënave relacionale më të njohura është gjuha e pyetjeve SQL (Structured Query Language). Falë kësaj, nëse gjyshja transferonte sistemin e saj të kujtesës në kompjuter, ajo mund të merrte shpejt një përgjigje për pyetje të tilla si: "Kush nuk më vizitoi vitin e kaluar, është i martuar dhe nuk ka hobi?"

Një nga sistemet më të njohura të menaxhimit të bazës së të dhënave SQL është MySQL me burim të hapur. Ai zbatohet kryesisht si një sistem i menaxhimit të bazës së të dhënave relacionale (RDBMS) për aplikacione softuerike të bazuara në ueb.

Disa veçori kryesore të MySQL:

  • Është mjaft i njohur, i përdorur gjerësisht dhe i testuar tërësisht.
  • Ka shumë zhvillues të kualifikuar që kanë përvojë pune me SQL dhe bazat e të dhënave relacionale.
  • Të dhënat ruhen në tabela të ndryshme, gjë që e bën të lehtë krijimin e marrëdhënieve duke përdorur çelësat kryesorë dhe të huaj (identifikuesit).
  • Është i lehtë për t'u përdorur dhe efektiv, duke e bërë atë ideal për bizneset e mëdha dhe të vogla.
  • Kodi burimor është sipas kushteve të Licencës së Përgjithshme Publike GNU.

Tani harrojeni ALL.

Duke i shpjeguar NoSQL gjyshes

Gjyshe, ne kemi një familje të madhe. Ka 150 nipër e mbesa në të! Shumë prej tyre janë të martuar, kanë fëmijë, janë të interesuar për diçka, etj. Në moshën tuaj është e pamundur të mbani mend gjithçka për të gjithë ne. Ajo që ju nevojitet është një sistem memorizimi!

Për fat të mirë, unë jo Unë dua që ju të harroni ditëlindjen time dhe shijen time të preferuar të akullores, mund t'ju ndihmoj. Kështu që vrapoj në dyqanin më të afërt, marr një fletore dhe kthehem në shtëpinë tuaj.

Hapi i parë që bëj është të shkruaj me shkronja të mëdha të trasha në kopertinën e fletores sime "Një e mbesa". Më pas kaloj në faqen e parë dhe filloj të shkruaj gjithçka që duhet të mbani mend për mua. Pas disa minutash, faqja duket diçka e tillë.

{ 
  "_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!"
}

Я: "Duket se gjithçka është gati!"
Бабушка: "Prisni, po me nipërit e tjerë?"
Я: "Po tamam. Pastaj ne ndajmë një faqe për secilën.”
Бабушка: "A do të më duhet të shkruaj të njëjtat informacione për të gjithë, siç bëra për ju?"
Я: “Jo, vetëm po të duash. Më lejoni të tregoj."
Duke marrë lapsin e gjyshes, kthej faqen dhe shkruaj shpejt informacionin për kushëririn tim më të preferuar.

{ 
  "_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"
}

Sa herë që gjyshja duhet të kujtojë diçka për një nga nipërit e saj, ajo duhet të shkojë vetëm në faqen e duhur në fletoren e nipërve të saj. Të gjitha informacionet rreth tyre do të ruhen pikërisht atje në faqen e tyre, të cilën ajo mund ta ndryshojë dhe përditësojë shpejt.

Kur gjithçka është bërë, ajo bën pyetjen magjike: "Ku mësuat t'i bëni të gjitha këto?"

Bazat e të dhënave NoSQL

Ka shumë Bazat e të dhënave NoSQL ("jo vetëm SQL"). Në shembujt tanë ne treguam bazën e të dhënave të dokumenteve. Bazat e të dhënave NoSQL modelojnë të dhënat në mënyra që eliminojnë marrëdhëniet e tabelave të përdorura në bazat e të dhënave relacionale. Këto baza të të dhënave u bënë të njohura në fillim të viteve 2000 në mesin e kompanive që kërkonin grupim të bazës së të dhënave të bazuara në cloud për shkak të kërkesave të tyre të shkallës së madhe (p.sh. Facebook). Në aplikacione të tilla, qëndrueshmëria e të dhënave ishte shumë më pak e rëndësishme sesa performanca dhe shkallëzueshmëria.

Në fillim, bazat e të dhënave NoSQL u përdorën shpesh për detyrat e menaxhimit të të dhënave të veçanta. Në thelb, kur bëhej fjalë për aplikacionet në internet dhe cloud, bazat e të dhënave NoSQL përpunuan dhe shpërndanë sasi të konsiderueshme të dhënash. Inxhinierëve të NoSQL u pëlqente gjithashtu fleksibiliteti i skemës së të dhënave (ose mungesa e saj) në mënyrë që ndryshimet e shpejta të ishin të mundshme në aplikacionet e përmirësuara.

Karakteristikat kryesore të NoSQL:

  • Një mënyrë shumë fleksibël për të ruajtur të dhënat
  • Shkallëzimi horizontal në grupime
  • Sekuenca e mundshme për qëndrueshmëri/përhapje
  • Dokumentet që identifikohen duke përdorur çelësa unikë

Krahasimi i detajuar

MySQL kërkon një skemë të përcaktuar dhe të strukturuar.
NoSQL ju lejon të ruani çdo të dhënë në një "dokument".

MySQL mbështetet nga një komunitet i madh.
NoSQL ka një komunitet të vogël dhe me rritje të shpejtë.

NoSQL është i lehtë për t'u shkallëzuar.
MySQL ka nevojë për më shumë menaxhim.

MySQL përdor SQL, i cili përdoret në shumë lloje të bazave të të dhënave.
NoSQL është një bazë të dhënash sipas dizajnit me implementime të njohura.

MySQL përdor gjuhën standarde të pyetjeve (SQL).
NoSQL nuk përdor një gjuhë standarde të pyetjeve.

MySQL ka shumë mjete të shkëlqyera raportimi.
NoSQL ka disa mjete raportimi që janë të vështira për t'u standardizuar.

MySQL mund të ketë probleme të performancës për të dhëna të mëdha.
NoSQL ofron performancë të shkëlqyer në të dhëna të mëdha.

Mendimet 8 bazë

Në kompani 8 bazë, ku unë punoj, ne fuqizojmë hapësirën e punës të secilit projekt me një bazë të dhënash relacionale Aurora MySQL të organizuar në AWS. Ndërsa NoSQL është një zgjedhje logjike kur kërkesat e aplikacionit tuaj kërkojnë performancë dhe shkallëzim të lartë, ne besojmë se qëndrueshmëria e fortë e të dhënave e ofruar nga një DBMS është thelbësore kur ndërtoni aplikacione SaaS dhe softuer të tjerë biznesi.

Për startup-et dhe zhvilluesit që ndërtojnë aplikacione biznesi që kërkojnë raportim, integritet transaksioni dhe modele të dhënash të përcaktuara mirë, investimi në bazat e të dhënave relacionale është, sipas mendimit tonë, zgjidhja e duhur.

Mësoni më shumë rreth zhvillimit me Aurora, Serverless dhe GraphQL me 8base.com këtu.

Burimi: www.habr.com

Shto një koment