Yuav piav qhia qhov txawv ntawm SQL thiab NoSQL li cas rau koj tus pog

Yuav piav qhia qhov txawv ntawm SQL thiab NoSQL li cas rau koj tus pog

Ib qho kev txiav txim siab tseem ceeb tshaj plaws uas tus tsim tawm ua yog cov ntaub ntawv twg siv. Tau ntau xyoo, cov kev xaiv tau txwv rau ntau yam kev sib raug zoo database xaiv uas txhawb nqa Cov Lus Nug Lus Nug (SQL). Cov no suav nrog MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 thiab ntau lwm tus.

Tshaj li 15 xyoo dhau los, ntau qhov tshiab No-SQL databases tau tshwm sim hauv khw. Cov no suav nrog cov khw muag khoom tseem ceeb xws li Redis thiab Amazon DynamoDB, cov ntaub ntawv dav dav xws li Cassandra thiab HBase, cov khw muag ntaub ntawv xws li MongoDB thiab Couchbase, thiab daim duab databases thiab kev tshawb fawb xyaw xws li Elasticsearch thiab Solr.

Hauv tsab xov xwm no peb yuav sim nkag siab SQL thiab NoSQL yam tsis tau nkag mus rau hauv lawv txoj haujlwm.
Ntxiv rau, peb yuav muaj kev lom zem me ntsis hauv cov txheej txheem.

Piav SQL rau pog

Yawg, xav txog tias kuv tsis yog koj tus tub xeeb ntxwv xwb. Es tsis txhob, niam thiab txiv hlub ib leeg ib yam li luav, muaj 100 tus menyuam, ces saws 50 ntxiv.

Yog li, koj hlub peb txhua tus thiab tsis xav hnov ​​​​qab peb lub npe, hnub yug, nyiam dej khov tsw qab, qhov ntau thiab tsawg ntawm cov khaub ncaws, kev nyiam ua, tus txij nkawm lub npe, cov npe menyuam yaus thiab lwm qhov tseem ceeb tshaj plaws. Txawm li cas los xij, cia peb fim nws. Koj muaj 85 xyoo thiab nco qub zoo xwb tsis tuaj yeem tiv taus.

Hmoov zoo, ua tus ntse tshaj ntawm koj cov xeeb ntxwv, kuv tuaj yeem pab tau. Yog li kuv tuaj rau koj lub tsev, muab ob peb daim ntawv thiab hais kom koj ci ib co ncuav qab zib ua ntej peb pib.

Ntawm ib daim ntawv peb ua ib daim ntawv hu ua "Cov xeeb ntxwv" Txhua tus tub xeeb ntxwv sau nrog qee cov ntaub ntawv tseem ceeb txog nws, suav nrog tus lej tshwj xeeb uas tam sim no yuav qhia qhov twg tub xeeb ntxwv nws yog. Tsis tas li ntawd, rau lub koom haum, peb sau tawm cov npe uas muaj npe nyob rau saum toj ntawm daim ntawv teev npe kom peb ib txwm paub cov ntaub ntawv hauv daim ntawv teev npe.

id
lub npe
hnub yug
zaum kawg
khaub ncaws loj
nyiam ice cream
saws

1
Jimmy
09-22-1992
09-01-2019
L
Mint chocolate
cuav

2
Jessica
07-21-1992
02-22-2018
M
Rocky txoj kev
muaj tseeb

... txuas ntxiv cov npe!

Daim ntawv teev cov xeeb ntxwv

Tom qab ib pliag koj xam nws tag nrho thiab peb yuav luag tiav nrog cov npe! Txawm li cas los xij, koj tig los rau kuv thiab hais tias: "Peb tsis nco qab ntxiv qhov chaw rau cov txij nkawm, kev nyiam ua, cov xeeb ntxwv!" Tab sis tsis yog, peb tsis tau hnov ​​qab! Qhov no ua raws li txuas ntxiv thiab xav tau ib daim ntawv tshiab.

Yog li kuv rub tawm lwm daim ntawv thiab ntawm nws peb hu rau daim ntawv Cov txij nkawm. Peb rov ntxiv cov cwj pwm tseem ceeb rau peb rau qhov pib ntawm daim ntawv teev npe thiab pib ntxiv rau hauv kab.

id
tus xeeb ntxwv_id
lub npe
hnub yug

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

...ntau tus txij nkawm!

Daim ntawv teev cov txij nkawm

Nyob rau theem no, kuv piav qhia rau kuv pog tias yog nws xav paub tias leej twg yuav nrog leej twg, ces nws tsuas yog xav muab piv id hauv daim ntawv cov xeeb ntxwv с tus xeeb ntxwv_id nyob rau hauv daim ntawv teev cov txij nkawm.

Tom qab ob peb lub ncuav qab zib, kuv xav tau pw tsaug zog. "Koj puas tuaj yeem txuas ntxiv, pog?" Kuv tabtom tawm mus pw.

