Carane nerangake marang mbah putri prabΓ©dan antarane SQL lan NoSQL

Carane nerangake marang mbah putri prabΓ©dan antarane SQL lan NoSQL

Salah sawijining keputusan sing paling penting sing ditindakake pangembang yaiku database sing digunakake. Kanggo pirang-pirang taun, opsi diwatesi kanggo macem-macem opsi database relasional sing ndhukung Structured Query Language (SQL). Iki kalebu MS SQL Server, Oracle, MySQL, PostgreSQL, DB2 lan liya-liyane.

Swara 15 taun kepungkur, akeh database No-SQL anyar sing muncul ing pasar. Iki kalebu toko nilai kunci kayata Redis lan Amazon DynamoDB, database kolom sing amba kayata Cassandra lan HBase, toko dokumen kayata MongoDB lan Couchbase, lan database grafik lan mesin telusur kayata Elasticsearch lan Solr.

Ing artikel iki kita bakal nyoba kanggo mangerteni SQL lan NoSQL tanpa njupuk menyang fungsi.
Kajaba iku, kita bakal seneng-seneng ing proses kasebut.

Nerangake SQL kanggo mbah

Mbah, mbayangno yen aku iki dudu putumu. Nanging, Bapak lan Ibu padha tresna-tinresnan kaya kelinci, duwe anak 100, banjur ngangkat 50 maneh.

Dadi, sampeyan tresna marang kita kabeh lan ora pengin nglalekake jeneng, ulang tahun, rasa es krim favorit, ukuran sandhangan, hobi, jeneng pasangan, jeneng turunane lan fakta super penting liyane. Nanging, ayo padha ngadhepi. Sampeyan wis 85 taun lan memori lawas apik mung ora bisa ngrampungake.

Untunge dadi anak putu sing paling pinter, aku bisa nulungi. Dadi aku teka ing omahmu, njupuk sawetara lembar kertas lan njaluk sampeyan nggawe kue sadurunge miwiti.

Ing siji lembar kertas kita nggawe dhaptar sing diarani "anak putu" Saben putu lanang direkam karo sawetara informasi penting babagan, kalebu nomer unik sing saiki bakal nuduhake kang putune dheweke iku. Uga, kanggo organisasi, kita nulis atribut sing dijenengi ing ndhuwur dhaptar supaya kita tansah ngerti informasi apa sing ana ing dhaptar kasebut.

id
jeneng
Ulang tahun
riko pungkasan
ukuran sandhangan
es krim favorit
diadopsi

1
jimmy
09-22-1992
09-01-2019
L
Coklat mint
palsu

2
Jessica
07-21-1992
02-22-2018
M
Dalan watu
bener

...terusake dhaptar!

Daftar anak putu

Sawise sawetara wektu sampeyan ngerti kabeh lan kita meh rampung karo dhaptar! Nanging, sampeyan bali menyang aku lan ngomong: "Kita kelalen nambah papan kanggo pasangan, hobi, putu!" Nanging ora, kita wis ora lali! Iki nderek luwih lan mbutuhake sheet anyar saka kertas.

Dadi aku narik metu kertas liyane lan ing iku kita nelpon dhaftar Pasangan bojo. Kita maneh nambah atribut sing penting kanggo kita ing wiwitan dhaptar lan wiwit nambah ing baris.

id
putu_id
jeneng
Ulang tahun

1
2
John
06-01-1988

2
9
Fernanda
03-05-1985

... liyane bojo!

Dhaptar pasangan

Ing tataran iki, aku nerangake marang mbah putri yen dheweke kepengin ngerti sapa sing nikah karo sapa, mula dheweke mung kudu mbandhingake. id ing dhaptar anak putu с putu_id ing dhaptar pasangan bojo.

Sawise sawetara rolas cookie, aku kudu turu. β€œSampeyan bisa nerusake, Mbah?” Aku budhal turu.

