Kumaha ngajelaskeun ka nini anjeun bédana antara SQL sareng NoSQL

Kumaha ngajelaskeun ka nini anjeun bédana antara SQL sareng NoSQL

Salah sahiji kaputusan anu paling penting anu dilakukeun ku pamekar nyaéta database mana anu dianggo. Mangtaun-taun, pilihan dugi ka sababaraha pilihan database relasional anu ngadukung Structured Query Language (SQL). Ieu kalebet MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 sareng seueur deui.

Sapanjang 15 taun katukang, seueur pangkalan data énggal parantos asup ka pasar dina pendekatan No-SQL. Ieu kalebet toko-nilai konci sapertos Redis sareng Amazon DynamoDB, pangkalan data kolom lega sapertos Cassandra sareng HBase, toko dokumén sapertos MongoDB sareng Couchbase, sareng database grafik sareng mesin pencari sapertos Elasticsearch sareng Solr.

Dina tulisan ieu, urang bakal nyobian ngartos SQL sareng NoSQL tanpa asup kana pungsionalitasna.
Tambih Deui, urang bakal gaduh sababaraha fun sapanjang jalan.

Ngajelaskeun SQL ka Nenek

Nini, bayangkeun yén kuring sanés incu anjeun. Sabalikna, indung sareng bapa silih asih sapertos kelenci, aranjeunna gaduh 100 murangkalih, teras angkat 50 deui.

Janten, anjeun bogoh ka urang sadayana sareng henteu hoyong hilap nami, ulang taun, rasa és krim karesep, ukuran pakean, hobi, nami pasangan, nami turunan sareng fakta super penting sanés. Sanajan kitu, hayu urang nyanghareupan eta. Anjeun 85 taun heubeul jeung memori heubeul alus ngan teu bisa nanganan eta.

Untung jadi anak incu nu pangpinterna, kuring bisa mantuan. Janten kuring sumping ka bumi anjeun, kuring ngaluarkeun sababaraha lembar kertas sareng kuring naroskeun anjeun ngadamel sababaraha cookies sateuacan urang ngamimitian.

Dina hiji lambar kertas, urang nyieun daptar disebut "incu". Unggal putu dirékam kalawan sababaraha émbaran signifikan ngeunaan anjeunna, kaasup nomer unik nu ayeuna bakal nunjukkeun kumaha incu anjeunna. Ogé, demi organisasi, urang nyerat nami atribut di luhur daptar supados urang salawasna terang inpormasi naon anu aya dina daptar.

id
nami
tepang warsi
nganjang panungtungan
ukuran baju
és krim favorit
dikukut

1
Jimmy
09-22-1992
09-01-2019
L
coklat mint
palsu

2
Jessica
07-21-1992
02-22-2018
M
Jalan taringgul
bener

...urang neruskeun daptar!

Daptar incu

Saatos sababaraha waktos, anjeun ngartos sadayana sareng kami ampir réngsé daptar! Tapi, anjeun balik ka kuring sareng nyarios: "Kami hilap nambihan rohangan pikeun pasangan, hobi, incu!" Tapi henteu, urang henteu hilap! Ieu nuturkeun salajengna jeung merlukeun lambar kertas anyar.

Janten kuring narik lambar kertas anu sanés sareng di dinya kami nyauran daptar Pamajikan. Urang deui nambahkeun atribut nu penting pikeun urang ka luhur daptar tur mimitian nambahkeun dina barisan.

id
incu_id
nami
tepang warsi

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

... deui pasangan!

Daptar pasangan

Dina tahap ieu, kuring ngajelaskeun ka nini yén upami anjeunna hoyong terang saha anu nikah sareng saha, maka anjeunna ngan ukur kedah cocog. id dina daptar incu с incu_id dina daptar pasangan.

Saatos sababaraha belasan cookies, abdi kedah bobo. "Tiasa teraskeun, nini?" Abdi badé saré.

Abdi uih deui dina sababaraha jam. Alus, nini! Sagalana Sigana hébat iwal daptar hobi. Aya ngeunaan 1000 hobi dina daptar. Kalolobaan aranjeunna repetitive; Aya naon?

