Jinsi ya kuelezea bibi yako tofauti kati ya SQL na NoSQL

Jinsi ya kuelezea bibi yako tofauti kati ya SQL na NoSQL

Moja ya maamuzi muhimu zaidi ambayo msanidi hufanya ni hifadhidata gani ya kutumia. Kwa miaka mingi, chaguo zilipunguzwa kwa chaguo mbalimbali za hifadhidata za uhusiano ambazo ziliauni Lugha ya Maswali Iliyoundwa (SQL). Hizi ni pamoja na MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 na mengine mengi.

Katika kipindi cha miaka 15 iliyopita, hifadhidata nyingi mpya zimeingia sokoni chini ya mbinu ya No-SQL. Hizi ni pamoja na maduka ya thamani kuu kama Redis na Amazon DynamoDB, hifadhidata za safu wima pana kama Cassandra na HBase, maduka ya hati kama MongoDB na Couchbase, na hifadhidata za grafu na injini za utafutaji kama Elasticsearch na Solr.

Katika makala hii, tutajaribu kuelewa SQL na NoSQL bila kuingia katika utendaji wao.
Zaidi ya hayo, tutakuwa na furaha njiani.

Kuelezea SQL kwa Granny

Bibi, fikiria kuwa mimi sio mjukuu wako wa pekee. Badala yake, mama na baba walipendana kama sungura, walikuwa na watoto 100, kisha wakachukua wengine 50.

Kwa hivyo, unatupenda sote na hutaki kusahau majina yetu yoyote, siku za kuzaliwa, ladha za aiskrimu tunazopenda, saizi ya mavazi, mambo tunayopenda, majina ya wanandoa, majina ya watoto na mambo mengine muhimu sana. Hata hivyo, tukabiliane nayo. Una umri wa miaka 85 na kumbukumbu nzuri ya zamani haiwezi kushughulikia.

Kwa bahati nzuri, kwa kuwa mwenye akili zaidi kati ya wajukuu zako, ninaweza kukusaidia. Kwa hivyo nakuja nyumbani kwako, nachukua karatasi na nakuuliza uoka keki kabla hatujaanza.

Kwenye karatasi moja, tunatengeneza orodha inayoitwa "wajukuu". Kila mjukuu iliyorekodiwa na habari muhimu kumhusu, ikijumuisha nambari ya kipekee ambayo sasa itaonyesha jinsi gani mjukuu yeye ni. Pia, kwa ajili ya shirika, tunaandika sifa zilizotajwa juu ya orodha ili kila wakati tujue ni habari gani iliyo na orodha.

id
jina
siku ya kuzaliwa
ziara ya mwisho
ukubwa wa nguo
ice cream favorite
iliyopitishwa

1
Jimmy
09-22-1992
09-01-2019
L
chokoleti ya mint
uongo

2
Jessica
07-21-1992
02-22-2018
M
Barabara ya mawe
kweli

...tunaendelea na orodha!

Orodha ya wajukuu

Baada ya muda, unaelewa kila kitu na tunakaribia kumaliza orodha! Walakini, unanigeukia na kusema: "Tulisahau kuongeza nafasi kwa wenzi wa ndoa, vitu vya kupumzika, wajukuu!" Lakini hapana, hatujasahau! Hii inafuata zaidi na inahitaji karatasi mpya.

Kwa hiyo mimi huchota karatasi nyingine na juu yake tunaita orodha Wanandoa. Tunaongeza tena sifa ambazo ni muhimu kwetu juu ya orodha na kuanza kuongeza safu.

id
kitambulisho_cha_mjukuu
jina
siku ya kuzaliwa

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

…wanandoa zaidi!

Orodha ya wanandoa

Katika hatua hii, ninamuelezea bibi yangu kwamba ikiwa anataka kujua ni nani ameolewa na nani, basi anahitaji tu kufanana. id katika orodha wajukuu с kitambulisho_cha_mjukuu katika orodha ya wanandoa.

Baada ya vidakuzi kadhaa, ninahitaji kuchukua usingizi. "Unaweza kuendelea, bibi?" Ninaondoka kulala.

Nitarudi baada ya saa chache. Uko poa, bibi! Kila kitu kinaonekana kizuri isipokuwa kwa orodha hobby. Kuna vitu 1000 hivi kwenye orodha. Wengi wao ni wenye kurudia rudia; Nini kilitokea?

kitambulisho_cha_mjukuu
hobby

1
biking

