Hvernig á að útskýra fyrir ömmu þinni muninn á SQL og NoSQL

Hvernig á að útskýra fyrir ömmu þinni muninn á SQL og NoSQL

Ein mikilvægasta ákvörðun sem þróunaraðili tekur er hvaða gagnagrunnur á að nota. Í mörg ár voru valkostir takmarkaðir við hina ýmsu tengslagagnagrunnsvalkosti sem studdu Structured Query Language (SQL). Þar á meðal eru MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 og margt fleira.

Undanfarin 15 ár hafa margir nýir gagnagrunnar komið inn á markaðinn undir No-SQL nálguninni. Þar á meðal eru lykilgildisverslanir eins og Redis og Amazon DynamoDB, breiðir dálkagagnagrunnar eins og Cassandra og HBase, skjalaverslanir eins og MongoDB og Couchbase og grafgagnagrunnar og leitarvélar eins og Elasticsearch og Solr.

Í þessari grein munum við reyna að skilja SQL og NoSQL án þess að komast inn í virkni þeirra.
Auk þess munum við skemmta okkur á leiðinni.

Útskýrir SQL fyrir ömmu

Amma, ímyndaðu þér að ég sé ekki eina barnabarnið þitt. Í staðinn elskuðu mamma og pabbi hvort annað eins og kanínur, þau eignuðust 100 börn, síðan ættleiddu þau 50 í viðbót.

Svo þú elskar okkur öll og vilt ekki gleyma neinu af nöfnum okkar, afmælisdögum, uppáhalds ísbragði, fatastærðum, áhugamálum, nöfnum maka, nöfnum afkvæma og öðrum ofur mikilvægum staðreyndum. Hins vegar skulum við horfast í augu við það. Þú ert 85 ára og gamla góða minnið ræður bara ekki við það.

Sem betur fer get ég hjálpað, þar sem ég er snjöllust af barnabörnum þínum. Svo ég kem heim til þín, tek fram pappírsblöð og bið þig um að baka smákökur áður en við byrjum.

Á einu blaði gerum við lista sem heitir "Barnabörn". Hvert barnabarn skráð með nokkrum mikilvægum upplýsingum um hann, þar á meðal einstakt númer sem mun nú gefa til kynna hvernig barnabarn hann er. Einnig, vegna skipulags, skrifum við út nafngreinda eiginleika efst á listanum svo að við vitum alltaf hvaða upplýsingar listinn inniheldur.

id
nafn
afmæli
síðasta heimsókn
fatastærð
uppáhalds ís
samþykkt

1
jimmy
09-22-1992
09-01-2019
L
Myntu súkkulaði
rangar

2
jessica
07-21-1992
02-22-2018
M
grýttur vegur
satt

…við höldum áfram listann!

Listi yfir barnabörn

Eftir smá stund skilurðu allt og við erum næstum búin með listann! Hins vegar snýrðu þér að mér og segir: „Við gleymdum að bæta við plássi fyrir maka, áhugamál, barnabörn! En nei, við höfum ekki gleymt því! Þetta fylgir frekar og þarf nýtt blað.

Svo ég dreg fram annað blað og á því köllum við listann Maka. Við bætum aftur þeim eiginleikum sem eru mikilvægir fyrir okkur efst á listann og byrjum að bæta við í röðum.

id
grandchild_id
nafn
afmæli

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

… fleiri makar!

Listi yfir maka

Á þessu stigi útskýri ég fyrir ömmu minni að ef hún vill vita hver er giftur hverjum þá þarf hún bara að passa id í listanum barnabörn с grandchild_id á lista yfir maka.

Eftir nokkra tugi smáköku þarf ég að fá mér blund. "Geturðu haldið áfram, amma?" Ég er að fara til að fá mér lúr.

Ég kem aftur eftir nokkrar klukkustundir. Þú ert flott, amma! Allt lítur vel út nema listinn áhugamál. Það eru um 1000 áhugamál á listanum. Flestar þeirra eru endurteknar; Hvað gerðist?

