Giunsa pagpasabut sa imong lola ang kalainan tali sa SQL ug NoSQL

Giunsa pagpasabut sa imong lola ang kalainan tali sa SQL ug NoSQL

Usa sa labing hinungdanon nga mga desisyon nga gihimo sa usa ka developer mao ang database nga gamiton. Sulod sa daghang mga tuig, ang mga kapilian limitado sa lain-laing mga kapilian sa relational database nga nagsuporta sa Structured Query Language (SQL). Kini naglakip sa MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 ug daghan pa.

Sulod sa milabay nga 15 ka tuig, daghang mga bag-ong database ang nakasulod sa merkado ubos sa No-SQL nga pamaagi. Naglakip kini sa mga yawe nga kantidad nga tindahan sama sa Redis ug Amazon DynamoDB, lapad nga mga database sa kolum sama sa Cassandra ug HBase, mga tindahan sa dokumento sama sa MongoDB ug Couchbase, ug mga database sa graph ug mga search engine sama sa Elasticsearch ug Solr.

Niini nga artikulo, atong sulayan nga masabtan ang SQL ug NoSQL nga dili mosulod sa ilang gamit.
Dugang pa, maglingaw-lingaw mi sa dalan.

Pagpatin-aw sa SQL sa Lola

Lola, huna-hunaa nga dili lang ako ang imong apo. Naghigugmaay hinuon sila mama ug papa murag rabbit, naa silay 100 ka anak, unya 50 pa ang ilang gisagop.

Busa, gihigugma nimo kaming tanan ug dili nimo gusto nga kalimtan ang bisan kinsa sa among mga ngalan, adlawng natawhan, paborito nga lami sa ice cream, gidak-on sa sinina, libangan, ngalan sa kapikas, ngalan sa mga anak ug uban pang hinungdanon nga mga kamatuoran. Apan, atong atubangon kini. Ikaw 85 ka tuig ang panuigon ug ang maayo nga daan nga panumduman dili gyud kini mahimo.

Swerte, kay ako ang labing maalamon sa imong mga apo, makatabang ko. Mao nga mianhi ko sa imong balay, nagkuha ko og pipila ka mga palid sa papel ug gihangyo ko ikaw sa pagluto og pipila ka cookies sa dili pa kita magsugod.

Sa usa ka panid sa papel, naghimo kami usa ka lista nga gitawag nga "mga apo". Matag apo natala uban sa pipila ka mahinungdanon nga impormasyon mahitungod kaniya, lakip ang usa ka talagsaon nga numero nga karon nagpakita kon sa unsang paagi apo siya kay. Usab, alang sa kaayohan sa organisasyon, among gisulat ang mga gihinganlan nga mga hiyas sa ibabaw sa lista aron kanunay namong mahibal-an kung unsa nga impormasyon ang anaa sa listahan.

id
ngalan
adlaw nga natawhan
katapusan nga pagbisita
gidak-on sa sinina
paborito nga ice cream
gisagop

1
Jimmy
09-22-1992
09-01-2019
L
mint nga tsokolate
bakak nga mga

2
Jessica
07-21-1992
02-22-2018
M
Bato nga dalan
tinuod nga

…among ipadayon ang listahan!

Listahan sa mga apo

Pagkataudtaod, nasabtan nimo ang tanan ug hapit na kami mahuman sa lista! Bisan pa, molingi ka kanako ug moingon: "Nakalimot kami nga magdugang lugar alang sa mga kapikas, mga kalingawan, mga apo!" Apan dili, wala kami makalimot! Nagsunod pa kini ug nanginahanglan usa ka bag-ong panid sa papel.

Busa mikuha kog laing panid sa papel ug niini among gitawag ang listahan Mga kapikas. Gidugang namo pag-usab ang mga hiyas nga importante kanamo sa ibabaw sa listahan ug magsugod sa pagdugang sa mga laray.

id
apo_id
ngalan
adlaw nga natawhan

1
2
Juan
06-01-1988

2
9
Fernanda
03-05-1985

…daghang mga kapikas!

Listahan sa mga kapikas

Niini nga yugto, akong gipasabut sa akong lola nga kung gusto niya mahibal-an kung kinsa ang minyo kung kinsa, kinahanglan ra niya nga maparehas. id sa listahan mga apo с apo_id sa listahan sa mga kapikas.

Human sa usa ka dosena nga mga cookies, kinahanglan kong matulog. "Mahimo ka bang magpadayon, lola?" Molakaw ko aron matulog.

