Kako svojoj baki objasniti razliku između SQL-a i NoSQL-a

Kako svojoj baki objasniti razliku između SQL-a i NoSQL-a

Jedna od najvažnijih odluka koju razvojni programer donosi jest koju će bazu podataka koristiti. Dugi niz godina opcije su bile ograničene na različite opcije relacijske baze podataka koje su podržavale Structured Query Language (SQL). To uključuje MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 i mnoge druge.

U proteklih 15 godina na tržištu su se pojavile mnoge nove No-SQL baze podataka. To uključuje pohranu ključ-vrijednosti kao što su Redis i Amazon DynamoDB, široke stupčaste baze podataka kao što su Cassandra i HBase, pohrane dokumenata kao što su MongoDB i Couchbase te baze podataka s grafikonima i tražilice kao što su Elasticsearch i Solr.

U ovom ćemo članku pokušati razumjeti SQL i NoSQL bez ulaženja u njihovu funkcionalnost.
Osim toga, malo ćemo se zabaviti u procesu.

Objašnjavanje SQL baki

Bako, zamisli da ti nisam jedini unuk. Umjesto toga, mama i tata voljeli su se kao zečevi, dobili 100 djece, a zatim usvojili još 50.

Dakle, volite nas sve i ne želite zaboraviti nijedno od naših imena, rođendana, omiljenih okusa sladoleda, veličina odjeće, hobija, imena supružnika, imena potomaka i drugih super važnih činjenica. Međutim, suočimo se s tim. Imaš 85 godina i dobro staro pamćenje jednostavno ne može podnijeti.

Srećom, budući da sam najpametniji od vaših unuka, mogu vam pomoći. Pa dođem kod tebe kući, izvadim nekoliko listova papira i zamolim te da ispečeš kolačiće prije nego što počnemo.

Na jednom listu papira napravimo popis pod nazivom "Unuci" Svaki nećak snimljen s nekim bitnim podacima o njemu, uključujući jedinstveni broj koji će sada pokazati koji unuk on je. Također, radi organizacije, imenovane atribute ispisujemo na vrhu liste kako bismo uvijek znali koje informacije sadrži lista.

id
ime
rođendan
posljednji posjet
veličina odjeće
omiljeni sladoled
usvojen

1
Jimmy
09-22-1992
09-01-2019
L
Mint čokolada
lažan

2
jessica
07-21-1992
02-22-2018
M
Stjenovita cesta
istinski

...nastavi popis!

Popis unuka

Nakon nekog vremena sve shvatite i skoro smo gotovi s popisom! Međutim, okrenete se prema meni i kažete: "Zaboravili smo dodati prostor za supružnike, hobije, unuke!" Ali ne, nismo zaboravili! Ovo slijedi dalje i zahtijeva novi list papira.

Pa izvučem još jedan papir i na njemu zovemo popis supružnici. Ponovno dodajemo atribute koji su nam važni na početak liste i počinjemo dodavati u redove.

id
ID_unuka
ime
rođendan

1
2
Jovan
06-01-1988

2
9
Fernanda
03-05-1985

...više supružnika!

Popis supružnika

U ovoj fazi objašnjavam svojoj baki da ako želi znati tko je s kim u braku, onda samo treba usporediti id na popisu unuci с ID_unuka u popisu supružnika.

Nakon nekoliko desetaka kolačića, trebam odspavati. “Možeš li nastaviti, bako?” Odoh odrijemati.

Vraćam se za nekoliko sati. Super si, bako! Sve izgleda super osim popisa hobi. Na popisu je oko 1000 hobija. Većina ih se ponavlja; Što se dogodilo?

ID_unuka
hobi

1
biciklizam

4
biciklizam

3
biciklizam

7
trčanje

11
biciklizam

...nastavimo!

Oprostite, potpuno sam zaboravio reći! Koristeći jedan popis, možete samo pratiti hobi. Zatim na drugom popisu koji trebamo pratiti unucikoji to rade hobi. Nazvat ćemo ga "Zajednički popis". Vidjevši da ti se ne sviđa, počinjem se brinuti i vraćam se na popis.

id
hobi

1
biciklizam

2
trčanje

3
plivanje

...više hobija!

Popis hobija

Nakon što imamo svoj popis hobija, napravimo naš drugi popis i nazovemo ga "Hobiji unuka".

ID_unuka
hobi_id

4
1

3
1

7
2

…više!

Opći popis hobija unuka

Nakon svog ovog posla, baka sada ima super memorijski sustav za praćenje svoje nevjerojatno velike obitelji. A onda - da me duže zadrži - postavlja čarobno pitanje: "Gdje si naučio sve to raditi?"

Relacijske baze podataka

Relacijska baza podataka skup je formalno opisanih tablica (u našem primjeru to su listovi) iz kojih možete pristupiti podaci ili ih sakupite na različite načine bez potrebe za reorganizacijom tablica Baza podataka. Postoji mnogo različitih vrsta relacijskih baza podataka, ali nažalost popis na komadu papira nije jedna od njih.

Posebna značajka najpopularnijih relacijskih baza podataka je jezik upita SQL (Structured Query Language). Zahvaljujući njemu, kada bi baka prebacila svoj memorijski sustav na računalo, mogla bi brzo dobiti odgovor na pitanja poput: "Tko me nije posjetio prošle godine, oženjen je i nema hobija?"