incu_id
kasenengan

1
biking

4
biking

3
biking

7
jalan

11
biking

…urang teruskeun!

Hampura, kuring sagemblengna poho ngomong! Ngagunakeun hiji daptar, anjeun ngan bisa ngalacak hobi. Lajeng dina daptar sejen urang kudu ngalacak incuanu ngalakukeun ieu hobi. Urang bakal nelepon deui "Daptar umum". Ningali anjeun henteu resep, kuring hariwang sareng uih deui ka modeu daptar.

id
kasenengan

1
biking

2
jalan

3
ngojay

...hobi deui!

Daptar hobi

Sakali kami ngagaduhan daptar hobi, kami nyiptakeun daptar kadua kami sareng nyebatna "Hobi anak incu".

incu_id
hobi_id

4
1

3
1

7
2

…Tambih deui!

Daptar umum hobi anak incu

Saatos sadaya padamelan ieu, nini ayeuna gaduh sistem mémori anu saé pikeun ngalacak kulawargana anu luar biasa ageung. Teras - pikeun ngajaga kuring langkung lami - anjeunna naroskeun patarosan sihir: "Dimana anjeun diajar ngalakukeun sadayana ieu?"

database Relational

Basis data relasional nyaéta sakumpulan tabel anu dijelaskeun sacara resmi (dina conto urang, ieu mangrupikeun lambaran) dimana anjeun tiasa ngaksés. anu dirumuskeun atawa ngumpulkeun aranjeunna dina sagala rupa cara tanpa kudu nyusun ulang tabel Pangkalan data. Aya loba tipena béda database relational, tapi hanjakalna daptar dina salembar kertas teu salah sahijina.

Ciri khas tina basis data relasional anu pang populerna nyaéta basa query SQL (Structured Query Language). Hatur nuhun ka anjeunna, upami nini mindahkeun sistem memori na ka komputer, manéhna bisa gancang meunang jawaban kana patarosan sapertos: "Saha nu teu didatangan kuring taun ka tukang, geus nikah jeung teu boga hobi?"

Salah sahiji sistem manajemén database SQL anu pang populerna nyaéta open source MySQL. Hal ieu dilaksanakeun utamana salaku sistem manajemen database relational (RDBMS) pikeun aplikasi software basis web.

Sababaraha fitur konci MySQL:

  • Éta cukup dikenal, seueur dianggo sareng diuji sacara éksténsif.
  • Aya seueur pamekar terampil anu gaduh pangalaman sareng SQL sareng database relational.
  • Data disimpen dina sagala rupa tabel, nu matak ngamudahkeun pikeun ngadegkeun hubungan maké konci primér sarta asing (identifiers).
  • Gampang dianggo sareng éfisién, janten idéal pikeun usaha ageung sareng alit.
  • Kodeu sumberna aya dina kaayaan Lisensi Publik Umum GNU.

Ayeuna poho ALL.

Ngajelaskeun NoSQL ka nini

Nini, urang gaduh kulawarga ageung. Manehna boga 150 incu! Seueur diantarana anu nikah, gaduh budak, resep kana hal sareng sajabana. Dina umur anjeun, mustahil pikeun nginget sadayana ngeunaan urang sadayana. Naon anu anjeun peryogikeun nyaéta sistem mémori!

Untungna, kuring teu hayang anjeun poho ultah kuring jeung rasa favorit és krim, abdi tiasa mantuan. Janten kuring lumpat ka toko pangdeukeutna, nyandak buku catetan sareng uih deui ka bumi anjeun.

Léngkah munggaran anu kuring lakukeun nyaéta nyerat "Cucu" dina hurup gedé dina panutup buku catetan kuring. Teras kuring flip ka halaman kahiji sareng mimitian nyerat sadayana anu anjeun kedah émut ngeunaan kuring. Sababaraha menit ti harita, halamanna siga kieu.

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

