Kif tispjega lin-nanna tiegħek id-differenza bejn SQL u NoSQL

Kif tispjega lin-nanna tiegħek id-differenza bejn SQL u NoSQL

Waħda mill-aktar deċiżjonijiet importanti li jagħmel żviluppatur hija liema database tuża. Għal ħafna snin, l-għażliet kienu limitati għad-diversi għażliet tad-database relazzjonali li appoġġaw il-Lingwa ta' Mistoqsija Strutturata (SQL). Dawn jinkludu MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 u ħafna aktar.

Matul l-aħħar 15-il sena, ħafna databases ġodda daħlu fis-suq taħt l-approċċ No-SQL. Dawn jinkludu ħwienet ta 'valur ewlieni bħal Redis u Amazon DynamoDB, databases ta' kolonni wesgħin bħal Cassandra u HBase, ħwienet tad-dokumenti bħal MongoDB u Couchbase, u databases tal-grafiċi u magni tat-tiftix bħal Elasticsearch u Solr.

F'dan l-artikolu, se nippruvaw nifhmu SQL u NoSQL mingħajr ma nidħlu fil-funzjonalità tagħhom.
Barra minn hekk, ser nieħdu pjaċir tul it-triq.

Tispjega SQL lil Granny

Nanna, immaġina li jien mhux l-uniku neputi tiegħek. Minflok, l-omm u l-papà kienu jħobbu lil xulxin bħal fniek, kellhom 100 tifel, imbagħad adottaw 50 oħra.

Allura, inti tħobb lilna lkoll u ma tridx tinsa xi ismijiet tagħna, għeluq is-snin, togħmiet favoriti tal-ġelat, daqsijiet tal-ħwejjeġ, passatempi, ismijiet tal-konjuġi, ismijiet tal-frieħ u fatti super importanti oħra. Madankollu, ejja jiffaċċjaw dan. Int 85 sena u memorja qadima tajba sempliċement ma tistax tieħu ħsiebha.

Fortunatament, billi jien l-aktar intelliġenti fost in-neputijiet tiegħek, nista 'ngħin. Mela niġi d-dar tiegħek, noħroġ xi folji tal-karti u nitlobkom taħmi xi cookies qabel nibdew.

Fuq folja waħda tal-karta, nagħmlu lista msejħa "neputijiet". Kull neputi irreġistrat b’xi informazzjoni sinifikanti dwaru, inkluż numru uniku li issa se jindika kif neputi hu. Ukoll, għall-fini tal-organizzazzjoni, aħna niktbu attributi msemmija fil-quċċata tal-lista sabiex inkunu dejjem nafu x'informazzjoni fiha l-lista.

id
isem
birthday
l-aħħar żjara
daqs tal-ħwejjeġ
ġelat favorit
adottata

1
Jimmy
09-22-1992
09-01-2019
L
ċikkulata mint
falza

2
Jessica
07-21-1992
02-22-2018
M
Triq tal-blat
veru

… inkomplu l-lista!

Lista tan-neputijiet

Wara ftit, tifhem kollox u kważi spiċċajna bil-lista! Madankollu, idur lejja u tgħid: "Insew inżidu spazju għall-konjuġi, passatempi, neputijiet!" Imma le, ma insewx! Dan isegwi aktar u jeħtieġ folja ġdida tal-karta.

Allura noħroġ karta oħra u fuqha nsejħu l-lista Il-konjuġi. Aħna nerġgħu nżidu l-attributi li huma importanti għalina fil-quċċata tal-lista u nibdew inżidu fir-ringieli.

id
grandchild_id
isem
birthday

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

...aktar konjuġi!

Lista tal-konjuġi

F'dan l-istadju, nispjega lin-nanna tiegħi li jekk trid tkun taf min hu miżżewweġ ma' min, allura trid taqbel biss id fil-lista neputijiet с grandchild_id fil-lista tal-miżżewġin.

Wara ftit tużżana cookies, għandi bżonn nieħu naqra. "Tista 'tkompli, nanna?" Jien nitlaq biex nieħu naqra.

Jien nirritorna fi ftit sigħat. Int friska, nanna! Kollox jidher tajjeb ħlief għal-lista passatemp. Hemm madwar 1000 passatemp fil-lista. Ħafna minnhom huma ripetittivi; X'ġara?

grandchild_id
passatemp

1
ċikliżmu

4
ċikliżmu

3
ċikliżmu

7
tmexxija

11
ċikliżmu