4
biking

3
biking

7
mbio

11
biking

...tunaendelea!

Samahani, nilisahau kabisa kusema! Kwa kutumia orodha moja, unaweza tu kufuatilia hobby. Kisha katika orodha nyingine tunahitaji kufuatilia wajukuuwanaofanya hivi hobby. Sisi ni kwenda kuiita "Orodha ya kawaida". Kuona kwamba hupendi, ninapata wasiwasi na kurudi kwenye hali ya orodha.

id
hobby

1
biking

2
mbio

3
kuogelea

…mapenzi zaidi!

Orodha ya Hobbies

Mara tu tukiwa na orodha yetu ya hobby, tunaunda orodha yetu ya pili na kuiita "Hobbies za wajukuu'.

kitambulisho_cha_mjukuu
hobby_id

4
1

3
1

7
2

...zaidi!

Orodha ya jumla ya vitu vya kupendeza vya wajukuu

Baada ya kazi hii yote, Bibi sasa ana mfumo mzuri wa kumbukumbu wa kufuatilia familia yake kubwa ya kushangaza. Na kisha - kuniweka kwa muda mrefu - anauliza swali la uchawi: "Ulijifunza wapi kufanya haya yote?"

Hifadhidata za uhusiano

Hifadhidata ya uhusiano ni seti ya jedwali zilizoelezewa rasmi (katika mfano wetu, hizi ni laha) ambazo unaweza kufikia kupewa au kuzikusanya kwa njia mbalimbali bila kulazimika kupanga upya meza Hifadhidata. Kuna aina nyingi tofauti za hifadhidata za uhusiano, lakini kwa bahati mbaya orodha kwenye kipande cha karatasi sio mojawapo.

Alama mahususi ya hifadhidata maarufu zaidi za uhusiano ni lugha ya swala ya SQL (Lugha ya Maswali Iliyoundwa). Asante kwake, ikiwa Bibi atahamisha mfumo wake wa kumbukumbu kwa kompyuta, anaweza kupata majibu ya maswali kama vile: "Ni nani ambaye hakunitembelea mwaka jana, ameolewa na hana vitu vya kupendeza?"

Mojawapo ya mifumo maarufu ya usimamizi wa hifadhidata ya SQL ni chanzo wazi cha MySQL. Inatekelezwa kimsingi kama mfumo wa usimamizi wa hifadhidata wa uhusiano (RDBMS) kwa programu za programu zinazotegemea wavuti.

Baadhi ya vipengele muhimu vya MySQL:

  • Inajulikana sana, inatumika sana na imejaribiwa sana.
  • Kuna watengenezaji wengi wenye ujuzi ambao wana uzoefu na SQL na hifadhidata za uhusiano.
  • Data imehifadhiwa katika meza mbalimbali, ambayo inafanya kuwa rahisi kuanzisha mahusiano kwa kutumia funguo za msingi na za kigeni (vitambulisho).
  • Ni rahisi kutumia na ufanisi, na kuifanya kuwa bora kwa biashara kubwa na ndogo.
  • Msimbo wa chanzo uko chini ya masharti ya Leseni ya Jumla ya Umma ya GNU.

Sasa sahau Wote.

Kuelezea NoSQL kwa bibi

Bibi, tuna familia kubwa. Ana wajukuu 150! Wengi wao wameolewa, wana watoto, wanapenda kitu na kadhalika. Katika umri wako, haiwezekani kukumbuka kila kitu kuhusu sisi sote. Unachohitaji ni mfumo wa kumbukumbu!

Kwa bahati nzuri, I hakuna nikitaka usahau siku yangu ya kuzaliwa na ladha ninayopenda ya ice cream, naweza kukusaidia. Kwa hiyo ninakimbia kwenye duka la karibu, kuchukua daftari na kurudi nyumbani kwako.

Hatua ya kwanza ninayochukua ni kuandika "Wajukuu" kwa herufi kubwa nzito kwenye jalada la daftari langu. Kisha nigeukia ukurasa wa kwanza na kuanza kuandika kila kitu unachohitaji kukumbuka kunihusu. Dakika chache baadaye, ukurasa unaonekana kama hii.

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