Kuv yuav rov qab ob peb teev. Koj nyob nraum txias, pog! Txhua yam zoo nkaus li zoo tshwj tsis yog daim ntawv teev npe hobby. Muaj txog 1000 yam haujlwm nyiam hauv daim ntawv teev npe. Lawv feem ntau yog rov ua dua; Muaj dab tsi tshwm sim?

tus xeeb ntxwv_id
hobby

1
vab

4
vab

3
vab

7
khiav

11
vab

... cia peb mus ntxiv!

Thov txim, kuv tsis nco qab hais kiag li! Siv ib daim ntawv teev npe, koj tuaj yeem taug qab xwb hobby. Tom qab ntawd hauv lwm daim ntawv peb yuav tsum taug qab cov xeeb ntxwvleej twg ua li no hobby. Peb yuav hu nws "Common lis". Pom tias koj tsis nyiam nws, kuv pib txhawj xeeb thiab rov qab mus rau hom npe.

id
hobby

1
vab

2
khiav

3
ua luam dej

... ntau yam nyiam ua!

Daim ntawv teev cov nyiam nyiam

Thaum peb muaj peb cov npe nyiam, peb tsim peb daim ntawv thib ob thiab hu nws "Kev nyiam ntawm cov xeeb ntxwv".

tus xeeb ntxwv_id
hobby_id

4
1

3
1

7
2

… ntxiv!

Cov npe ntawm cov xeeb ntxwv nyiam nyiam

Tom qab tag nrho cov haujlwm no, Yawg tam sim no muaj lub cim xeeb txias rau kev taug qab nws tsev neeg loj heev. Thiab tom qab ntawd - kom kuv nyob ntev dua - nws nug cov lus nug khawv koob: "Koj tau kawm ua txhua yam no nyob qhov twg?"

Relational Databases

Cov ntaub ntawv sib raug zoo yog ib txheej ntawm cov lus piav qhia (hauv peb qhov piv txwv no yog cov ntawv) uas koj tuaj yeem nkag mus muab los yog sau lawv nyob rau hauv ntau txoj kev yam tsis tas yuav reorganize lub rooj Database. Muaj ntau ntau hom kev sib raug zoo databases, tab sis hmoov tsis ib daim ntawv teev npe ntawm ib daim ntawv tsis yog ib qho ntawm lawv.

Ib qho tshwj xeeb ntawm cov ntaub ntawv sib raug zoo tshaj plaws yog cov lus nug SQL (Structured Query Language). Ua tsaug rau nws, yog tias pog hloov nws lub cim xeeb rau hauv lub computer, nws tuaj yeem tau txais cov lus teb rau cov lus nug xws li: "Leej twg tsis tuaj xyuas kuv xyoo tas los, tau sib yuav thiab tsis muaj kev nyiam ua?"

Ib qho nrov tshaj plaws SQL database tswj systems yog qhov qhib MySQL. Nws yog siv feem ntau raws li kev sib raug zoo database tswj system (RDBMS) rau web-based software applications.

Qee qhov tseem ceeb ntawm MySQL:

  • Nws yog qhov paub zoo heev, siv dav thiab kuaj kom zoo.
  • Muaj ntau tus tsim nyog tsim nyog uas muaj kev paub ua haujlwm nrog SQL thiab kev sib raug zoo databases.
  • Cov ntaub ntawv khaws cia rau hauv ntau lub rooj, uas ua rau nws yooj yim los tsim kev sib raug zoo siv cov yuam sij tseem ceeb thiab txawv teb chaws (tus cim).
  • Nws yog ib qho yooj yim mus use thiab zoo, ua rau nws zoo tagnrho rau cov lag luam loj thiab me.
  • Lub hauv paus code yog nyob rau hauv cov nqe lus ntawm GNU General Public License.

Tam sim no tsis nco qab lawm Tag nrho.

Piav NoSQL rau pog

Yawg, peb muaj tsev neeg loj. Nws muaj 150 tus xeeb ntxwv! Coob leej ntau tus tau sib yuav, muaj menyuam, nyiam ib yam dab tsi, thiab lwm yam. Thaum koj muaj hnub nyoog nws tsis tuaj yeem nco ntsoov txhua yam txog peb txhua tus. Dab tsi koj xav tau yog lub cim cim!

Hmoov zoo, kuv tsis xav kom koj tsis nco qab kuv lub hnub yug thiab nyiam tsw ntawm ice cream, kuv pab tau. Yog li ntawd kuv khiav mus rau lub khw ze tshaj plaws, nqa ib phau ntawv thiab rov qab mus rau koj lub tsev.

Thawj kauj ruam uas kuv ua yog sau "Cov xeeb ntxwv" rau hauv cov ntawv loj loj ntawm lub hau ntawm kuv phau ntawv. Tom qab ntawd kuv tig mus rau thawj nplooj ntawv thiab pib sau txhua yam koj yuav tsum nco ntsoov txog kuv. Tom qab ob peb feeb, nplooj ntawv zoo li no.

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

