Si e shpjegon nënës tënde dallimin midis SQL dhe NoSQL

Si e shpjegon nënës tënde dallimin midis SQL dhe NoSQL

Një nga vendimet më të rëndësishme që merr një zhvillues është se çfarë baze të dhënash duhet të përdorë. Për shumë vite, opsionet ishin të kufizuara në variacione të ndryshme të bazave të dhënash relacionale që mbështesin gjuhën e pyetjeve strukturore (SQL). Këtu përfshihen MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 dhe shumë të tjera.

Në 15 vitet e fundit, shumë baza të reja të dhënash janë shfaqur në treg si pjesë e qasjes No-SQL. Këtu përfshihen deposi të çelësave dhe vlerave, si Redis dhe Amazon DynamoDB, bazat e gjera kolone si Cassandra dhe HBase, depot e dokumenteve si MongoDB dhe Couchbase, si dhe bazat e të dhënave grafike dhe motorët e kërkimit si Elasticsearch dhe Solr.

Në këtë artikull do të përpiqemi të kuptojmë SQL dhe NoSQL pa hyrë në funksionalitetin e tyre.
Për më tepër, ne do të argëtohemi pak gjatë procesit.

Shpjegojmë SQL për nënën

Nënë, imagjino se unë nuk jam nipi yt i vetëm. Në vend të kësaj, nëna dhe babai kanë dashuruar njëri-tjetrin si lepuj, ata kishin 100 fëmijë, pastaj adoptuan edhe 50.

Pra, ti i do të gjithë ne dhe nuk dëshiron të harrosh asnjë nga emrat tanë, ditëlindjet, shijet e akulloreve të preferuara, përmasat e veshjeve, hobi, emrat e bashkëshortëve, emrat e pasardhësve dhe fakti të tjera të rëndësishme. Megjithatë, le të shohim të vërtetën. Je 85 vjeçare dhe kujtesa e mirë e vjetër thjesht nuk mund ta menaxhojë këtë.

Fatmirësisht, unë, duke qenë nipi më i zgjuar, mund të ndihmoj. Prandaj, unë vij në shtëpinë tënde, nxjerr disa fletë letre dhe të kërkoj që të bësh biskota para se të fillojmë.

NĂ« njĂ« fletĂ« letre, ne pĂ«rpilojmĂ« njĂ« listĂ« tĂ« quajtur "NipĂ«r". Çdo nip Ă«shtĂ« shkruar me disa informacione thelbĂ«sore rreth tij, duke pĂ«rfshirĂ« njĂ« numĂ«r unik, i cili tani do tĂ« tregojĂ« se cilin nip ai Ă«shtĂ«. PĂ«rveç kĂ«saj, pĂ«r arsye organizative, ne shkruajmĂ« atributet e emĂ«rtuara nĂ« krye tĂ« listĂ«s, nĂ« mĂ«nyrĂ« qĂ« gjithmonĂ« tĂ« dimĂ« se çfarĂ« informacioni ka kjo listĂ«.

id
emri
ditëlindja
vizita e fundit
përmasat e veshjeve
akullore e preferuar
adoptuar

1
Jimmy
09-22-1992
09-01-2019
L
Mentë e çokollatës
false

2
Jessica
07-21-1992
02-22-2018
M
Rugë Rocky
true

...vazhdojmë listën!

Lista e nipërve

Pas pak kohe, ti po bëhesh e qartë se çfarë po ndodh dhe ne jemi gati të përfundojmë listën! Megjithatë, ti kthen kokën nga unë dhe thua: "Harrova të shtoj vend për bashkëshortët, hobitë, nipërit!" Por jo, ne nuk harrojmë! Kjo vjen më pas dhe kërkon një tjetër fletë letre.

Prandaj, nxjerr një copë letër, dhe në të ne emërojmë listën Bashkëshortët. Sërish shtojmë atributet që janë të rëndësishme për ne në fillim të listës dhe fillojmë të shtojmë në rreshta.

id
grandchild_id
emri
ditëlindja

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

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

Lista e bashkëshortëve

Në këtë pikë, i shpjegoj gjyshes se nëse dëshiron të dië kush është martuar me kë, duhet vetëm të krahasojë id në listë në mbesat me grandchild_id në listën e bashkëshortëve.

Pas disa dhjetra biskotash, kam nevojë për një gjumë të vogël. "Mund të vazhdosh, gjyshe?" Unë largohem për t'u zgjuar.

Kthehem pas disa orësh. Dhe ti je fantastike, gjyshe! Të gjitha duken shkëlqyer, përveç listës hobi. Në listë rreth 1000 hobi. Shumica prej tyre përsëriten; çfarë ndodhi?

grandchild_id
hobby

1
bicikleta

4
bicikleta

3
bicikleta

7
vrapimi

11
bicikleta

...të vazhdojmë!

Më fal, krejt e harrova të them! Duke përdorur një listë, mund të gjurmojmë vetëm hobi. Pastaj në listën tjetër na duhet të ndjekim në mbesat, ata që merren me këtë hobi. Ne do ta quajmë këtë "Lista e zakonshme". Duke e parë që nuk të pëlqen, filloj të shqetësohem dhe kaloj në modalitetin e listës.