Jedan od najpopularnijih SQL sustava za upravljanje bazama podataka je MySQL otvorenog koda. Implementiran je prvenstveno kao sustav upravljanja relacijskom bazom podataka (RDBMS) za softverske aplikacije temeljene na webu.

Neke ključne značajke MySQL-a:

  • Prilično je poznat, naširoko korišten i temeljito ispitan.
  • Postoji mnogo kvalificiranih programera koji imaju iskustva u radu sa SQL i relacijskim bazama podataka.
  • Podaci se pohranjuju u različite tablice, što olakšava uspostavljanje odnosa pomoću primarnih i stranih ključeva (identifikatora).
  • Jednostavan je za korištenje i učinkovit, što ga čini idealnim za velika i mala poduzeća.
  • Izvorni kod je pod uvjetima GNU Opće javne licence.

Sad zaboravi SVE.

Objašnjavanje NoSQL-a baki

Bako, imamo veliku obitelj. U njemu je 150 unučadi! Mnogi od njih su u braku, imaju djecu, zanima ih nešto i tako dalje. U tvojim godinama nemoguće je zapamtiti sve o svima nama. Ono što vam treba je sustav memoriranja!

Na sreću, ja ne želim da zaboraviš moj rođendan i omiljeni okus sladoleda, mogu ti pomoći. Pa otrčim do najbliže trgovine, uzmem bilježnicu i vratim se kući.

Prvi korak koji poduzimam je da velikim masnim slovima napišem "Unuci" na koricama svoje bilježnice. Zatim okrećem prvu stranicu i počinjem pisati sve što trebate zapamtiti o meni. Nakon nekoliko minuta stranica izgleda otprilike ovako.

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

Я: “Čini se da je sve spremno!”
baka: “Čekaj, što je s ostalim unucima?”
Я: "Da točno. Zatim svakome dodijelimo stranicu.”
baka: "Hoću li za sve morati zapisivati ​​iste informacije kao što sam za vas?"
Я: “Ne, samo ako želiš. Pusti me da pokažem."
Uzimam bakinu olovku, okrećem stranicu i brzo zapisujem podatke o mojoj najmanje omiljenoj sestrični.

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

Kad god se baka treba prisjetiti nečega o nekom od svojih unuka, treba samo otići na pravu stranicu u bilježnici svog unuka. Sve informacije o njima bit će pohranjene upravo na njihovoj stranici, koje ona može brzo mijenjati i ažurirati.

Kada je sve gotovo, ona postavlja čarobno pitanje: “Gdje si naučio sve to raditi?”

NoSQL baze podataka

Postoje mnoge NoSQL baze podataka ("ne samo SQL"). U našim smo primjerima pokazali baza dokumenata. NoSQL baze podataka modeliraju podatke na načine koji eliminiraju odnose tablica koji se koriste u relacijskim bazama podataka. Ove su baze podataka postale popularne početkom 2000-ih među tvrtkama koje su zahtijevale klasteriranje baze podataka temeljeno na oblaku zbog svojih velikih zahtjeva za skaliranjem (npr. Facebook). U takvim je aplikacijama dosljednost podataka bila puno manje važna od izvedbe i skalabilnosti.

U početku su se NoSQL baze podataka često koristile za posebne zadatke upravljanja podacima. Uglavnom, kada su u pitanju web i cloud aplikacije, NoSQL baze podataka obrađivale su i distribuirale značajne količine podataka. NoSQL inženjerima također se svidjela fleksibilnost podatkovne sheme (ili njezin nedostatak) tako da su brze promjene bile moguće u nadogradivim aplikacijama.

Ključne značajke NoSQL-a:

  • Vrlo fleksibilan način pohrane podataka
  • Horizontalno skaliranje na klastere
  • Mogući redoslijed za postojanost/razmnožavanje
  • Dokumenti koji su identificirani pomoću jedinstvenih ključeva

Detaljna usporedba

MySQL zahtijeva definiranu i strukturiranu shemu.
NoSQL vam omogućuje spremanje bilo kojih podataka u "dokument".

MySQL podržava ogromna zajednica.
NoSQL ima malu i brzo rastuću zajednicu.

NoSQL je lako skalirati.
MySQL treba više upravljivosti.

MySQL koristi SQL koji se koristi u mnogim vrstama baza podataka.
NoSQL je baza podataka po dizajnu s popularnim implementacijama.

MySQL koristi standardni jezik upita (SQL).
NoSQL ne koristi standardni jezik upita.

MySQL ima mnogo sjajnih alata za izvješćivanje.
NoSQL ima nekoliko alata za izvješćivanje koje je teško standardizirati.

MySQL može imati problema s performansama za velike podatke.
NoSQL pruža izvrsne performanse na velikim podacima.

Misli 8baza

Tvrtka 8baza, gdje radim, radni prostor svakog projekta napajamo relacijskom bazom podataka Aurora MySQL koja se nalazi na AWS-u. Iako je NoSQL logičan izbor kada zahtjevi vaše aplikacije zahtijevaju visoku izvedbu i skalabilnost, vjerujemo da je snažna konzistentnost podataka koju pruža DBMS ključna pri izgradnji SaaS aplikacija i drugog poslovnog softvera.

Za startupe i programere koji grade poslovne aplikacije koje zahtijevaju izvješćivanje, integritet transakcija i dobro definirane podatkovne modele, ulaganje u relacijske baze podataka je, po našem mišljenju, pravi izbor.

Saznajte više o razvoju s Aurora, Serverless i GraphQL s 8base.com здесь.

Izvor: www.habr.com

Dodajte komentar