Kā izskaidrot vecmāmiņai atŔķirÄ«bu starp SQL un NoSQL

Kā izskaidrot vecmāmiņai atŔķirÄ«bu starp SQL un NoSQL

Viens no svarīgākajiem izstrādātāja lēmumiem ir izmantot datu bāzi. Daudzus gadus iespējas bija ierobežotas ar dažādām relāciju datu bāzes opcijām, kas atbalstīja strukturēto vaicājumu valodu (SQL). Tie ietver MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 un daudzas citas.

Pēdējo 15 gadu laikā tirgÅ« ir ienākuÅ”as daudzas jaunas datu bāzes saskaņā ar No-SQL pieeju. Tie ietver atslēgu vērtÄ«bu veikalus, piemēram, Redis un Amazon DynamoDB, plaÅ”as kolonnu datu bāzes, piemēram, Cassandra un HBase, dokumentu veikalus, piemēram, MongoDB un Couchbase, un grafiku datu bāzes un meklētājprogrammas, piemēram, Elasticsearch un Solr.

Šajā rakstā mēs centīsimies izprast SQL un NoSQL, neiedziļinoties to funkcionalitātē.
Turklāt mēs pa ceļam izklaidēsimies.

SQL skaidroÅ”ana vecmāmiņai

Vecmāmiņ, iedomājies, ka es neesmu tavs vienīgais mazdēls. Tā vietā mamma un tētis mīlēja viens otru kā zaķus, viņiem bija 100 bērni, tad viņi adoptēja vēl 50.

Tātad, jÅ«s mÄ«lat mÅ«s visus un nevēlaties aizmirst nevienu no mÅ«su vārdiem, dzimÅ”anas dienām, iecienÄ«tākajām saldējuma garŔām, apģērbu izmēriem, hobijiem, laulāto vārdiem, pēcnācēju vārdiem un citiem Ä«paÅ”i svarÄ«giem faktiem. Tomēr atzÄ«sim. Jums ir 85 gadi, un vecā labā atmiņa vienkārÅ”i netiek galā.

Par laimi, būdams gudrākais no taviem mazbērniem, varu palīdzēt. Tāpēc es nāku uz jūsu māju, izņemu dažas papīra loksnes un lūdzu, pirms mēs sākam izcept dažus cepumus.

Uz vienas papÄ«ra lapas mēs izveidojam sarakstu ar nosaukumu "Mazbērni". Katrs mazdēls ierakstÄ«ts ar kādu nozÄ«mÄ«gu informāciju par viņu, tostarp unikālu numuru, kas tagad norādÄ«s, kā mazdēls viņŔ ir. Organizācijas labad mēs saraksta augÅ”pusē izrakstām nosauktos atribÅ«tus, lai mēs vienmēr zinātu, kāda informācija ir sarakstā.

id
nosaukums
dzimŔanas diena
pēdējā vizīte
apģērba izmērs
mīļākais saldējums
pieņemts

1
Džimijs
09-22-1992
09-01-2019
L
piparmētru Å”okolāde
nepatiess

2
Jessica
07-21-1992
02-22-2018
M
akmeņains ceļŔ
patiess

...turpinām sarakstu!

Mazbērnu saraksts

Pēc kāda laika jÅ«s visu saprotat, un mēs esam gandrÄ«z pabeiguÅ”i sarakstu! Tomēr jÅ«s vērÅ”aties pie manis un sakāt: "Mēs aizmirsām atvēlēt vietu laulātajiem, vaļaspriekiem, mazbērniem!" Bet nē, mēs neesam aizmirsuÅ”i! Tas notiek tālāk, un ir nepiecieÅ”ama jauna papÄ«ra lapa.

Tāpēc es izvelku vēl vienu papÄ«ra lapu, un uz tās mēs saucam sarakstu Laulātie. Mēs atkal pievienojam mums svarÄ«gos atribÅ«tus saraksta augÅ”daļā un sākam pievienot rindas.

id
mazbērna_id
nosaukums
dzimŔanas diena

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

ā€¦vairāk laulāto!

Laulāto saraksts

Å ajā posmā es paskaidroju savai vecmāmiņai, ka, ja viņa vēlas zināt, kurÅ” ar kuru ir precējies, tad viņai tikai jāsakrÄ«t. id sarakstā mazbērni с mazbērna_id laulāto sarakstā.

Pēc pāris desmitiem cepumu man vajag pasnaust. "Vai varat turpināt, vecmāmiņ?" Aizeju pasnausties.

Es atgriezÄ«Å”os pēc dažām stundām. Tu esi forÅ”a, vecmāmiņ! Viss izskatās lieliski, izņemot sarakstu hobijs. Sarakstā ir aptuveni 1000 vaļasprieku. Lielākā daļa no tiem atkārtojas; Kas notika?