… inkomplu!

Jiddispjacini, insejt ngħid! Bl-użu ta 'lista waħda, tista' biss issegwi passatemp. Imbagħad f'lista oħra għandna bżonn intraċċaw neputijietli qed jagħmlu dan passatemp. Aħna se nsejħulha "Lista komuni". Meta nara li ma togħġbokx, ninkwieta u mmur lura għall-modalità lista.

id
passatemp

1
ċikliżmu

2
tmexxija

3
għawm

...aktar passatempi!

Lista ta' passatempi

Ladarba jkollna l-lista tal-passatempi tagħna, noħolqu t-tieni lista tagħna u nsejħulha "Il-passatempi tan-neputijiet".

grandchild_id
hobby_id

4
1

3
1

7
2

… aktar!

Lista ġenerali tal-passatempi tan-neputijiet

Wara dan ix-xogħol kollu, in-nanna issa għandha sistema ta’ memorja friska biex iżżomm kont tal-familja kbira tagħha kollha kemm hi. U mbagħad - biex iżżommni itwal - hi tistaqsi l-mistoqsija maġika: "Fejn tgħallimt tagħmel dan kollu?"

Databases relazzjonali

Database relazzjonali hija sett ta' tabelli deskritti formalment (fl-eżempju tagħna, dawn huma folji) li minnhom tista' taċċessa mogħti jew tiġborhom b'diversi modi mingħajr ma jkollok bżonn torganizza mill-ġdid it-tabelli Database. Hemm ħafna tipi differenti ta 'databases relazzjonali, iżda sfortunatament lista fuq biċċa karta mhix waħda minnhom.

Il-karatteristika tad-databases relazzjonali l-aktar popolari hija l-lingwa tal-mistoqsijiet SQL (Structured Query Language). Bis-saħħa tiegħu, jekk in-nanna tittrasferixxi s-sistema tal-memorja tagħha għal kompjuter, malajr tista’ tikseb tweġibiet għal mistoqsijiet bħal: “Min ma żaritnix is-sena l-oħra, huwa miżżewweġ u m’għandux passatempi?”

Waħda mis-sistemi ta 'ġestjoni tad-database SQL l-aktar popolari hija s-sors miftuħ MySQL. Huwa implimentat primarjament bħala sistema ta 'ġestjoni tad-database relazzjonali (RDBMS) għal applikazzjonijiet ta' softwer ibbażati fuq il-web.

Xi karatteristiċi ewlenin tal-MySQL:

  • Huwa pjuttost magħruf, użat ħafna u ttestjat b'mod estensiv.
  • Hemm ħafna żviluppaturi tas-sengħa li għandhom esperjenza bl-SQL u databases relazzjonali.
  • Id-dejta hija maħżuna f'diversi tabelli, li jagħmilha faċli li jiġu stabbiliti relazzjonijiet bl-użu ta 'ċwievet primarji u barranin (identifikaturi).
  • Huwa faċli biex tużah u effiċjenti, li jagħmilha ideali għal negozji kbar u żgħar.
  • Il-kodiċi tas-sors huwa taħt it-termini tal-Liċenzja Pubblika Ġenerali GNU.

Issa tinsa KOLLHA.

Tispjega NoSQL lin-nanna

Nanna, għandna familja kbira. Hija għandha 150 neputi! Ħafna minnhom huma miżżewġin, għandhom it-tfal, iħobbu xi ħaġa u l-bqija. Fl-età tiegħek, huwa impossibbli li tiftakar kollox dwarna lkoll. Dak li għandek bżonn hija sistema ta 'memorja!

Fortunatament, jien ebda nixtieq li tinsa għeluq snini u t-togħma favorita tal-ġelat, nista 'ngħin. Għalhekk niġri lejn l-eqreb maħżen, nieħu notebook u nerġa’ lura d-dar tiegħek.

L-ewwel pass li nieħu hu li nikteb “Neputijiet” b’ittri kbar u grassi fuq il-qoxra tan-notebook tiegħi. Imbagħad naqleb l-ewwel paġna u nibda nikteb dak kollu li għandek bżonn tiftakar dwari. Ftit minuti wara, il-paġna tidher xi ħaġa bħal din.

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

