Sut i egluro i'ch mam-gu y gwahaniaeth rhwng SQL a NoSQL

Sut i egluro i'ch mam-gu y gwahaniaeth rhwng SQL a NoSQL

Un o'r penderfyniadau pwysicaf y mae datblygwr yn ei wneud yw pa gronfa ddata i'w defnyddio. Am flynyddoedd lawer, roedd yr opsiynau'n gyfyngedig i'r opsiynau cronfa ddata berthynol amrywiol a oedd yn cefnogi'r Iaith Ymholiad Strwythuredig (SQL). Mae'r rhain yn cynnwys MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 a llawer mwy.

Dros y 15 mlynedd diwethaf, mae llawer o gronfeydd data newydd wedi dod i mewn i'r farchnad o dan y dull No-SQL. Mae'r rhain yn cynnwys siopau gwerth allweddol fel Redis ac Amazon DynamoDB, cronfeydd data colofn eang fel Cassandra a HBase, storfeydd dogfennau fel MongoDB a Couchbase, a chronfeydd data graff a pheiriannau chwilio fel Elasticsearch a Solr.

Yn yr erthygl hon, byddwn yn ceisio deall SQL a NoSQL heb fynd i mewn i'w swyddogaeth.
Hefyd, byddwn yn cael ychydig o hwyl ar hyd y ffordd.

Esbonio SQL i Nain

Nain, dychmygwch nad fi yw eich unig ŵyr. Yn lle hynny, roedd mam a dad yn caru ei gilydd fel cwningod, roedd ganddyn nhw 100 o blant, yna fe wnaethon nhw fabwysiadu 50 arall.

Felly, rydych chi'n caru pob un ohonom ac nid ydych am anghofio unrhyw un o'n henwau, penblwyddi, hoff flasau hufen iâ, meintiau dillad, hobïau, enwau priod, enwau epil a ffeithiau hynod bwysig eraill. Fodd bynnag, gadewch i ni ei wynebu. Rydych chi'n 85 oed ac mae hen gof yn methu â'i drin.

Yn ffodus, fel y doethaf o'ch wyrion, gallaf helpu. Felly dwi'n dod i'ch tŷ, dwi'n tynnu rhai dalennau o bapur a gofynnaf ichi bobi rhai cwcis cyn i ni ddechrau.

Ar un ddalen o bapur, rydyn ni'n gwneud rhestr o'r enw "wyrion" . Pob wyr wedi'i gofnodi gyda rhywfaint o wybodaeth arwyddocaol amdano, gan gynnwys rhif unigryw a fydd nawr yn nodi sut wyr mae o. Hefyd, er mwyn trefniadaeth, rydym yn ysgrifennu priodoleddau a enwir ar frig y rhestr fel ein bod bob amser yn gwybod pa wybodaeth y mae'r rhestr yn ei chynnwys.

id
enw
pen-blwydd
ymweliad diwethaf
maint dillad
hoff hufen iâ
fabwysiadu

1
Jimmy
09-22-1992
09-01-2019
L
siocled mint
ffug

2
Jessica
07-21-1992
02-22-2018
M
Ffordd greigiog
yn wir

…rydym yn parhau â'r rhestr!

Rhestr o wyrion a wyresau

Ar ôl ychydig, rydych chi'n deall popeth ac rydyn ni bron â gorffen gyda'r rhestr! Fodd bynnag, rydych chi'n troi ataf a dweud: "Rydym wedi anghofio ychwanegu lle ar gyfer priod, hobïau, wyrion ac wyresau!" Ond na, nid ydym wedi anghofio! Mae hyn yn dilyn ymhellach ac mae angen tudalen newydd o bapur.

Felly dwi'n tynnu tudalen arall o bapur ac arno rydyn ni'n galw'r rhestr Priod. Unwaith eto, rydyn ni'n ychwanegu'r priodoleddau sy'n bwysig i ni at frig y rhestr ac yn dechrau ychwanegu rhesi.

id
wyres_id
enw
pen-blwydd

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

…mwy o briod!

Rhestr o briod

Ar y cam hwn, esboniaf i fy nain, os yw hi eisiau gwybod pwy sy'n briod â phwy, yna dim ond paru sydd ei angen arni. id yn y rhestr wyrion с wyres_id yn y rhestr o briod.

Ar ôl cwpl dwsin o gwcis, mae angen i mi gymryd nap. "Allwch chi barhau, mam-gu?" Rwy'n gadael i gymryd nap.

Rwy'n dychwelyd mewn ychydig oriau. Ti'n cwl, nain! Mae popeth yn edrych yn wych heblaw am y rhestr hobi. Mae tua 1000 o hobïau ar y rhestr. Mae'r rhan fwyaf ohonynt yn ailadroddus; Beth sydd wedi digwydd?