Π―: "Nws zoo li txhua yam yog npaj txhij!"
Niam tais: "Tos, ua li cas txog lwm tus xeeb ntxwv?"
Π―: "Yog lawm. Tom qab ntawd peb faib ib nplooj ntawv rau txhua tus. "
Niam tais: "Kuv puas yuav tau sau ib yam ntaub ntawv rau txhua tus zoo li kuv tau ua rau koj?"
Π―: β€œTsis yog, tsuas yog koj xav tau. Cia kuv qhia."
Noj kuv pog tus cwj mem, kuv tig nplooj ntawv sai sai sau cov ntaub ntawv hais txog kuv tus npawg nyiam tshaj plaws.

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

Thaum twg niam tais yuav tsum nco ntsoov ib yam dab tsi txog ib tug ntawm nws cov xeeb ntxwv, nws tsuas yog yuav tsum mus rau sab xis nyob rau hauv nws cov xeeb ntxwv phau ntawv. Txhua cov ntaub ntawv hais txog lawv yuav raug muab khaws cia rau ntawm lawv nplooj ntawv, uas nws tuaj yeem hloov pauv sai sai.

Thaum txhua yam ua tiav, nws nug cov lus nug khawv koob: "Koj kawm ua txhua yam no nyob qhov twg?"

NoSQL Databases

Muaj ntau NoSQL databases ("tsis yog SQL xwb"). Hauv peb cov piv txwv peb tau pom cov ntaub ntawv database. NoSQL databases qauv cov ntaub ntawv nyob rau hauv txoj kev uas tshem tawm cov rooj sib raug zoo siv nyob rau hauv relational databases. Cov databases no tau nrov nyob rau hauv thaum ntxov 2000s ntawm cov tuam txhab uas yuav tsum tau huab-raws li database clustering vim lawv sheer scaling yuav tsum (xws li Facebook). Hauv cov ntawv thov no, cov ntaub ntawv sib xws yog qhov tseem ceeb tsawg dua li kev ua haujlwm thiab kev ua kom muaj peev xwm.

Thaum pib, NoSQL databases feem ntau siv rau kev tswj cov ntaub ntawv niche. Yeej, thaum nws tuaj rau web thiab huab kev siv, NoSQL databases ua tiav thiab faib cov ntaub ntawv tseem ceeb. NoSQL engineers kuj nyiam qhov hloov pauv ntawm cov ntaub ntawv schema (lossis tsis muaj) kom cov kev hloov pauv sai sai hauv cov ntawv thov kho dua tshiab.

Cov yam ntxwv tseem ceeb ntawm NoSQL:

  • Ib txoj hauv kev yooj yim heev los khaws cov ntaub ntawv
  • Kab rov tav scaling rau pawg
  • Ua tau ib ntus rau persistence/propagation
  • Cov ntaub ntawv uas raug txheeb xyuas siv cov yuam sij tshwj xeeb

Kev sib piv ntxaws

MySQL xav tau ib qho kev txiav txim siab thiab tsim qauv.
NoSQL tso cai rau koj khaws cov ntaub ntawv hauv "cov ntaub ntawv".

MySQL tau txais kev txhawb nqa los ntawm cov zej zog loj.
NoSQL muaj lub zej zog me me thiab loj hlob sai.

NoSQL yooj yim rau scale.
MySQL xav tau kev tswj hwm ntau dua.

MySQL siv SQL, uas yog siv ntau hom databases.
NoSQL yog database los ntawm kev tsim nrog kev siv nrov.

MySQL siv cov lus nug tus qauv (SQL).
NoSQL tsis siv cov lus nug tus qauv.

MySQL muaj ntau cov cuab yeej tshaj tawm zoo.
NoSQL muaj ntau cov cuab yeej tshaj tawm uas nyuaj rau tus qauv.

MySQL tej zaum yuav muaj teeb meem kev ua haujlwm rau cov ntaub ntawv loj.
NoSQL muab kev ua tau zoo ntawm cov ntaub ntawv loj.

Kev xav 8 puag

Nyob rau hauv lub tuam txhab 8 XNUMX baz, qhov twg kuv ua haujlwm, peb lub zog txhua qhov chaw ua haujlwm nrog Aurora MySQL cov ntaub ntawv sib raug zoo tuav ntawm AWS. Thaum NoSQL yog qhov kev xaiv muaj txiaj ntsig thaum koj daim ntawv thov yuav tsum muaj kev ua haujlwm siab thiab muaj peev xwm, peb ntseeg tias cov ntaub ntawv muaj zog sib xws los ntawm DBMS yog qhov tseem ceeb thaum tsim SaaS daim ntawv thov thiab lwm yam lag luam software.

Rau cov pib lag luam thiab cov neeg tsim khoom tsim cov ntawv thov kev lag luam uas xav tau kev tshaj tawm, kev ua lag luam ncaj ncees, thiab cov qauv ntaub ntawv zoo, kev nqis peev hauv kev sib raug zoo databases yog, hauv peb lub tswv yim, txoj kev xaiv.

Kawm ntxiv txog kev txhim kho nrog Aurora, Serverless thiab GraphQL nrog 8base.com no.

Tau qhov twg los: www.hab.com

Ntxiv ib saib