
Një nga vendimet më të rëndësishme që merr një zhvillues është se cila bazë të dhënash të përdorë. Për shumë vite, opsionet ishin të kufizuara në ndryshime të ndryshme të bazave të dhënash relacionale që mbështesnin 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ë dhënash të reja kanë dalë në treg brenda qasjes No-SQL. Këtu përfshihen depot e çelë-shtesë, si Redis dhe Amazon DynamoDB, bazat e gjera kolonare 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 u thelluar në funksionalitetin e tyre.
Për më tepër, ne do të argëtohemi pak gjatë procesit.
Shpjegojmë SQL për gjyshërin
Gjysh, imagjino se nuk jam nipi yt i vetëm. Në vend të kësaj, mamma dhe pappa e donin njëri-tjetrin si lepujt, ata kishin 100 fëmijë, pastaj adoptuan edhe 50.
Pra të rritur dhe për t'ju ndihmuar, unë e di se ti i do të gjithë ne dhe nuk dëshiron të harrosh asnjë nga emrat tanë, ditëlindjet, shijet e akullores tuaj të preferuar, masat e veshjeve, hobbynë, emrat e bashkëshortëve, emrat e fëmijëve dhe fakte të tjera super të rëndësishme. Megjithatë, le të jemi të sinqertë. Ti je 85 vjeç dhe memoria e mirë e vjetër thjesht nuk mund ta bëjë këtë.
Fatmirësisht, unë, si nipi më i zgjuar, mund të ndihmoj. Prandaj po vij në shtëpinë tënde, duke nxjerrë disa fletë papi dhe duke të kërkuar të bësh biskota para se të fillojmë.
Në një fletë, ne krijojmë një listë me titullin "Nipërit". Çdo nip është shkruar me disa informacione të rëndësishme rreth tij, duke përfshirë një numër unik, i cili tani do të tregojë se cilit nip i përket. Për më tepër, për mirëorganizim, ne shkruajmë atributet emëruar në krye të listës në mënyrë që gjithmonë të dijmë çfarë informacioni përmban kjo listë.
id
emri
ditëlindja
vizita e fundit
masa e veshjeve
akullore e preferuar
adoptuar
1
Jimmy
09-22-1992
09-01-2019
L
Mint chocolate
false
2
Jessica
07-21-1992
02-22-2018
M
Rocky road
e vërtetë
…të vazhdojmë listën!
Lista e nipërve
Pas një kohë do të kuptosh gjithçka dhe ne jemi pothuajse të përfunduar me listën! Por ti kthehesh tek unë dhe thua: «Harruam të shtojmë një vend për bashkëshortët, hobit, nipërit!» Por jo, ne nuk e harruam! Kjo vjen më vonë dhe kërkon një letër të re.
Prandaj nxjerr një letër tjetër dhe në të ne emërtojmë listën Bashkëshortët. Ne përsëri shtojmë atributet që na interesojnë në fillim të listës dhe fillojmë të shtojmë në radhë.
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 që nëse do të dijë kush është i martuar me kë, ajo thjesht duhet të përputhë id në listë nipërit me grandchild_id në listën e bashkëshortëve.
Pas disa dhjetëra biskotash, duhet të flë. «Mund të vazhdosh, gjyshe?» Unë largohem për të fjetur pak.
Kthehem pas disa orësh. O ti je e shkëlqyer, gjyshe! Gjithçka duket shkëlqyer, përveç listës hobi. Në listë ka rreth 1000 hobi. Shumica e tyre përsëriten; çfarë ndodhi?
grandchild_id
hobby
1
biking
4
biking
3
biking
7
running
11
biking
…vazhdon!
Më fal, e kisha harruar të thosha! Duke përdorur një listë, mund të gjurmojmë vetëm hobi. Pastaj në një listë tjetër na nevojitet të gjurmojmë nipërit, ata që merren me këtë hobi. Ne do të quajmë këtë «Lista e përgjithshme». Duke parë se nuk të pëlqen, filloj të mendoj dhe kthehem në modin e listës.
id
hobby
1
biking
2
running
3
noter
…më shumë hobie!
Lista e hobive
Sa herë që kemi listën tonë të hobive, krijojmë listën tonë të dytë dhe e quajmë «Interesat e nipave».
grandchild_id
hobby_id
4
1
3
1
7
2
…më shumë!
Lista e përgjithshme e hobive të nipave
Pas gjithë kësaj pune, gjyshja tani ka një sistem të shkëlqyer për të mbajtur mend gjithë familjen e saj jashtëzakonisht të madhe. Pastaj — për të më mbajtur për më gjatë — ajo bën pyetjen magjike: «Ku e mësove të gjitha këto?»
Baza të dhënash relacionale
Një bazë të dhënash relacionale është një grup tabelash të përshkruara formalisht (në shembullin tonë këto janë fletët), nga të cilat mund të aksesosh të dhënave ose t'i mbledhësh ato në mënyra të ndryshme pa pasur nevojë të riorganizosh tabelat e bazës së të dhënave. Ekzistojnë shumë lloje të ndryshme të bazave të dhënash relationale, por fatkeqësisht lista në një fletë letre nuk është njëra prej tyre.
Karakteristika kryesore e sistemeve më të njohura të bazave të të dhënave relacionale është gjuha e pyetjeve SQL (Structured Query Language). Me ndihmën e saj, nëse gjyshja do ta transferonte sistemin e saj të memorizimit në kompjuter, ajo do të ishte në gjendje të merrte shpejt përgjigje për pyetje si: “Kush nuk më ka vizituar vitin e kaluar, është i martuar dhe nuk ka asnjë hobi?”
Një nga sistemet më të njohura të menaxhimit të bazave të të dhënave SQL është MySQL me burim të hapur. Ajo është zbatuar kryesisht si një sistem menaxhimi i bazave të të dhënave relacionale (RDBMS) për aplikacione softuerike të bazuara në teknologjitë e uebit.
Disa veçori kyçe të MySQL:
- Ajo është e njohur, përdoret gjerësisht dhe është testuar me kujdes.
- Ka shumë zhvillues të kualifikuar që kanë përvojë me SQL dhe bazat e të dhënave relacionale.
- Të dhënat ruhen në tabela të ndryshme, gjë që lejon lidhjen e lehtë duke përdorur çelësa primarë dhe të jashtëm (identifikues).
- Ajo është e thjeshtë 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 GNU General Public License.
Tani harroni TË GJITHA.
Shpjegojmë gjyshes NoSQL
Gjyshja, ne kemi një familje të madhe. Ajo ka 150 nipër! Shumë nga ta janë të martuar, kanë fëmijë, shqetësohen për diçka dhe kështu me radhë. Në moshën tënde është e pamundur të mbash mend gjithçka për të gjithë ne. Ajo që të nevojitet është një sistem mbajtjeje mendjesh!
Fatmirësisht, unë, nuk duke dashur që ti të harrosh ditëlindjen time dhe shijen e preferuar të akulloreve, mund të ndihmoj. Prandaj po shkoj në dyqan më të afërt, po marr një fletore dhe po kthehem te ti në shtëpi.
Hapi i parë që bëj, është të shkruaj "Nipë" me shkronja të mëdha dhe të trasha në ballinën e fletores. Pastaj kthehem në faqen e parë dhe filloj të shkruaj gjithçka që ti 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":[
"lojra kompjuterike",
"kompjuterë",
"gatim"
],
"spouse":null,
"kids":[
],
"favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
"misc_notes":"Preferon tortën e akullorës në ditëlindje në vend të tortës me çokollatë!"
} Unë: “Duket se gjithçka është gati!”
Gjyshja: “Prit, çfarë do bëjmë për nipërit e tjerë?”
Unë: “Po, saktësisht. Atëherë do të ndalojmë një faqe për çdo njëri.”
Gjyshja: “A do të duhet të regjistroj të njëjtat informacione për të gjithë, sikurse bëra për ty?”
Unë: “Jo, vetëm nëse dëshiron. Le të të tregoj.”
Pas marrjes së stilolapsit nga gjyshja, përshpejtoj faqet dhe shënoj shpejt informacionin për kushëririn tim më të pakëndshëm.
{
"_id":"dh97dhs9b39397ss001",
"name":"Tanner",
"birthday":"09-12-2008",
"clothing_size":"S",
"friend_count":0,
"favorite_picture":null,
"remember":"Lindur në të njëjtën ditë si Cody, por jo aq i rëndësishëm"
}Çdo herë që gjyshja ka nevojë të kujtojë diçka për një nga nipërit, ajo thjesht duhet të kalojë në faqen përkatëse në ditarin e nipërve. Të gjitha informacionet për ta do të ruhen aty, në faqen e tyre, që ajo mund ta ndryshojë dhe përditësojë shpejt.
Kur gjithçka është bërë, ajo bën pyetjen magjike: «Ku e mësove të bësh të gjitha këto?»
Baza të dhënash NoSQL
Ekzistojnë shumë baza të dhënash NoSQL (“jo vetëm SQL”). Në shembujt tanë treguam një bazë të dhënash dokumentesh. Baza të dhënash NoSQL modelojnë të dhënat në mënyra që përjashtojnë marrëdhëniet tabelore që përdoren në bazat e të dhënave relationale. Këto baza të dhënash u bënë të njohura në fillim të viteve 2000 mes kompanive që kërkuan grumbullim cloud të bazave të të dhënave për shkak të kërkesave të tyre të dukshme për shkallëzim (p.sh., Facebook). Në këto aplikacione, konsistenca e të dhënave ishte shumë më pak e rëndësishme se sa performanca dhe shkallëzimi.
Në fillim, bazat e të dhënave NoSQL shpesh përdoren për detyra niçe menaxhimi të të dhënave. Kryesisht, kur bëhej fjalë për aplikacione web dhe cloud, bazat e të dhënave NoSQL përpunonin dhe shpërndanin sasi të mëdha të të dhënave. Inxhinierëve që punonin me NoSQL gjithashtu u pëlqeu skema e fleksibël e të dhënave (ose mungesa e saj tërësore), kështu që ishin të mundshme ndryshime të shpejta në aplikacionet që përditësoheshin.
Karakteristikat kryesore të NoSQL:
- Një mënyrë shumë fleksibël për të ruajtur të dhënat
- Shkallëzim horizontal në grumbuj
- Konsistencë të mundshme në qëndrueshmëri/shpërndarje
- Dokumente që identifikohen me çelësa unikë
Krahasim i detajuar
MySQL kërkon një skemë të caktuar dhe të strukturuar.
NoSQL lejon ruajtjen e çdo tipi 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 shquhet për thjeshtësinë e shkallëzimit.
MySQL kërkon menaxhueshmëri më të madhe.
MySQL përdor SQL, i cili aplikohet në lloje të shumta bazash të dhënash.
NoSQL është një bazë e dhënash me dizajn me realizime të njohura.
MySQL përdor një gjuhë standarde të kërkesave (SQL).
NoSQL nuk përdor një gjuhë standarde të kërkesave.
MySQL ka shumë mjete të shkëlqyera për raportim.
NoSQL ka disa mjete raportimi që janë të vështira për t'u standartizuar.
MySQL mund të japë 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.
Mendime 8base
Në kompani , në të cilin unë punoj, ne ofrojmë një hapësirë pune për çdo projekt me një bazë të dhënash relacional Aurora MySQL që hostohet në AWS. Ndërsa NoSQL është një zgjedhje logjike kur kërkesat e aplikacionit tuaj kërkojnë performancë të lartë dhe shkallëzim, ne besojmë se kjo qëndrueshmëri e fortë e të dhënave që sigurohet nga DBMS është e nevojshme kur krijoni aplikacione SaaS dhe programet e tjera për biznes.
Për startup-et dhe zhvilluesit që krijojnë aplikacione të tilla biznesi që kanë nevojë për raportim, integritet transaksionesh dhe modele të dhënash të definuara qartë, investimi në punën me bazat e dhënash relacional është, sipas mendimit tonë, zgjedhja e duhur.
Mësoni më shumë rreth zhvillimit me Aurora, Serverless dhe GraphQL përmes 8base.com .
Burimi: habr.com