wyres_id
hobi

1
beicio

4
beicio

3
beicio

7
rhedeg

11
beicio

…rydym yn parhau!

Sori, nes i anghofio dweud yn llwyr! Gan ddefnyddio un rhestr, dim ond olrhain y gallwch chi hobi. Yna mewn rhestr arall mae angen i ni olrhain wyrionsy'n gwneud hyn hobi. Rydyn ni'n mynd i'w alw "Rhestr gyffredin". Gan weld nad ydych chi'n ei hoffi, rwy'n poeni ac yn mynd yn ôl i'r modd rhestr.

id
hobi

1
beicio

2
rhedeg

3
nofio

…mwy o hobïau!

Rhestr o hobïau

Unwaith y bydd gennym ein rhestr hobi, rydym yn creu ein hail restr a'i galw "hobïau wyrion'.

wyres_id
hobi_id

4
1

3
1

7
2

…mwy!

Rhestr gyffredinol o hobïau wyrion

Ar ôl yr holl waith hwn, mae gan Nain system cof cŵl bellach i gadw golwg ar ei theulu rhyfeddol o fawr. Ac yna - i gadw fi'n hirach - mae hi'n gofyn y cwestiwn hud: "Ble ddysgoch chi i wneud hyn i gyd?"

Cronfeydd data perthynol

