Hoe om aan jou ouma die verskil tussen SQL en NoSQL te verduidelik

Hoe om aan jou ouma die verskil tussen SQL en NoSQL te verduidelik

Een van die belangrikste besluite wat 'n ontwikkelaar neem, is watter databasis om te gebruik. Vir baie jare was opsies beperk tot die verskillende relasionele databasisopsies wat die Structured Query Language (SQL) ondersteun het. Dit sluit in MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 en vele meer.

Oor die afgelope 15 jaar het baie nuwe databasisse die mark betree onder die No-SQL-benadering. Dit sluit sleutelwaardewinkels soos Redis en Amazon DynamoDB, breëkolomdatabasisse soos Cassandra en HBase, dokumentwinkels soos MongoDB en Couchbase, en grafiekdatabasisse en soekenjins soos Elasticsearch en Solr in.

In hierdie artikel sal ons probeer om SQL en NoSQL te verstaan ​​sonder om in hul funksionaliteit te kom.
Boonop sal ons 'n bietjie pret hê langs die pad.

Verduidelik SQL aan Ouma

Ouma, verbeel jou dat ek nie jou enigste kleinseun is nie. In plaas daarvan het ma en pa mekaar liefgehad soos hase, hulle het 100 kinders gehad, toe het hulle nog 50 aangeneem.

So, jy is lief vir ons almal en wil nie enige van ons name, verjaarsdae, gunsteling roomysgeure, kleregroottes, stokperdjies, gadename, nageslagname en ander super belangrike feite vergeet nie. Kom ons erken dit egter. Jy is 85 jaar oud en goeie ou geheue kan dit net nie hanteer nie.

Gelukkig, omdat ek die slimste van jou kleinkinders is, kan ek help. So ek kom na jou huis toe, ek haal 'n paar velle papier uit en ek vra jou om 'n paar koekies te bak voor ons begin.

Op een vel papier maak ons ​​'n lys genaamd "kleinkinders". Elke kleinseun aangeteken met 'n paar belangrike inligting oor hom, insluitend 'n unieke nommer wat nou sal aandui hoe kleinseun hy is. Ook, ter wille van organisasie, skryf ons benoemde eienskappe boaan die lys uit sodat ons altyd weet watter inligting die lys bevat.

id
naam
verjaarsdag
laaste besoek
klere grootte
gunsteling roomys
aangeneem

1
Jimmy
09-22-1992
09-01-2019
L
kruisement sjokolade
valse

2
Jessica
07-21-1992
02-22-2018
M
klipperige pad
waar

...ons gaan voort met die lys!

Lys van kleinkinders

Na 'n rukkie verstaan ​​jy alles en ons is amper klaar met die lys! Jy draai egter na my en sê: “Ons het vergeet om spasie by te voeg vir huweliksmaats, stokperdjies, kleinkinders!” Maar nee, ons het nie vergeet nie! Dit volg verder en vereis 'n nuwe vel papier.

So ek trek nog 'n vel papier uit en daarop roep ons die lys Eggenote. Ons voeg weer die eienskappe wat vir ons belangrik is bo-aan die lys by en begin in rye byvoeg.

id
kleinkind_id
naam
verjaarsdag

1
2
Johannes
06-01-1988

2
9
Fernanda
03-05-1985

…meer huweliksmaats!

Lys van gades

Op hierdie stadium verduidelik ek vir my ouma dat as sy wil weet wie met wie getroud is, dan hoef sy net te pas id in die lys kleinkinders с kleinkind_id in die lys van gades.

Na 'n paar dosyn koekies, moet ek 'n middagslapie neem. "Kan jy voortgaan, ouma?" Ek gaan weg om 'n middagslapie te neem.

Ek kom oor 'n paar uur terug. Jy is gaaf, ouma! Alles lyk goed behalwe die lys stokperdjie. Daar is ongeveer 1000 stokperdjies op die lys. Die meeste van hulle is herhalend; Wat het gebeur?

kleinkind_id
stokperdjie

1
fiets

4
fiets

3
fiets

7
hardloop

11
fiets

... ons gaan voort!

Jammer, ek het heeltemal vergeet om te sê! Deur een lys te gebruik, kan jy net opspoor stokperdjie. Dan moet ons in 'n ander lys opspoor kleinkinderswie doen dit stokperdjie. Ons gaan dit noem "Algemene lys". Siende dat jy nie daarvan hou nie, raak ek bekommerd en gaan terug na lysmodus.

id
stokperdjie

1
fiets

2
hardloop

3
swem

…meer stokperdjies!

Lys van stokperdjies

Sodra ons ons stokperdjielys het, skep ons ons tweede lys en noem dit "Kleinkinders se stokperdjies".

kleinkind_id
hobby_id

4
1

3
1

7
2

… meer!

Algemene lys van kleinkinders se stokperdjies

Na al hierdie werk het Ouma nou 'n koel geheuestelsel om tred te hou met haar hele ongelooflike groot familie. En dan - om my langer te hou - vra sy die towervraag: "Waar het jy geleer om dit alles te doen?"

Relasionele databasisse

'n Relasionele databasis is 'n stel formeel beskryfde tabelle (in ons voorbeeld is dit blaaie) waaruit u toegang het data of versamel dit op verskeie maniere sonder om die tabelle te herorganiseer Databasis. Daar is baie verskillende tipes relasionele databasisse, maar ongelukkig is 'n lys op 'n stuk papier nie een daarvan nie.

Die kenmerk van die gewildste relasionele databasisse is die SQL (Structured Query Language) navraagtaal. Danksy hom, as Ouma haar geheuestelsel na ’n rekenaar oordra, kan sy vinnig antwoorde kry op vrae soos: “Wie het my nie verlede jaar besoek nie, is getroud en het geen stokperdjies nie?”