Я: "Jidher kollox lest!"
Nannu: "Stenna, xi ngħidu għall-bqija tan-neputijiet?"
Я: "Iva eżattament. Imbagħad alloka paġna waħda għal kull wieħed.”
Nannu: "Ikolli bżonn nikteb l-istess informazzjoni għal kulħadd, bħalma għamilt għalik?"
Я: “Le, jekk trid biss. Ħallini nuri."
Naqbad il-pinna tan-nanna, naqleb il-paġna u malajr innota informazzjoni dwar l-inqas kuġin tiegħi favorit.

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

Kull meta nanna trid tiftakar xi ħaġa dwar wieħed min-neputijiet tagħha, trid biss tinnaviga lejn il-paġna t-tajba fin-notebook tan-neputijiet tagħha. L-informazzjoni kollha dwarhom se tinħażen eżatt fuq il-paġna tagħhom, li hi tista 'tbiddel u taġġorna malajr.

Meta kollox isir, hi tistaqsi l-mistoqsija maġika: "Fejn tgħallimt tagħmel dan kollu?"

databases NoSQL

Hemm ħafna databases NoSQL (“mhux biss SQL”). Fl-eżempji tagħna, urejna database tad-dokumenti. Id-databases NoSQL jimmudellaw id-data b'modi li jeskludu r-relazzjonijiet tat-tabella użati fid-databases relazzjonali. Dawn id-databases saru popolari fil-bidu tas-snin 2000 ma' kumpaniji li kellhom bżonn clustering tad-databases ibbażati fuq il-cloud minħabba r-rekwiżiti ta' skala espliċiti tagħhom (bħal Facebook). F'dawn l-applikazzjonijiet, il-konsistenza tad-dejta kienet ħafna inqas importanti mill-prestazzjoni u l-iskalabbiltà.

Fil-bidu, id-databases NoSQL kienu spiss użati għal kompiti ta 'ġestjoni tad-dejta niċċa. Bażikament, meta ġew għall-applikazzjonijiet tal-web u s-sħab, id-databases NoSQL ipproċessaw u qassmu ammonti sinifikanti ta 'dejta. L-inġiniera NoSQL għoġobhom ukoll l-iskema tad-dejta flessibbli (jew in-nuqqas tagħha) sabiex bidliet rapidi kienu possibbli fl-applikazzjonijiet li ġew aġġornati.

Karatteristiċi ewlenin ta 'NoSQL:

  • Mod flessibbli ħafna biex taħżen id-dejta
  • Skala orizzontali għal clusters
  • Sekwenzar possibbli għal kull persistenza/tixrid
  • Dokumenti li huma identifikati bl-użu ta 'ċwievet uniċi

Paragun dettaljat

MySQL jeħtieġ skema definita u strutturata.
NoSQL jippermettilek taħżen kwalunkwe data f'"dokument".

MySQL għandu komunità enormi.
NoSQL għandu komunità żgħira u li qed tikber malajr.

NoSQL huwa faċli biex tiskala.
MySQL jeħtieġ aktar ġestjoni.

MySQL juża SQL, li jintuża f'ħafna tipi ta 'databases.
NoSQL huwa disinn ibbażat fuq database b'implimentazzjonijiet popolari.

MySQL juża lingwa ta' mistoqsija standard (SQL).
NoSQL ma jużax lingwa ta' mistoqsija standard.

MySQL għandu ħafna għodod ta 'rappurtar kbar.
NoSQL għandu diversi għodod ta' rappurtar li huma diffiċli biex jiġu standardizzati.

MySQL jista 'juri kwistjonijiet ta' prestazzjoni għal big data.
NoSQL jipprovdi prestazzjoni eċċellenti fuq big data.

Ħsibijiet 8base

Fil-kumpanija 8bażifejn naħdem, aħna nipprovdu spazju tax-xogħol għal kull proġett b'database relazzjonali Aurora MySQL ospitat fuq AWS. Filwaqt li NoSQL hija għażla loġika meta l-applikazzjoni tiegħek titlob prestazzjoni għolja u skalabbiltà, aħna nemmnu li l-konsistenza qawwija tad-dejta pprovduta minn DBMS hija essenzjali meta tibni applikazzjonijiet SaaS u softwer kummerċjali ieħor.

Għal startups u żviluppaturi li jibnu applikazzjonijiet kummerċjali li jeħtieġu rappurtar, integrità transazzjonali, u mudelli ta 'dejta definiti sew, l-investiment f'databases relazzjonali huwa, fl-opinjoni tagħna, l-għażla t-tajba.

Tgħallem aktar dwar l-iżvilupp ma' Aurora, Serverless u GraphQL fuq 8base.com hawn.

Sors: www.habr.com

Żid kumment