Aku bakal bali ing sawetara jam. Sampeyan kelangan, mbah! Kabeh katon apik kajaba dhaptar hobi. Ana babagan 1000 hobi ing dhaptar. Akèh-akèhé sing bola-bali; Apa sing kedadeyan?

putu_id
Hobi

1
biking

4
biking

3
biking

7
mlaku

11
biking

... ayo diterusake!

Sorry, Aku babar blas kelalen ngomong! Nggunakake dhaptar siji, sampeyan mung bisa nglacak hobi. Banjur ing dhaptar liyane kita kudu nglacak anak putusing nindakake iki hobi. Kita bakal nelpon "Daftar umum". Amarga sampeyan ora seneng, mula aku kuwatir lan bali menyang mode dhaptar.

id
Hobi

1
biking

2
mlaku

3
nglangi

... hobi liyane!

Daftar hobi

Sawise kita duwe dhaptar hobi, kita nggawe dhaptar nomer loro lan nyebutake "Hobi anak putu".

putu_id
hobi_id

4
1

3
1

7
2

... liyane!

Daftar umum hobi putu

Sawise kabeh karya iki, Eyang saiki duwe sistem memori sing apik kanggo nglacak kulawargane sing luar biasa. Banjur - supaya aku luwih suwe - dheweke takon pitakon ajaib: "Ngendi sampeyan sinau nindakake kabeh iki?"

Database relasional

Basis data relasional minangka set tabel sing diterangake kanthi resmi (ing conto iki minangka lembar) sing bisa diakses diwenehi utawa ngumpulake kanthi cara sing beda-beda tanpa kudu nyusun ulang tabel Database. Ana macem-macem jinis database relasional, nanging sayangΓ© dhaftar ing Piece saka kertas ora siji saka wong-wong mau.

Fitur khas saka basis data relasional sing paling populer yaiku basa pitakon SQL (Basa Kueri Terstruktur). Thanks kanggo iki, yen mbah putri nransfer sistem memori menyang komputer, dheweke bisa cepet njaluk jawaban kanggo pitakonan kayata: "Sapa sing ora ngunjungi kula taun kepungkur, wis nikah lan ora duwe hobi?"

Salah sawijining sistem manajemen database SQL sing paling populer yaiku MySQL open source. Iki ditrapake utamane minangka sistem manajemen basis data relasional (RDBMS) kanggo aplikasi piranti lunak basis web.

Sawetara fitur utama MySQL:

  • Iku cukup kondhang, digunakake digunakake lan sak tenane dites.
  • Ana akeh pangembang qualified sing duwe pengalaman nggarap SQL lan database relasional.
  • Data disimpen ing macem-macem tabel, kang nggampangake kanggo netepake sesambetan nggunakake tombol utami lan manca (identifiers).
  • Gampang digunakake lan efektif, saengga cocog kanggo bisnis gedhe lan cilik.
  • Kode sumber kasebut miturut syarat-syarat Lisensi Umum GNU.

Saiki lali ALL.

Nerangake NoSQL kanggo mbah

Mbah, kita duwe kulawarga gedhe. Ana 150 putu! Akeh sing wis omah-omah, duwe anak, seneng karo apa wae, lan liya-liyane. Ing umur sampeyan ora bisa ngelingi kabeh babagan kita kabeh. Sing dibutuhake yaiku sistem memori!

Untunge, aku ora pengin sampeyan lali ulang tahun lan rasa favorit es krim, aku bisa mbantu. Dadi aku mlayu menyang toko sing paling cedhak, njupuk notebook lan bali menyang omahmu.

Langkah pisanan sing daklakoni yaiku nulis "Putu" nganggo huruf kandel gedhe ing sampul notebookku. Banjur aku mbukak kaca pisanan lan miwiti nulis kabeh sing kudu sampeyan eling babagan aku. Sawise sawetara menit kaca katon kaya iki.

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