Mobalik ko sa pipila ka oras. Maayo ka, lola! Nindot tan-awon ang tanan gawas sa lista kalingawan. Adunay mga 1000 ka mga kalingawan sa listahan. Kadaghanan kanila nagbalikbalik; Unsay nahitabo?

apo_id
kalingawan

1
Biking

4
Biking

3
Biking

7
running

11
Biking

... nagpadayon kami!

Sorry, nakalimot ko sa pag-ingon! Gamit ang usa ka lista, masubay ra nimo kalingawan. Unya sa laing lista kinahanglan natong i-trace mga apokinsay nagbuhat ani kalingawan. Tawgon nato ni "Komon nga lista". Sa pagkakita nga dili ka ganahan niini, nabalaka ko ug mibalik sa list mode.

id
kalingawan

1
Biking

2
running

3
swimming

…daghang kalingawan!

Listahan sa mga kalingawan

Kung naa na namo ang among lista sa kalingawan, among gihimo ang among ikaduhang lista ug gitawag kini nga "Mga kalingawan sa mga apo".

apo_id
hobby_id

4
1

3
1

7
2

… dugang pa!

Kinatibuk-ang listahan sa mga hobby sa mga apo

Human niining tanan nga trabaho, si Lola karon adunay usa ka cool nga sistema sa panumduman aron masubay ang iyang tibuuk nga dako nga pamilya. Ug unya - aron mapadayon ako - gipangutana niya ang salamangka nga pangutana: "Diin ka nakakat-on sa pagbuhat niining tanan?"

Relasyonal nga mga database

Ang usa ka relational database usa ka set sa pormal nga gihulagway nga mga lamesa (sa among pananglitan, kini mga sheet) diin mahimo nimo ma-access. gihatag o kolektahon kini sa lainlaing mga paagi nga dili kinahanglan nga organisahon pag-usab ang mga lamesa Database. Adunay daghang lain-laing mga matang sa relational database, apan subo nga ang usa ka listahan sa usa ka piraso sa papel dili usa kanila.

Ang timaan sa labing inila nga relational database mao ang SQL (Structured Query Language) query language. Salamat kaniya, kon ibalhin ni Lola ang iyang memory system ngadto sa usa ka computer, dali siyang makakuha og mga tubag sa mga pangutana sama sa: "Kinsa ang wala mobisita kanako sa miaging tuig, minyo na ug walay mga kalingawan?"

Usa sa labing inila nga SQL database management system mao ang open source MySQL. Gipatuman kini sa panguna isip usa ka relational database management system (RDBMS) alang sa web-based software applications.

Pipila ka mahinungdanong bahin sa MySQL:

  • Kini nailhan kaayo, kaylap nga gigamit ug kaylap nga gisulayan.
  • Adunay daghang mga batid nga developer nga adunay kasinatian sa SQL ug relational database.
  • Ang datos gitipigan sa lainlaing mga lamesa, nga nagpasayon ​​sa pag-establisar sa mga relasyon gamit ang panguna ug langyaw nga mga yawe (mga identifier).
  • Sayon kini gamiton ug episyente, nga naghimo niini nga sulundon alang sa mga negosyo nga dagko ug gagmay.
  • Ang source code ubos sa mga termino sa GNU General Public License.

Karon kalimti TANAN.

Pagpatin-aw sa NoSQL sa lola

Lola, kami adunay usa ka dako nga pamilya. Siya adunay 150 ka apo! Daghan kanila minyo, adunay mga anak, mahilig sa usa ka butang ug uban pa. Sa imong edad, imposible nga mahinumduman ang tanan bahin kanatong tanan. Ang kinahanglan nimo usa ka sistema sa memorya!

Maayo na lang, ako dili Gusto ko nga makalimtan nimo ang akong adlaw nga natawhan ug paborito nga lami sa ice cream, makatabang ko. Maong nidagan ko sa pinaka duol nga tindahan, nagkuha ug notebook ug niuli sa inyong balay.

Ang una nakong lakang mao ang pagsulat og "Mga Apo" sa dagkong mga letra nga bold sa hapin sa akong notebook. Dayon akong i-flip sa unang pahina ug magsugod sa pagsulat sa tanan nga kinahanglan nimong hinumdoman mahitungod kanako. Pipila ka minuto ang milabay, ang panid ingon niini.

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

Я: “Morag andam na ang tanan!”
Lola: “Wait, komosta ang ubang mga apo?”
Я: "Oo nga. Dayon paggahin ug usa ka panid alang sa matag usa.”
Lola: “Kinahanglan ba nakong isulat ang tanang parehas nga impormasyon para sa tanan, sama sa akong gibuhat kanimo?”
Я: “Dili, kung gusto nimo. Ipakita nako."
Gikuha nako ang pluma sa akong lola, gibalit-ad nako ang panid ug gisulat dayon ang impormasyon bahin sa akong pinakagamay nga ig-agaw.

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