mazbērna_id
hobijs

1
riteņbraukÅ”anas

4
riteņbraukÅ”anas

3
riteņbraukÅ”anas

7
ekspluatācijas

11
riteņbraukÅ”anas

...turpinām!

Atvainojiet, es pavisam aizmirsu pateikt! Izmantojot vienu sarakstu, varat tikai izsekot hobijs. Tad citā sarakstā mums ir jāizseko mazbērnikas to dara hobijs. Mēs to sauksim "Kopējais saraksts". Redzot, ka jums tas nepatīk, es satraucos un atgriežos saraksta režīmā.

id
hobijs

1
riteņbraukÅ”anas

2
ekspluatācijas

3
peldēŔana

...vairāk vaļasprieku!

Vaļasprieku saraksts

Kad mums ir savs hobiju saraksts, mēs izveidojam savu otro sarakstu un saucam to par "Mazbērnu vaļasprieki'.

mazbērna_id
hobija_id

4
1

3
1

7
2

ā€¦vairāk!

Vispārējs mazbērnu hobiju saraksts

Pēc visa Ŕī darba vecmāmiņai tagad ir lieliska atmiņas sistēma, lai izsekotu visai savai pārsteidzoÅ”i lielajai Ä£imenei. Un tad - lai mani paturētu ilgāk - viņa uzdod maÄ£isko jautājumu: "Kur tu iemācÄ«jies to visu darÄ«t?"

Relāciju datu bāzes

Relāciju datu bāze ir formāli aprakstītu tabulu kopa (mūsu piemērā tās ir lapas), no kurām varat piekļūt Saskaņā ar vai savākt tos dažādos veidos, nepārkārtojot tabulas Datu bāze. Ir daudz dažādu relāciju datu bāzu veidu, bet diemžēl saraksts uz papīra nav viens no tiem.

Populārāko relāciju datu bāzu iezÄ«me ir SQL (strukturētā vaicājuma valoda) vaicājumu valoda. Pateicoties viņam, vecmāmiņa, pārliekot savu atmiņas sistēmu uz datoru, var ātri saņemt atbildes uz tādiem jautājumiem kā: ā€œKurÅ” mani pagājuÅ”ajā gadā neapciemoja, ir precējies un viņam nav vaļasprieku?ā€

Viena no populārākajām SQL datu bāzes pārvaldības sistēmām ir atvērtā koda MySQL. Tā tiek ieviesta galvenokārt kā relāciju datu bāzes pārvaldības sistēma (RDBMS) tīmekļa programmatūras lietojumprogrammām.

Dažas galvenās MySQL funkcijas:

  • Tas ir diezgan labi zināms, plaÅ”i izmantots un plaÅ”i pārbaudÄ«ts.
  • Ir daudzi kvalificēti izstrādātāji, kuriem ir pieredze ar SQL un relāciju datu bāzēm.
  • Dati tiek glabāti dažādās tabulās, kas ļauj viegli izveidot attiecÄ«bas, izmantojot primārās un ārējās atslēgas (identifikatorus).
  • Tas ir ērti lietojams un efektÄ«vs, tāpēc tas ir ideāli piemērots lieliem un maziem uzņēmumiem.
  • Uz pirmkodu attiecas GNU vispārējās publiskās licences noteikumi.

Tagad aizmirsti Visi.

NoSQL skaidroÅ”ana vecmāmiņai

Vecmāmiņ, mums ir milzÄ«ga Ä£imene. Viņai ir 150 mazbērni! Daudzi no viņiem ir precējuÅ”ies, viņiem ir bērni, viņiem kaut kas patÄ«k un tā tālāk. Tavā vecumā nav iespējams atcerēties visu par mums visiem. Jums ir nepiecieÅ”ama atmiņas sistēma!

Par laimi, es nē Es vēlos, lai jÅ«s aizmirstat manu dzimÅ”anas dienu un iecienÄ«tāko saldējuma garÅ”u, es varu palÄ«dzēt. Tāpēc es skrienu uz tuvāko veikalu, paņemu piezÄ«mju grāmatiņu un atgriežos tavā mājā.

Pirmais solis, ko speru, ir uz piezÄ«mju grāmatiņas vāka ar lieliem trekniem burtiem uzrakstÄ«t "Mazbērni". Tad es uzŔķiru pirmo lapu un sāku rakstÄ«t visu, kas par mani jāatceras. Pēc dažām minÅ«tēm lapa izskatās apmēram Ŕādi.

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