id
hobby

1
bicikleta

2
vrapimi

3
noti

...më shumë hobi!

Lista e hobive

Sa herë që kemi listën tonë të hobive, krijojmë listën tonë të dytë dhe e quajmë "Hobit e mbesave».

grandchild_id
hobby_id

4
1

3
1

7
2

...më shumë!

Lista e zakonshme e hobive të mbesave

Pas gjithĂ« kĂ«saj pune, gjyshja tani ka njĂ« sistem tĂ« mrekullueshĂ«m pĂ«r tĂ« mbajtur mend tĂ« gjithĂ« familjen e saj jashtĂ«zakonisht tĂ« madhe. Dhe pastaj — pĂ«r tĂ« mĂ« mbajtur mĂ« gjatĂ« — ajo bĂ«n pyetjen magjike: "Ku e mĂ«sove tĂ« bĂ«sh gjithĂ« kĂ«tĂ«?"

Bazat e të dhënave relacionale

Një bazë të dhënash relacional është një grup tavolinash të përshkruara formalisht (në shembullin tonë, këto janë fletët), nga të cilat mund të qasemi të dhënave apo t'i grumbullojmë ato në mënyra të ndryshme pa pasur nevojë të riorganizojmë tabelat. të bazës së të dhënaveEkzistojnë shumë tipe të ndryshme të bazave të dhënash relacional, por fatkeqësisht lista në fletë nuk është njëra prej tyre.

Karakteristika dalluese e bazave të të dhënave relacional më të njohura është gjuha e pyetjeve SQL (Gjuha e Strukturimit të Pyetjeve). Falë saj, nëse gjyshja transferon sistemin e saj të mbajtjes së mend, ajo do të jetë në gjendje të marrë përgjigje të shpejta në pyetje të tilla si: "Kush nuk më ka vizituar vitin e kaluar, është martuar dhe nuk ka hobit?"

Një prej sistemeve më të njohura për menaxhimin e bazave të dhënash SQL është MySQL me kod të hapur. Ajo implementohet kryesisht si një sistem menaxhimi të bazave të dhënash relacionale (RDBMS) për aplikacione software të bazuara në teknologjitë e web-it.

Disa karakteristika kryesore të MySQL:

  • Ajo Ă«shtĂ« mjaft e njohur, pĂ«rdoret gjerĂ«sisht dhe Ă«shtĂ« testuar nĂ« thellĂ«si.
  • EkzistojnĂ« shumĂ« zhvillues tĂ« kualifikuar, tĂ« cilĂ«t kanĂ« pĂ«rvojĂ« me SQL dhe bazat e dhĂ«nash relacionale.
  • TĂ« dhĂ«nat ruhen nĂ« tabela tĂ« ndryshme, çka lejon lidhjen e lehtĂ« duke pĂ«rdorur çelĂ«sa primarĂ« dhe tĂ« jashtmĂ«m (identifikues).
  • Ajo Ă«shtĂ« e lehtĂ« pĂ«r t'u pĂ«rdorur dhe efektive, çka e bĂ«n atĂ« ideale pĂ«r bizneset e mĂ«dha dhe tĂ« vogla.
  • Kodi burimor Ă«shtĂ« nĂ« pĂ«rputhje me LicencĂ«n Publike tĂ« pĂ«rgjithshme GNU.

Tani harro TË GJITHA.

Shpjegojmë NoSQL për gjyshen

Gjyshja, ne kemi një familje të madhe. Në të janë 150 nipër! Shumë prej tyre janë të martuar, kanë fëmijë, janë të angazhuar me aktivitete të ndryshme, etj. Në moshën tënde është e pamundur të mbash mend të gjitha për të gjithë ne. Ajo që ju nevojitet është një sistem për të mbajtur mend!

Fatmirësisht, unë, jo duke dashur që ti të harrosh ditëlindjen time dhe shijen time të preferuar të akullores, mund të ndihmojë. Prandaj, po vrapoj në dyqanin më të afërt, marr një liber shënimesh dhe kthehem në shtëpinë tënde.

Hapi i parë që bëj është të shkruaj "Nipër" me letra të mëdha ngjyrë të zezë në kopertinën e librit. Pastaj i kthehem faqes së parë dhe filloj të shkruaj gjithçka që duhet të mbash mend për mua. Pas disa minutash, faqja duket kështu.

{ 
  "_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":"Preferon tortën me akullore për ditëlindje në vend të tortës me çokollatë!"
}