Mae cronfa ddata berthynol yn set o dablau a ddisgrifir yn ffurfiol (yn ein hesiampl, dalennau yw'r rhain) y gallwch gael mynediad iddynt a roddir neu eu casglu mewn amrywiol ffyrdd heb orfod ad-drefnu y byrddau Cronfa Ddata. Mae yna lawer o wahanol fathau o gronfeydd data perthynol, ond yn anffodus nid yw rhestr ar ddarn o bapur yn un ohonynt.

Dilysnod y cronfeydd data perthynol mwyaf poblogaidd yw iaith ymholiad SQL (Structured Query Language). Diolch iddo, os yw Mam-gu yn trosglwyddo ei system cof i gyfrifiadur, gall hi gael atebion yn gyflym i gwestiynau fel: "Pwy na ymwelodd â mi y llynedd, sy'n briod ac nid oes ganddi unrhyw hobïau?"

Un o'r systemau rheoli cronfa ddata SQL mwyaf poblogaidd yw'r ffynhonnell agored MySQL. Fe'i gweithredir yn bennaf fel system rheoli cronfa ddata berthynol (RDBMS) ar gyfer cymwysiadau meddalwedd ar y we.

Rhai o nodweddion allweddol MySQL:

  • Mae'n weddol adnabyddus, yn cael ei ddefnyddio'n eang a'i brofi'n helaeth.
  • Mae yna lawer o ddatblygwyr medrus sydd â phrofiad o SQL a chronfeydd data perthynol.
  • Mae'r data'n cael ei storio mewn tablau amrywiol, sy'n ei gwneud hi'n hawdd sefydlu perthnasoedd gan ddefnyddio allweddi cynradd a thramor (dynodwyr).
  • Mae'n hawdd ei ddefnyddio ac yn effeithlon, gan ei wneud yn ddelfrydol ar gyfer busnesau bach a mawr.
  • Mae'r cod ffynhonnell o dan delerau Trwydded Gyhoeddus Gyffredinol GNU.

Nawr anghofio POB UN.

Esbonio NoSQL i nain

Nain, mae gennym ni deulu enfawr. Mae ganddi 150 o wyrion ac wyresau! Mae llawer ohonynt yn briod, mae ganddynt blant, yn hoff o rywbeth ac yn y blaen. Yn eich oedran chi, mae'n amhosib cofio popeth amdanom ni i gyd. Yr hyn sydd ei angen arnoch chi yw system cof!

Yn ffodus, dwi dim eisiau i chi anghofio fy mhenblwydd a hoff flas hufen iâ, gallaf helpu. Felly dwi'n rhedeg i'r siop agosaf, yn cymryd llyfr nodiadau ac yn dychwelyd i'ch tŷ.

Y cam cyntaf dwi'n ei gymryd yw ysgrifennu "Gor-wyrion" mewn llythrennau mawr trwm ar glawr fy llyfr nodiadau. Yna dwi'n troi i'r dudalen gyntaf a dechrau ysgrifennu popeth sydd angen i chi ei gofio amdanaf. Ychydig funudau yn ddiweddarach, mae'r dudalen yn edrych rhywbeth fel hyn.

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

Я: "Mae'n ymddangos bod popeth yn barod!"
Mamma: “Arhoswch, beth am weddill yr wyrion?”
Я: "Ie yn union. Yna dyrannwch un dudalen ar gyfer pob un.”
Mamma: “A fydd angen i mi ysgrifennu’r un wybodaeth i bawb, ag y gwnes i i chi?”
Я: “Na, dim ond os ydych chi eisiau. Gadewch i mi ddangos."
Wrth fachu beiro fy nain, rwy'n fflipio'r dudalen ac yn nodi gwybodaeth yn gyflym am fy nghefnder lleiaf.

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

Pryd bynnag y mae angen i nain gofio rhywbeth am un o'i hwyrion, dim ond llywio i'r dudalen gywir yn llyfr nodiadau ei hwyrion sydd angen iddi. Bydd yr holl wybodaeth amdanynt yn cael ei storio yno ar eu tudalen, y gall hi ei newid a'i diweddaru'n gyflym.

Pan fydd popeth wedi'i wneud, mae hi'n gofyn y cwestiwn hud: "Ble wnaethoch chi ddysgu gwneud hyn i gyd?"

Cronfeydd data NoSQL

Mae yna lawer Cronfeydd data NoSQL (“nid SQL yn unig”). Yn ein hesiamplau, yr ydym wedi dangos cronfa ddata dogfennau. Mae cronfeydd data NoSQL yn modelu data mewn ffyrdd sy'n eithrio'r perthnasoedd tabl a ddefnyddir mewn cronfeydd data perthynol. Daeth y cronfeydd data hyn yn boblogaidd yn gynnar yn y 2000au gyda chwmnïau yr oedd angen clystyru cronfeydd data yn y cwmwl arnynt oherwydd eu gofynion graddio penodol (fel Facebook). Mewn cymwysiadau o'r fath, roedd cysondeb data yn llawer llai pwysig na pherfformiad a scalability.

Yn y dechrau, defnyddiwyd cronfeydd data NoSQL yn aml ar gyfer tasgau rheoli data arbenigol. Yn y bôn, o ran cymwysiadau gwe a chymylau, roedd cronfeydd data NoSQL yn prosesu ac yn dosbarthu symiau sylweddol o ddata. Roedd peirianwyr NoSQL hefyd yn hoffi'r sgema data hyblyg (neu ddiffyg) fel bod newidiadau cyflym yn bosibl mewn cymwysiadau a oedd yn cael eu diweddaru.

Nodweddion allweddol NoSQL:

  • Ffordd hyblyg iawn o storio data
  • Graddio llorweddol i glystyrau
  • Dilyniant posibl fesul dyfalbarhad/lledaeniad
  • Dogfennau sy'n cael eu hadnabod gan ddefnyddio allweddi unigryw

Cymhariaeth fanwl

Mae MySQL angen sgema diffiniedig a strwythuredig.
Mae NoSQL yn caniatáu ichi storio unrhyw ddata mewn "dogfen".

Mae gan MySQL gymuned enfawr.
Mae gan NoSQL gymuned fach sy'n tyfu'n gyflym.

Mae NoSQL yn hawdd i'w raddfa.
Mae angen mwy o hylaw ar MySQL.

Mae MySQL yn defnyddio SQL, a ddefnyddir mewn sawl math o gronfeydd data.
Mae NoSQL yn ddyluniad cronfa ddata gyda gweithrediadau poblogaidd.

Mae MySQL yn defnyddio iaith ymholiad safonol (SQL).
Nid yw NoSQL yn defnyddio iaith ymholiad safonol.

Mae gan MySQL lawer o offer adrodd gwych.
Mae gan NoSQL nifer o offer adrodd sy'n anodd eu safoni.

Gall MySQL ddangos materion perfformiad ar gyfer data mawr.
Mae NoSQL yn darparu perfformiad rhagorol ar ddata mawr.

Meddyliau 8base

Yn y cwmni 8 sylfaenlle rwy'n gweithio, rydym yn darparu man gwaith ar gyfer pob prosiect gyda chronfa ddata berthynol Aurora MySQL wedi'i chynnal ar AWS. Er bod NoSQL yn ddewis rhesymegol pan fo'ch cais yn gofyn am berfformiad uchel a graddadwyedd, credwn fod y cysondeb data cryf a ddarperir gan DBMS yn hanfodol wrth adeiladu cymwysiadau SaaS a meddalwedd busnes arall.

Ar gyfer busnesau newydd a datblygwyr sy'n adeiladu cymwysiadau busnes sy'n gofyn am adrodd, cywirdeb trafodion, a modelau data wedi'u diffinio'n dda, buddsoddi mewn cronfeydd data perthynol, yn ein barn ni, yw'r dewis cywir.

Dysgwch fwy am ddatblygu gydag Aurora, Serverless a GraphQL yn 8base.com yma.

Ffynhonnell: hab.com

Ychwanegu sylw