Π―: β€œKaton kabeh wis siyap!”
Nenek: β€œLha, putu liyane piye?”
Π―: β€œYa pancen. Banjur kita nyedhiyakake kaca kanggo saben.
Nenek: "Apa aku kudu nulis kabeh informasi sing padha kanggo saben wong kaya aku kanggo sampeyan?"
Π―: β€œOra, mung yen kowe gelem. Ayo kula nuduhake."
Njupuk pulpen mbahku, aku mbukak kaca lan cepet nulis informasi babagan sepupu sing paling disenengi.

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

Saben mbah putri kudu ngeling-eling babagan salah sawijining putu, dheweke mung kudu pindhah menyang kaca sing bener ing buku cathetan putu. Kabeh informasi babagan dheweke bakal disimpen ing kaca kasebut, sing bisa diganti lan dianyari kanthi cepet.

Nalika kabeh wis rampung, dheweke takon pitakonan ajaib: "Ngendi sampeyan sinau nindakake kabeh iki?"

database NoSQL

Ana akeh database NoSQL ("ora mung SQL"). Ing conto kita nuduhake database dokumen. NoSQL database model data kanthi cara sing ngilangi hubungan tabel sing digunakake ing basis data relasional. Basis data iki dadi populer ing awal taun 2000-an ing antarane perusahaan sing mbutuhake clustering basis data awan amarga syarat skala gedhe (contone, Facebook). Ing aplikasi kasebut, konsistensi data luwih penting tinimbang kinerja lan skalabilitas.

Ing wiwitan, basis data NoSQL asring digunakake kanggo tugas manajemen data niche. Sejatine, nalika nerangake aplikasi web lan awan, database NoSQL ngolah lan nyebarake data sing akeh. Insinyur NoSQL uga seneng karo keluwesan skema data (utawa kekurangane) saengga owah-owahan cepet bisa ditindakake ing aplikasi sing bisa diupgrade.

Fitur utama NoSQL:

  • Cara sing fleksibel banget kanggo nyimpen data
  • Skala horisontal menyang kluster
  • Urutan sing bisa ditindakake kanggo terus-terusan / panyebaran
  • Dokumen sing diidentifikasi nggunakake tombol unik

Perbandingan rinci

MySQL mbutuhake skema sing ditetepake lan terstruktur.
NoSQL ngidini sampeyan nyimpen data apa wae ing "dokumen".

MySQL didhukung dening komunitas gedhe.
NoSQL nduweni komunitas cilik lan berkembang kanthi cepet.

NoSQL gampang diukur.
MySQL mbutuhake luwih gampang diatur.

MySQL nggunakake SQL, sing digunakake ing pirang-pirang jinis database.
NoSQL minangka basis data kanthi desain kanthi implementasi populer.

MySQL nggunakake basa pitakon standar (SQL).
NoSQL ora nggunakake basa pitakon standar.

MySQL duwe akeh alat laporan sing apik.
NoSQL duwe sawetara alat pelaporan sing angel distandarisasi.

MySQL bisa uga duwe masalah kinerja kanggo data gedhe.
NoSQL nyedhiyakake kinerja sing apik banget ing data gedhe.

Pikiran 8 dhasar

Ing perusahaan 8 dhasar, ing ngendi aku kerja, kita nguwasani ruang kerja saben proyek kanthi basis data hubungan Aurora MySQL sing di-host ing AWS. Nalika NoSQL minangka pilihan sing logis nalika syarat aplikasi sampeyan mbutuhake kinerja lan skalabilitas sing dhuwur, kita percaya yen konsistensi data sing kuat sing diwenehake dening DBMS penting nalika mbangun aplikasi SaaS lan piranti lunak bisnis liyane.

Kanggo wiwitan lan pangembang mbangun aplikasi bisnis sing mbutuhake pelaporan, integritas transaksi, lan model data sing ditemtokake kanthi apik, nandur modal ing basis data relasional, miturut pendapat kita, pilihan sing tepat.

Sinau luwih lengkap babagan ngembangake Aurora, Serverless lan GraphQL karo 8base.com kene.

Source: www.habr.com

Add a comment