UnĂ«: “Duket se gjithçka Ă«shtĂ« gati!”
Gjyshja: “Po prit, çfarĂ« do bĂ«jnĂ« nipĂ«rit e tjerĂ«?”
UnĂ«: “Po, e vĂ«rtetĂ«. AtĂ«herĂ« bĂ«jmĂ« njĂ« faqe pĂ«r secilin.”
Gjyshja: “A duhet tĂ« shkruaj tĂ« njĂ«jtĂ«n informacion pĂ«r tĂ« gjithĂ«, siç bĂ«ra pĂ«r ty?”
UnĂ«: “Jo, vetĂ«m nĂ«se do. Le tĂ« tĂ« tregoj.”
Duke e marrë stilolapsin nga gjyshja, une kthej faqen dhe shpejt shkruaj informacionin për kushëririn tim më pak të preferuar.

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Lindi në të njëjtën ditë si Cody, por nuk është aq e rëndësishme"
}

Sa çdo herë që gjyshja ka nevojë të përkujtojë diçka për një nga nipërit, ajo duhet vetëm të kalojë në faqen e duhur në librin e shënimeve të nipave. Të gjitha informacionet për ta 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 pyetje magjike: «Ku e more gjithë këtë përvojë?»

Bazat e të dhënave NoSQL

Ka shumĂ« bazat e tĂ« dhĂ«nave NoSQL (“jo vetĂ«m SQL”). NĂ« shembujt tanĂ« ne treguam njĂ« bazĂ« tĂ« tĂ« dhĂ«nave dokument. Bazat e tĂ« dhĂ«nave NoSQL modelojnĂ« tĂ« dhĂ«nat nĂ« mĂ«nyra qĂ« pĂ«rjashtojnĂ« marrĂ«dhĂ«niet tabelare qĂ« pĂ«rdoren nĂ« bazat e tĂ« dhĂ«nave relacione. KĂ«to baza tĂ« dhĂ«nash u bĂ«nĂ« tĂ« njohura nĂ« fillim tĂ« viteve 2000 nga kompanitĂ« qĂ« kĂ«rkonin grumbullimin e bazave tĂ« tĂ« dhĂ«nave nĂ« re pĂ«r shkak tĂ« kĂ«rkesave tĂ« tyre tĂ« qarta pĂ«r shkallĂ«zim (p.sh. Facebook). NĂ« kĂ«to aplikacione, qĂ«ndrueshmĂ«ria e tĂ« dhĂ«nave ishte shumĂ« mĂ« pak e rĂ«ndĂ«sishme sesa performanca dhe shkallĂ«zimi.

Në fillim, bazat e të dhënave NoSQL shpesh përdoren për detyrat specifike të menaxhimit të të dhënave. Kryesisht, kur arrihej në aplikacionet web dhe në re, bazat e të dhënave NoSQL përpunonin dhe shpërndanin sasi të mëdha të dhënash. Inxhinierët që punojnë me NoSQL gjithashtu e vlerësonin fleksibilitetin e skemës së të dhënave (ose mungesën e saj të plotë), duke e bërë të mundur ndryshime të shpejta në aplikacionet që shkarkohen.

Karakteristikat kryesore të NoSQL:

  • NjĂ« mĂ«nyrĂ« shumĂ« fleksibĂ«l pĂ«r ruajtjen e tĂ« dhĂ«nave
  • ShkallĂ«zim horizontal nĂ« klasterĂ«
  • Pasqyrimi i mundshĂ«m pĂ«r qĂ«ndrushmĂ«ri / shpĂ«rndarje
  • Dokumentet qĂ« identifikohen duke pĂ«rdorur çelĂ«sa unikĂ«

Krahasim i detajuar

MySQL kërkon një skemë të caktuar dhe të strukturuar.
NoSQL lejon ruajtjen e çdo lloj të dhënash në një «dokument».

MySQL mbështet një komunitet të madh.
NoSQL ka një komunitet të vogël dhe në rritje të shpejtë.

NoSQL dallon për thjeshtësinë e shkallëzimit.
MySQL ka nevojë për menaxhim më të madh.

MySQL përdor SQL, i cili aplikohet në shumë lloje të bazave të të dhënave.
NoSQL është një bazë e të dhënave e dizajnuar me realizime popullore.

MySQL përdor një gjuhë standarde për pyetje (SQL).
NoSQL nuk përdor një gjuhë standarde për pyetje.

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

MySQL mund të sjellë probleme me performancën për të dhëna të mëdha.
NoSQL ofron një performancë të shkëlqyer për të dhëna të mëdha.

Mendimet 8base

At the company 8base, ku punoj, ne ofrojmë një hapësirë pune për çdo projekt me një bazë të dhënash relacionale Aurora MySQL, e cila hostohet në AWS. Megjithëse NoSQL është një zgjedhje e arsyeshme kur kërkesat e aplikacionit tuaj kërkojnë performancë të lartë dhe shkallëzim, ne besojmë se konsistenca e rreptë e të dhënave e siguruar nga DBMS është thelbësore kur krijoni aplikacione SaaS dhe software të tjera për biznesin.

Për startup-et dhe zhvilluesit që krijojnë aplikacione biznesi që kërkojnë raportim, integritet transaksionesh dhe modele të dhënash të përcaktuara qartë, investimi në punën me baza të dhënash relacionale është, sipas mendimit tonë, zgjedhja e duhur.

Mësoni më shumë për zhvillimin me Aurora, Serverless dhe GraphQL në 8base.com këtu.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster