Ki jan yo eksplike grann ou diferans ki genyen ant SQL ak NoSQL

Ki jan yo eksplike grann ou diferans ki genyen ant SQL ak NoSQL

Youn nan desizyon ki pi enpòtan yon pwomotè fè se ki baz done yo itilize. Pandan plizyè ane, opsyon yo te limite a plizyè opsyon baz done relasyon ki sipòte langaj rechèch estriktire (SQL). Men sa yo enkli MS SQL sèvè, Oracle, MySQL, PostgreSQL, DB2 ak anpil plis.

Pandan 15 ane ki sot pase yo, anpil nouvo baz done te antre nan mache a anba apwòch No-SQL. Men sa yo enkli magazen kle-valè tankou Redis ak Amazon DynamoDB, baz done kolòn gwo tankou Cassandra ak HBase, magazen dokiman tankou MongoDB ak Couchbase, ak baz done graf ak motè rechèch tankou Elasticsearch ak Solr.

Nan atik sa a, nou pral eseye konprann SQL ak NoSQL san yo pa antre nan fonksyonalite yo.
Anplis, nou pral gen kèk plezi sou wout la.

Esplike SQL Granmè

Granmè, imajine mwen pa sèl pitit pitit ou. Olye de sa, manman ak papa te renmen youn lòt tankou lapen, yo te gen 100 timoun, Lè sa a, yo te adopte 50 plis.

Se konsa, ou renmen nou tout epi ou pa vle bliye nenpòt nan non nou yo, anivèsè nesans, gou krèm glase pi renmen, gwosè rad, pastan, non mari oswa madanm, non pitit ak lòt reyalite super enpòtan. Sepandan, an n fè fas a li. Ou gen 85 ane epi ou gen bon memwa jis pa ka jere li.

Erezman, se pi entelijan nan pitit pitit ou yo, mwen ka ede. Se konsa, mwen vin lakay ou, mwen pran kèk fèy papye epi mwen mande ou kwit kèk bonbon anvan nou kòmanse.

Sou yon fèy papye, nou fè yon lis ki rele "pitit pitit". Chak pitit pitit anrejistre ak kèk enfòmasyon enpòtan sou li, ki gen ladan yon nimewo inik ki pral kounye a endike ki jan pitit pitit li ye. Epitou, pou dedomajman pou òganizasyon an, nou ekri non atribi yo nan tèt lis la pou nou toujou konnen ki enfòmasyon lis la genyen.

id
File
anivèsè nesans
dènye vizit
gwosè rad
pi renmen krèm glase
te adopte

1
Jimmy
09-22-1992
09-01-2019
L
chokola mant
fo

2
Jessica
07-21-1992
02-22-2018
M
Wout Rocky
vrè

…nou kontinye lis la!

Lis pitit pitit

Apre yon ti tan, ou konprann tout bagay epi nou prèske fini ak lis la! Sepandan, ou tounen vin jwenn mwen epi di: "Nou bliye ajoute espas pou mari oswa madanm, pastan, pitit pitit!" Men non, nou pa bliye! Sa a swiv pi lwen epi li mande pou yon nouvo fèy papye.

Se konsa, mwen rale yon lòt fèy papye epi sou li nou rele lis la Konjwen. Nou ajoute ankò atribi ki enpòtan pou nou nan tèt lis la epi kòmanse ajoute nan ranje.

id
pititchild_id
File
anivèsè nesans

1
2
Jan
06-01-1988

2
9
Fernanda
03-05-1985

...plis mari oswa madanm!

Lis mari oswa madanm

Nan etap sa a, mwen eksplike grann mwen ke si li vle konnen ki moun ki marye ak ki moun, Lè sa a, li sèlman bezwen matche ak. id nan lis la pitit pitit с pititchild_id nan lis mari oswa madanm.

Apre yon douzèn koup bonbon, mwen bezwen fè yon ti dòmi. "Èske ou ka kontinye, granmè?" Mwen prale fè yon ti dòmi.

Mwen pral retounen nan kèk èdtan. Ou fre, granmè! Tout sanble gwo eksepte pou lis la plezi. Gen apeprè 1000 pastan sou lis la. Pifò nan yo se repete; Sa ki te pase?

pititchild_id
plezi

1
bisiklèt

4
bisiklèt

3
bisiklèt

7
kouri

11
bisiklèt

…nou kontinye!

Padon, mwen konplètman bliye di! Sèvi ak yon sèl lis, ou ka sèlman swiv plezi. Lè sa a, nan yon lòt lis nou bezwen trase pitit pititki moun ki ap fè sa plezi. Nou pral rele li "Lis komen". Wè ke ou pa renmen li, mwen vin enkyete epi retounen nan mòd lis.

id
plezi

1
bisiklèt

2
kouri

3
naje

…plis pastan!

Lis pastan

Yon fwa nou gen lis plezi nou an, nou kreye dezyèm lis nou an epi rele li "Pastan pitit pitit yo'.

pititchild_id
hobby_id

4
1

3
1

7
2

…plis!

Lis jeneral pastan pitit pitit yo

Apre tout travay sa a, granmè kounye a gen yon sistèm memwa fre pou kenbe tras tout fanmi li etonan gwo. Lè sa a - pou kenbe m 'pi lontan - li poze kesyon majik la: "Ki kote ou te aprann fè tout bagay sa yo?"

Baz done relasyon

Yon baz done relasyon se yon seri tab ki dekri fòmèlman (nan egzanp nou an, sa yo se fèy) kote ou ka jwenn aksè. bay yo oswa kolekte yo nan divès fason san yo pa gen reòganize tab yo Baz done. Gen anpil diferan kalite baz done relasyon, men malerezman yon lis sou yon moso papye se pa youn nan yo.

Karakteristik baz done relasyon ki pi popilè yo se lang rekèt SQL (Structured Query Language). Gras a li, si granmè transfere sistèm memwa li nan yon òdinatè, li ka byen vit jwenn repons pou kesyon tankou: "Kiyès ki pa t vizite m ane pase a, ki marye epi ki pa gen okenn pastan?"

Youn nan sistèm jesyon baz done SQL ki pi popilè se MySQL sous louvri. Li aplike prensipalman kòm yon sistèm jesyon baz done relasyon (RDBMS) pou aplikasyon lojisyèl ki baze sou entènèt.

Kèk karakteristik kle nan MySQL:

  • Li se jistis byen li te ye, lajman itilize ak anpil teste.
  • Gen anpil devlopè kalifye ki gen eksperyans ak SQL ak baz done relasyon.
  • Done yo estoke nan plizyè tab, sa ki fè li fasil pou etabli relasyon lè l sèvi avèk kle prensipal ak etranje (idantifye).
  • Li fasil pou itilize ak efikas, sa ki fè li ideyal pou biznis gwo ak ti.
  • Kòd sous la anba kondisyon GNU General Public License.

Koulye a, bliye TOUT.

Eksplike NoSQL bay granmè

Granmè, nou gen yon gwo fanmi. Li gen 150 pitit pitit! Anpil nan yo marye, gen timoun, yo renmen yon bagay ak sou sa. Nan laj ou, li enposib sonje tout bagay sou nou tout. Sa ou bezwen se yon sistèm memwa!

Erezman, mwen pa gen okenn vle ou bliye anivèsè nesans mwen ak gou pi renmen nan krèm glase, mwen ka ede. Se konsa, mwen kouri nan magazen ki pi pre a, pran yon kaye epi retounen lakay ou.

Premye etap mwen fè se ekri "Grandpitits" an gwo lèt fonse sou kouvèti kaye mwen an. Lè sa a, mwen baskile nan premye paj la epi kòmanse ekri tout sa ou bezwen sonje sou mwen. Kèk minit apre, paj la sanble yon bagay tankou sa a.

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

Я: "Li sanble tout bagay pare!"
Grandma: "Tann, e rès pitit pitit yo?"
Я: "Wi egzakteman. Lè sa a, bay yon paj pou chak."
Grandma: "Èske m ap bezwen ekri tout enfòmasyon pou tout moun, menm jan mwen te fè pou ou?"
Я: "Non, sèlman si ou vle. Kite m montre."
Lè m pwan plim grann mwen an, mwen vire paj la epi byen vit note enfòmasyon sou kouzen mwen pi renmen an.

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

Chak fwa yon grann bezwen sonje yon bagay sou youn nan pitit pitit li yo, li sèlman bezwen navige nan paj dwat la nan kaye pitit pitit li yo. Tout enfòmasyon sou yo pral estoke jis la sou paj yo, ki li ka byen vit chanje ak mete ajou.

Lè tout bagay fini, li poze kesyon majik la: "Ki kote ou te aprann fè tout bagay sa yo?"

NoSQL baz done

Gen anpil NoSQL baz done ("pa sèlman SQL"). Nan egzanp nou yo, nou te montre baz done dokiman yo. NoSQL baz done modèl done nan fason ki eskli relasyon tab yo itilize nan baz done relasyon yo. Baz done sa yo te vin popilè nan kòmansman ane 2000 yo ak konpayi ki te bezwen gwoupman baz done ki baze sou nwaj akòz kondisyon eksplisit dekale yo (tankou Facebook). Nan aplikasyon sa yo, konsistans done yo te pi mwens enpòtan pase pèfòmans ak évolutivité.

Nan kòmansman an, baz done NoSQL yo te souvan itilize pou travay jesyon done nich yo. Fondamantalman, lè li te rive nan aplikasyon pou entènèt ak nwaj, baz done NoSQL trete ak distribye kantite siyifikatif nan done. Enjenyè NoSQL yo te renmen tou chema done fleksib (oswa mank de li) pou chanjman rapid yo te posib nan aplikasyon ki te mete ajou.

Karakteristik kle nan NoSQL:

  • Trè fleksib fason yo estoke done
  • Echèl orizontal nan grap
  • Sekans posib pou chak pèsistans / gaye
  • Dokiman ke yo idantifye lè l sèvi avèk kle inik

Konparezon detaye

MySQL mande pou yon chema defini ak estriktire.
NoSQL pèmèt ou estoke nenpòt done nan yon "dokiman".

MySQL gen yon gwo kominote.
NoSQL gen yon ti kominote k ap grandi rapidman.

NoSQL fasil pou echèl.
MySQL bezwen plis jere.

MySQL itilize SQL, ki itilize nan plizyè kalite baz done.
NoSQL se yon konsepsyon ki baze sou baz done ak aplikasyon popilè.

MySQL itilize yon lang rechèch estanda (SQL).
NoSQL pa sèvi ak yon lang rekèt estanda.

MySQL gen anpil gwo zouti rapò.
NoSQL gen plizyè zouti rapò ki difisil pou estandadize.

MySQL ka montre pwoblèm pèfòmans pou gwo done.
NoSQL bay pèfòmans ekselan sou done gwo.

Panse 8base

Konpayi an 8bazkote mwen travay, nou bay yon espas travay pou chak pwojè ak yon baz done relasyon Aurora MySQL ki anime sou AWS. Pandan ke NoSQL se yon chwa ki lojik lè aplikasyon w lan mande pèfòmans segondè ak évolutivité, nou kwè ke konsistans done solid yon DBMS bay esansyèl lè w ap bati aplikasyon SaaS ak lòt lojisyèl biznis.

Pou demaraj ak devlopè ki bati aplikasyon biznis ki mande rapò, entegrite tranzaksyon, ak modèl done byen defini, envesti nan baz done relasyon se, nan opinyon nou, bon chwa.

Aprann plis sou devlopman ak Aurora, Serverless ak GraphQL nan 8base.com isit la.

Sous: www.habr.com

Add nouvo kòmantè