grandchild_id
áhugamál

1
bikiní

4
bikiní

3
bikiní

7
gangi

11
bikiní

…við höldum áfram!

Sorry, ég gleymdi alveg að segja! Með því að nota einn lista geturðu aðeins fylgst með áhugamál. Síðan í öðrum lista sem við þurfum að rekja barnabörnsem eru að gera þetta áhugamál. Við ætlum að kalla það "Algengur listi". Þegar ég sé að þér líkar það ekki verð ég áhyggjufullur og fer aftur í listaham.

id
áhugamál

1
bikiní

2
gangi

3
sund

… fleiri áhugamál!

Listi yfir áhugamál

Þegar við höfum áhugamálalistann okkar búum við til annan listann okkar og köllum hann "Áhugamál barnabarna'.

grandchild_id
hobby_id

4
1

3
1

7
2

…meira!

Almennur listi yfir áhugamál barnabarna

Eftir alla þessa vinnu hefur amma núna flott minniskerfi til að halda utan um alla sína ótrúlega stóru fjölskyldu. Og svo - til að halda mér lengur - spyr hún töfraspurningarinnar: "Hvar lærðirðu að gera þetta allt?"

Venslagagnagrunnar

Venslagagnagrunnur er sett af formlega lýstum töflum (í okkar dæmi eru þetta blöð) sem þú getur fengið aðgang að Samkvæmt eða safna þeim saman á ýmsan hátt án þess að þurfa að endurskipuleggja borðin Gagnagrunnur. Það eru til margar mismunandi gerðir af venslagagnagrunnum, en því miður er listi á blað ekki ein af þeim.

Einkenni vinsælustu venslagagnagrunnanna er SQL (Structured Query Language) fyrirspurnarmálið. Þökk sé honum, ef amma flytur minniskerfið sitt yfir í tölvu, getur hún fljótt fengið svör við spurningum eins og: „Hver ​​heimsótti mig ekki í fyrra, er giftur og á engin áhugamál?

Eitt vinsælasta SQL gagnagrunnsstjórnunarkerfið er opinn uppspretta MySQL. Það er fyrst og fremst útfært sem venslagagnagrunnsstjórnunarkerfi (RDBMS) fyrir vefbundin hugbúnaðarforrit.

Sumir lykileiginleikar MySQL:

  • Það er nokkuð vel þekkt, mikið notað og mikið prófað.
  • Það eru margir færir verktaki sem hafa reynslu af SQL og venslagagnagrunnum.
  • Gögnin eru geymd í ýmsum töflum, sem gerir það auðvelt að koma á tengslum með því að nota aðal- og erlenda lykla (auðkenni).
  • Það er auðvelt í notkun og skilvirkt, sem gerir það tilvalið fyrir stór og smá fyrirtæki.
  • Kóðinn er samkvæmt skilmálum GNU General Public License.

Gleymdu nú Allt.

Útskýrir NoSQL fyrir ömmu

Amma, við eigum stóra fjölskyldu. Hún á 150 barnabörn! Margir þeirra eru giftir, eiga börn, eru hrifnir af einhverju og svo framvegis. Á þínum aldri er ómögulegt að muna allt um okkur öll. Það sem þú þarft er minniskerfi!

Sem betur fer, ég ekki Ég get hjálpað þér að vilja að þú gleymir afmælinu mínu og uppáhalds ísbragðinu. Svo ég hleyp í næstu verslun, tek minnisbók og fer heim til þín.

Fyrsta skrefið sem ég tek er að skrifa „Barnabörn“ með stórum feitletruðum stöfum á forsíðu minnisbókarinnar minnar. Svo fletti ég yfir á fyrstu síðu og byrja að skrifa allt sem þú þarft að muna um mig. Nokkrum mínútum síðar lítur síðan eitthvað svona út.

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