ŠÆ: "Å Ä·iet, ka viss ir gatavs!"
Š‘Š°Š±ŃƒŃˆŠŗŠ°: "Pagaidi, kā ar pārējiem mazbērniem?"
ŠÆ: "Jā tieÅ”i tā. Pēc tam pieŔķiriet katram vienu lapu.
Š‘Š°Š±ŃƒŃˆŠŗŠ°: ā€œVai man vajadzēs visiem pierakstÄ«t visu to paÅ”u informāciju, ko es darÄ«ju par jums?ā€
ŠÆ: "Nē, tikai tad, ja vēlaties. Ä»aujiet man parādÄ«t."
Paķērusi vecmāmiņas pildspalvu, pārŔķiru lapu un ātri pierakstu informāciju par savu vismazāk mīļāko brālēnu.

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

Ikreiz, kad vecmāmiņai kaut kas jāatceras par kādu no saviem mazbērniem, viņai atliek tikai pārvietoties uz pareizo lappusi savu mazbērnu piezīmju grāmatiņā. Visa informācija par viņiem tiks saglabāta turpat viņu lapā, kuru viņa var ātri mainīt un atjaunināt.

Kad viss ir izdarīts, viņa uzdod maģisko jautājumu: "Kur tu mācījies to visu darīt?"

NoSQL datu bāzes

Ir daudz NoSQL datu bāzes (ā€œne tikai SQLā€). Savos piemēros mēs esam parādÄ«juÅ”i dokumentu datu bāze. NoSQL datu bāzes modelē datus tā, lai izslēgtu relāciju datu bāzēs izmantotās tabulu attiecÄ«bas. Å Ä«s datu bāzes kļuva populāras 2000. gadu sākumā ar uzņēmumiem, kuriem bija nepiecieÅ”ama mākoņdatu datu bāzu klasterizācija to precÄ«zo mērogoÅ”anas prasÄ«bu dēļ (piemēram, Facebook). Šādās lietojumprogrammās datu konsekvence bija daudz mazāk svarÄ«ga nekā veiktspēja un mērogojamÄ«ba.

Sākumā NoSQL datu bāzes bieži tika izmantotas niÅ”as datu pārvaldÄ«bas uzdevumiem. BÅ«tÄ«bā, runājot par tÄ«mekļa un mākoņa lietojumprogrammām, NoSQL datu bāzes apstrādāja un izplatÄ«ja ievērojamus datu apjomus. NoSQL inženieriem patika arÄ« elastÄ«gā datu shēma (vai tās trÅ«kums), lai atjauninātajās lietojumprogrammās bÅ«tu iespējamas straujas izmaiņas.

Galvenās NoSQL funkcijas:

  • Ä»oti elastÄ«gs veids, kā uzglabāt datus
  • Horizontālā mērogoÅ”ana lÄ«dz klasteriem
  • Iespējama secÄ«ba katrai noturÄ«bai/izplatÄ«bai
  • Dokumenti, kas tiek identificēti, izmantojot unikālas atslēgas

Detalizēts salīdzinājums

MySQL nepiecieÅ”ama definēta un strukturēta shēma.
NoSQL ļauj saglabāt jebkurus datus "dokumentā".

MySQL ir milzīga kopiena.
NoSQL ir maza un strauji augoŔa kopiena.

NoSQL ir viegli mērogojams.
MySQL nepiecieŔama lielāka pārvaldība.

MySQL izmanto SQL, ko izmanto daudzu veidu datu bāzēs.
NoSQL ir uz datu bāzēm balstīts dizains ar populārām implementācijām.

MySQL izmanto standarta vaicājumu valodu (SQL).
NoSQL neizmanto standarta vaicājumu valodu.

MySQL ir daudz lielisku pārskatu rīku.
NoSQL ir vairāki ziņoÅ”anas rÄ«ki, kurus ir grÅ«ti standartizēt.

MySQL var parādīt veiktspējas problēmas lielajiem datiem.
NoSQL nodroÅ”ina izcilu veiktspēju lielos datos.

Domas 8base

Uzņēmums 8 bāzekur es strādāju, mēs nodroÅ”inām darbvietu katram projektam ar Aurora MySQL relāciju datu bāzi, kas mitināta AWS. Lai gan NoSQL ir loÄ£iska izvēle, ja jÅ«su lietojumprogrammai ir nepiecieÅ”ama augsta veiktspēja un mērogojamÄ«ba, mēs uzskatām, ka DBVS nodroÅ”inātā spēcÄ«ga datu konsekvence ir bÅ«tiska, veidojot SaaS lietojumprogrammas un citu biznesa programmatÅ«ru.

Uzsācējiem un izstrādātājiem, kas veido biznesa lietojumprogrammas, kurām nepiecieÅ”ama atskaite, darÄ«jumu integritāte un labi definēti datu modeļi, mÅ«suprāt, ieguldÄ«jumi relāciju datu bāzēs ir pareizā izvēle.

Uzziniet vairāk par izstrādi ar Aurora, Serverless un GraphQL vietnē 8base.com Å”eit.

Avots: www.habr.com

Pievieno komentāru