Я: “Sigana kabéh geus siap!”
nini: “Tuh, kumaha deui anak incuna?”
Я: “Leres pisan. Teras alokasikeun hiji halaman kanggo masing-masing. ”
nini: "Naha abdi kedah nyerat sadaya inpormasi anu sami pikeun sadayana, sapertos anu kuring lakukeun pikeun anjeun?"
Я: “Henteu, ngan upami anjeun hoyong. Hayu atuh nunjukkeun."
Ngarebut pulpén nini kuring, kuring flip halaman sareng gancang nyerat inpormasi ngeunaan misan anu paling kuring resep.

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

Iraha waé nini kedah émut ngeunaan salah sahiji incuna, anjeunna ngan ukur kedah napigasi ka halaman anu leres dina buku catetan incuna. Sadaya inpormasi ngeunaan aranjeunna bakal disimpen langsung dina halamanna, anu anjeunna tiasa gancang robih sareng diropéa.

Nalika sagalana geus rengse, manehna miwarang patarosan magic: "Dimana anjeun diajar ngalakukeun sagala ieu?"

pangkalan data NoSQL

Aya seueur pangkalan data NoSQL ("henteu ngan SQL"). Dina conto urang, kami geus ditémbongkeun database dokumén. NoSQL database model data dina cara nu ngaluarkeun hubungan tabel dipaké dina database relational. Basis data ieu janten populer di awal taun 2000an sareng perusahaan-perusahaan anu peryogi clustering database dumasar-awan kusabab syarat skala eksplisitna (sapertos Facebook). Dina aplikasi sapertos kitu, konsistensi data langkung penting tibatan kinerja sareng skalabilitas.

Dina awalna, basis data NoSQL sering dianggo pikeun tugas-tugas manajemén data niche. Dasarna, nalika datang ka aplikasi wéb sareng awan, pangkalan data NoSQL ngolah sareng nyebarkeun jumlah data anu signifikan. Insinyur NoSQL ogé resep kana skéma data anu fléksibel (atanapi kakuranganana) ku kituna parobahan gancang tiasa dilaksanakeun dina aplikasi anu diropéa.

Fitur konci NoSQL:

  • Cara anu fléksibel pisan pikeun nyimpen data
  • Skala horizontal ka klaster
  • Kamungkinan sequencing per kegigihan / sumebar
  • Dokumén anu diidentifikasi nganggo konci unik

ngabandingkeun lengkep

MySQL merlukeun skéma anu ditetepkeun sareng terstruktur.
NoSQL ngamungkinkeun anjeun pikeun nyimpen data naon waé dina "dokumen".

MySQL ngagaduhan komunitas anu ageung.
NoSQL boga komunitas leutik tur tumuwuh gancang.

NoSQL gampang skala.
MySQL peryogi langkung ngatur.

MySQL nganggo SQL, anu dianggo dina sababaraha jinis pangkalan data.
NoSQL mangrupikeun desain basis data sareng palaksanaan populér.

MySQL ngagunakeun basa query standar (SQL).
NoSQL henteu nganggo basa query standar.

MySQL ngagaduhan seueur alat ngalaporkeun anu saé.
NoSQL ngagaduhan sababaraha alat ngalaporkeun anu hese pikeun standarisasi.

MySQL tiasa nunjukkeun masalah kinerja pikeun data ageung.
NoSQL nyadiakeun kinerja alus teuing dina data badag.

Pikiran 8 dasar

pausahaan 8dasardimana kuring gawe, kami nyadiakeun workspace pikeun tiap proyék kalawan database relational Aurora MySQL hosted on AWS. Nalika NoSQL mangrupikeun pilihan anu logis nalika aplikasi anjeun nungtut kinerja sareng skalabilitas anu luhur, kami yakin yén konsistensi data anu kuat anu disayogikeun ku DBMS penting nalika ngawangun aplikasi SaaS sareng parangkat lunak bisnis anu sanés.

Pikeun startups sarta pamekar ngawangun aplikasi bisnis anu merlukeun ngalaporkeun, integritas transactional, sarta model data well-diartikeun, investasi dina database relational nyaeta, dina pamadegan urang, pilihan katuhu.

Diajar langkung seueur ngeunaan ngembangkeun sareng Aurora, Serverless sareng GraphQL di 8base.com di dieu.

sumber: www.habr.com

Tambahkeun komentar