Π―: "Inaonekana kila kitu kiko tayari!"
Bibi: β€œSubiri, vipi kuhusu wajukuu wengine?”
Π―: "Ndiyo hasa. Kisha tenga ukurasa mmoja kwa kila mmoja.”
Bibi: "Je, nitahitaji kuandika habari zote sawa kwa kila mtu, kama nilivyofanya kwako?"
Π―: β€œHapana, ikiwa tu unataka. Acha nionyeshe."
Nikinyakua kalamu ya nyanya yangu, nageuza ukurasa na kuandika haraka habari kuhusu binamu yangu ambaye sipendi sana.

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

Wakati wowote bibi anahitaji kukumbuka kitu kuhusu mmoja wa wajukuu zake, anahitaji tu kuelekea kwenye ukurasa unaofaa katika daftari la wajukuu zake. Taarifa zote kuwahusu zitahifadhiwa pale pale kwenye ukurasa wao, ambao anaweza kubadilisha na kusasisha haraka.

Wakati kila kitu kimefanywa, anauliza swali la uchawi: "Ulijifunza wapi kufanya haya yote?"

Hifadhidata za NoSQL

Kuna wengi Hifadhidata za NoSQL ("sio SQL tu"). Katika mifano yetu, tumeonyesha hifadhidata ya hati. Data ya mfano ya hifadhidata za NoSQL kwa njia ambazo hazijumuishi uhusiano wa jedwali unaotumika katika hifadhidata za uhusiano. Hifadhidata hizi zilipata umaarufu mwanzoni mwa miaka ya 2000 na kampuni zilizohitaji mkusanyiko wa hifadhidata kulingana na wingu kwa sababu ya mahitaji yao dhahiri ya kuongeza alama (kama vile Facebook). Katika programu kama hizi, uwiano wa data haukuwa muhimu sana kuliko utendakazi na upanuzi.

Hapo awali, hifadhidata za NoSQL zilitumiwa mara nyingi kwa kazi za usimamizi wa data. Kimsingi, linapokuja suala la matumizi ya wavuti na wingu, hifadhidata za NoSQL zilichakatwa na kusambaza idadi kubwa ya data. Wahandisi wa NoSQL pia walipenda schema ya data inayoweza kunyumbulika (au ukosefu wake) ili mabadiliko ya haraka yawezekane katika programu ambazo zilisasishwa.

Vipengele muhimu vya NoSQL:

  • Njia rahisi sana ya kuhifadhi data
  • Kuongeza mlalo kwa makundi
  • Mpangilio unaowezekana kwa kila kuendelea/eneo
  • Hati ambazo zinatambuliwa kwa kutumia funguo za kipekee

Ulinganisho wa kina

MySQL inahitaji schema iliyofafanuliwa na iliyoundwa.
NoSQL hukuruhusu kuhifadhi data yoyote kwenye "hati".

MySQL ina jamii kubwa.
NoSQL ina jumuiya ndogo na inayokua kwa kasi.

NoSQL ni rahisi kuongeza.
MySQL inahitaji usimamizi zaidi.

MySQL hutumia SQL, ambayo hutumiwa katika aina nyingi za hifadhidata.
NoSQL ni muundo msingi wa hifadhidata na utekelezaji maarufu.

MySQL hutumia lugha ya kawaida ya kuuliza (SQL).
NoSQL haitumii lugha ya kawaida ya kuuliza.

MySQL ina zana nyingi nzuri za kuripoti.
NoSQL ina zana kadhaa za kuripoti ambazo ni ngumu kusawazisha.

MySQL inaweza kuonyesha masuala ya utendaji kwa data kubwa.
NoSQL hutoa utendaji bora kwenye data kubwa.

Mawazo 8msingi

Katika kampuni 8 msingininapofanya kazi, tunatoa nafasi ya kazi kwa kila mradi na hifadhidata ya uhusiano ya Aurora MySQL inayopangishwa kwenye AWS. Ingawa NoSQL ni chaguo la kimantiki wakati programu yako inapohitaji utendakazi wa hali ya juu na uwazi, tunaamini kwamba uthabiti thabiti wa data unaotolewa na DBMS ni muhimu wakati wa kuunda programu za SaaS na programu nyingine za biashara.

Kwa wanaoanzisha na wasanidi programu wanaounda programu za biashara zinazohitaji kuripoti, uadilifu wa shughuli, na miundo ya data iliyobainishwa vyema, kuwekeza katika hifadhidata za uhusiano, kwa maoni yetu, ni chaguo sahihi.

Pata maelezo zaidi kuhusu kujiendeleza na Aurora, Serverless na GraphQL katika 8base.com hapa.

Chanzo: mapenzi.com

Kuongeza maoni