Een van die gewildste SQL-databasisbestuurstelsels is die oopbron MySQL. Dit word hoofsaaklik geïmplementeer as 'n relasionele databasisbestuurstelsel (RDBMS) vir webgebaseerde sagtewaretoepassings.

Sommige sleutelkenmerke van MySQL:

  • Dit is redelik bekend, wyd gebruik en omvattend getoets.
  • Daar is baie bekwame ontwikkelaars wat ondervinding het met SQL en relasionele databasisse.
  • Die data word in verskeie tabelle gestoor, wat dit maklik maak om verhoudings te vestig deur primêre en vreemde sleutels (identifiseerders) te gebruik.
  • Dit is maklik om te gebruik en doeltreffend, wat dit ideaal maak vir besighede groot en klein.
  • Die bronkode is onder die bepalings van die GNU General Public License.

Nou vergeet ALLE.

Verduidelik NoSQL aan ouma

Ouma, ons het 'n groot familie. Sy het 150 kleinkinders! Baie van hulle is getroud, het kinders, is lief vir iets en so meer. Op jou ouderdom is dit onmoontlik om alles van ons almal te onthou. Wat jy nodig het is 'n geheue stelsel!

Gelukkig het ek geen Ek wil graag hê jy moet my verjaarsdag en gunsteling geur roomys vergeet. So ek hardloop na die naaste winkel, neem 'n notaboek en keer terug na jou huis.

Die eerste stap wat ek neem is om "Kleinkinders" in groot vet letters op die omslag van my notaboek te skryf. Dan blaai ek na die eerste bladsy en begin alles skryf wat jy van my moet onthou. 'n Paar minute later lyk die bladsy iets soos hierdie.

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

Я: "Dit lyk asof alles gereed is!"
ouma: “Wag, wat van die res van die kleinkinders?”
Я: "Ja presies. Ken dan een bladsy vir elkeen toe.”
ouma: "Sal ek dieselfde inligting vir almal moet neerskryf as wat ek vir jou gedoen het?"
Я: “Nee, net as jy wil. Laat ek wys."
Ek gryp my ouma se pen, blaai die bladsy om en skryf vinnig inligting oor my minste gunsteling neef neer.

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

Wanneer 'n ouma iets van een van haar kleinkinders moet onthou, hoef sy net na die regte bladsy in haar kleinkinders se notaboek te gaan. Alle inligting oor hulle sal net daar op hul bladsy gestoor word, wat sy vinnig kan verander en bywerk.

Wanneer alles klaar is, vra sy die towervraag: "Waar het jy geleer om dit alles te doen?"

NoSQL databasisse

Daar is baie NoSQL databasisse ("nie net SQL nie"). In ons voorbeelde het ons gewys dokument databasis. NoSQL-databasisse modelleer data op maniere wat die tabelverwantskappe wat in relasionele databasisse gebruik word, uitsluit. Hierdie databasisse het in die vroeë 2000's gewild geword by maatskappye wat wolkgebaseerde databasisgroepering nodig gehad het as gevolg van hul eksplisiete skaalvereistes (soos Facebook). In sulke toepassings was datakonsekwentheid baie minder belangrik as werkverrigting en skaalbaarheid.

In die begin is NoSQL-databasisse dikwels gebruik vir nisdatabestuurstake. Basies, wat web- en wolktoepassings betref, het NoSQL-databasisse aansienlike hoeveelhede data verwerk en versprei. NoSQL-ingenieurs het ook van die buigsame dataskema (of gebrek daaraan) gehou sodat vinnige veranderinge moontlik was in toepassings wat opgedateer is.

Sleutel kenmerke van NoSQL:

  • Baie buigsame manier om data te stoor
  • Horisontale skaal na trosse
  • Moontlike volgordebepaling per volharding/verspreiding
  • Dokumente wat met unieke sleutels geïdentifiseer word

Gedetailleerde vergelyking

MySQL vereis 'n gedefinieerde en gestruktureerde skema.
NoSQL laat jou toe om enige data in 'n "dokument" te stoor.

MySQL het 'n groot gemeenskap.
NoSQL het 'n klein en vinnig groeiende gemeenskap.

NoSQL is maklik om te skaal.
MySQL benodig meer bestuurbaarheid.

MySQL gebruik SQL, wat in baie soorte databasisse gebruik word.
NoSQL is 'n databasisgebaseerde ontwerp met gewilde implementerings.

MySQL gebruik 'n standaard navraagtaal (SQL).
NoSQL gebruik nie 'n standaard navraagtaal nie.

MySQL het baie wonderlike verslagdoeningsinstrumente.
NoSQL het verskeie verslagdoeningsinstrumente wat moeilik is om te standaardiseer.

MySQL kan prestasieprobleme vir groot data wys.
NoSQL bied uitstekende werkverrigting op groot data.

Gedagtes 8basis

Die maatskappy 8BASEwaar ek werk, verskaf ons 'n werkspasie vir elke projek met 'n Aurora MySQL relasionele databasis wat op AWS gehuisves word. Alhoewel NoSQL 'n logiese keuse is wanneer jou toepassing hoë werkverrigting en skaalbaarheid vereis, glo ons dat die sterk datakonsekwentheid wat deur 'n DBMS verskaf word, noodsaaklik is wanneer SaaS-toepassings en ander besigheidsagteware gebou word.

Vir beginners en ontwikkelaars wat besigheidstoepassings bou wat verslagdoening, transaksionele integriteit en goed gedefinieerde datamodelle vereis, is belegging in relasionele databasisse, na ons mening, die regte keuse.

Kom meer te wete oor ontwikkeling met Aurora, Serverless en GraphQL by 8base.com hier.

Bron: will.com

Voeg 'n opmerking