Я: "Það virðist vera allt tilbúið!"
Amma: "Bíddu, hvað með hin af barnabörnunum?"
Я: "Já nákvæmlega. Úthlutaðu síðan einni síðu fyrir hverja.“
Amma: "Þarf ég að skrifa niður allar sömu upplýsingarnar fyrir alla og ég gerði fyrir þig?"
Я: „Nei, bara ef þú vilt. Leyfðu mér að sýna."
Ég gríp penna ömmu minnar, fletti síðunni og skrifa fljótt niður upplýsingar um minnstu uppáhalds frænda minn.

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

Alltaf þegar amma þarf að muna eitthvað um eitt af barnabörnum sínum þarf hún aðeins að fletta á rétta síðu í minnisbók barnabarna sinna. Allar upplýsingar um þá verða geymdar á síðunni þeirra, sem hún getur fljótt breytt og uppfært.

Þegar allt er búið spyr hún töfraspurningarinnar: "Hvar lærðirðu að gera þetta allt?"

NoSQL gagnagrunnar

There ert margir NoSQL gagnagrunnar ("ekki bara SQL"). Í dæmum okkar höfum við sýnt skjalagagnagrunnur. NoSQL gagnagrunnar líkana gögn á þann hátt sem útilokar töflutengslin sem notuð eru í venslagagnagrunnum. Þessir gagnagrunnar urðu vinsælir snemma á 2000. Í slíkum forritum var gagnasamkvæmni mun minna mikilvæg en frammistaða og sveigjanleiki.

Í upphafi voru NoSQL gagnagrunnar oft notaðir fyrir sessgagnastjórnunarverkefni. Í grundvallaratriðum, þegar kom að vef- og skýjaforritum, unnu NoSQL gagnagrunnar og dreifðu umtalsverðu magni af gögnum. NoSQL verkfræðingum líkaði einnig við sveigjanlegt gagnaskema (eða skortur á því) þannig að skjótar breytingar voru mögulegar í forritum sem voru uppfærð.

Helstu eiginleikar NoSQL:

  • Mjög sveigjanleg leið til að geyma gögn
  • Lárétt skalun í klasa
  • Möguleg raðgreining á þrautseigju/dreifingu
  • Skjöl sem eru auðkennd með einstökum lyklum

Ítarlegur samanburður

MySQL krefst skilgreinds og skipulögðu skema.
NoSQL gerir þér kleift að geyma hvaða gögn sem er í „skjali“.

MySQL hefur risastórt samfélag.
NoSQL er með lítið og ört vaxandi samfélag.

NoSQL er auðvelt að skala.
MySQL þarf meiri stjórnun.

MySQL notar SQL, sem er notað í mörgum gerðum gagnagrunna.
NoSQL er gagnagrunnsbyggð hönnun með vinsælum útfærslum.

MySQL notar staðlað fyrirspurnarmál (SQL).
NoSQL notar ekki staðlað fyrirspurnarmál.

MySQL hefur mörg frábær skýrslutæki.
NoSQL hefur nokkur skýrslutæki sem erfitt er að staðla.

MySQL getur sýnt frammistöðuvandamál fyrir stór gögn.
NoSQL veitir framúrskarandi árangur á stórum gögnum.

Hugsanir 8grunnur

Í fyrirtæki 8 grunnurþar sem ég vinn, bjóðum við upp á vinnusvæði fyrir hvert verkefni með Aurora MySQL tengslagagnagrunni sem hýst er á AWS. Þó að NoSQL sé rökrétt val þegar forritið þitt krefst mikillar frammistöðu og sveigjanleika, teljum við að sterk gagnasamkvæmni sem DBMS veitir sé nauðsynleg þegar þú byggir SaaS forrit og annan viðskiptahugbúnað.

Fyrir sprotafyrirtæki og þróunaraðila sem smíða viðskiptaforrit sem krefjast skýrslugerðar, viðskiptaheilleika og vel skilgreindra gagnalíkana er fjárfesting í venslagagnagrunnum, að okkar mati, rétti kosturinn.

Lærðu meira um þróun með Aurora, Serverless og GraphQL á 8base.com hér.

Heimild: www.habr.com

Bæta við athugasemd