Sa matag higayon nga ang usa ka lola kinahanglan nga mahinumdom sa usa ka butang mahitungod sa usa sa iyang mga apo, siya kinahanglan lamang nga mo-navigate sa husto nga panid sa notebook sa iyang mga apo. Ang tanan nga kasayuran bahin kanila itago didto mismo sa ilang panid, nga dali niyang mabag-o ug ma-update.

Kung nahuman na ang tanan, gipangutana niya ang salamangka nga pangutana: "Diin ka nakakat-on sa pagbuhat niining tanan?"

Mga database sa NoSQL

Adunay daghan Mga database sa NoSQL (“dili lang SQL”). Sa among mga pananglitan, among gipakita database sa dokumento. Ang mga database sa NoSQL nagmodelo sa datos sa mga paagi nga dili iapil ang mga relasyon sa lamesa nga gigamit sa mga relational database. Kini nga mga database nahimong popular sa sayong bahin sa 2000s sa mga kompanya nga nanginahanglan cloud-based database clustering tungod sa ilang klaro nga scaling nga mga kinahanglanon (sama sa Facebook). Sa ingon nga mga aplikasyon, ang pagkamakanunayon sa datos dili kaayo hinungdanon kaysa sa pasundayag ug pagkadako.

Sa sinugdanan, ang mga database sa NoSQL sagad gigamit alang sa mga buluhaton sa pagdumala sa datos sa niche. Sa panguna, kung bahin sa mga aplikasyon sa web ug panganod, ang mga database sa NoSQL nagproseso ug nag-apod-apod sa daghang mga datos. Ang mga inhenyero sa NoSQL ganahan usab sa flexible data schema (o kulang niini) aron ang paspas nga pagbag-o posible sa mga aplikasyon nga gi-update.

Pangunang bahin sa NoSQL:

  • Labing flexible nga paagi sa pagtipig sa datos
  • Horizontal scaling ngadto sa clusters
  • Posible nga pagkasunodsunod kada pagpadayon/pagkaylap
  • Mga dokumento nga giila gamit ang talagsaong mga yawe

Detalyado nga pagtandi

Ang MySQL nanginahanglan usa ka gipiho ug istruktura nga schema.
Gitugotan ka sa NoSQL nga magtipig bisan unsang datos sa usa ka "dokumento".

Ang MySQL adunay dako nga komunidad.
Ang NoSQL adunay gamay ug paspas nga nagtubo nga komunidad.

Ang NoSQL dali nga sukdon.
Ang MySQL nanginahanglan dugang nga pagdumala.

Ang MySQL naggamit sa SQL, nga gigamit sa daghang matang sa mga database.
Ang NoSQL usa ka disenyo nga nakabase sa database nga adunay popular nga mga pagpatuman.

Ang MySQL naggamit ug standard nga query language (SQL).
Ang NoSQL wala mogamit ug standard nga pangutana nga pinulongan.

Ang MySQL adunay daghang maayo nga mga himan sa pagreport.
Ang NoSQL adunay daghang mga himan sa pagreport nga lisud i-standardize.

Ang MySQL mahimong magpakita sa mga isyu sa pasundayag alang sa dagkong datos.
Naghatag ang NoSQL og maayo kaayo nga pasundayag sa dagkong datos.

Mga hunahuna 8 base

Sa kompaniya 8 basediin ako nagtrabaho, naghatag kami usa ka workspace alang sa matag proyekto nga adunay Aurora MySQL relational database nga gi-host sa AWS. Samtang ang NoSQL usa ka lohikal nga pagpili kung ang imong aplikasyon nangayo ug taas nga performance ug scalability, kami nagtuo nga ang lig-on nga pagkaparehas sa datos nga gihatag sa usa ka DBMS hinungdanon kung magtukod mga aplikasyon sa SaaS ug uban pang software sa negosyo.

Alang sa mga startup ug developers nga nagtukod ug mga aplikasyon sa negosyo nga nanginahanglan sa pagtaho, transactional nga integridad, ug maayong pagkahubit nga mga modelo sa datos, ang pagpamuhunan sa mga relational database, sa among opinyon, ang husto nga pagpili.

Pagkat-on og dugang mahitungod sa pagpalambo sa Aurora, Serverless ug GraphQL sa 8base.com dinhi.

Source: www.habr.com

Idugang sa usa ka comment