1.1 Cara kerja database NoSQL

Database NoSQL nggunakake macem-macem model data kanggo ngakses lan ngapusi data. Jinis database iki dioptimalake kanggo aplikasi data-intensif sing mbutuhake latency kurang lan model data fleksibel. Kabeh iki digayuh kanthi nyuda syarat konsistensi data sing ketat sing khas kanggo jinis database liyane.

Coba conto modeling skema kanggo database buku sing prasaja.

  • Ing basis data relasional, entri buku asring dipérang dadi pirang-pirang bagean (utawa "dinormalisasi") lan disimpen ing tabel sing kapisah sing hubungane ditetepake dening watesan kunci utama lan manca. Ing conto iki, tabel Buku nduweni kolom ISBN , Judhul Buku, lan "ISBN"lan"Pengarang"Pengarang-ISBN, lanJeneng PengarangkolomlanID PengarangPengarangtabelEdisiNomer. Model relasional dirancang kanggo njaga integritas referensial antarane tabel ing basis data. Data kasebut dinormalisasi kanggo nyuda redundansi lan umume dioptimalake kanggo panyimpenan.

  • Ing basis data NoSQL, cathetan buku biasane disimpen minangka dokumen JSON. Kanggo saben buku, utawa unsur, nilai ISBN , Judhul Buku , Nomer Edisi , Jeneng Pengarang, lan ID Pengarang disimpen minangka atribut ing siji dokumen. Ing model iki, data dioptimalake kanggo pangembangan intuisi lan skalabilitas horisontal.

1.2 Apa database NoSQL bisa digunakake kanggo?

Basis data NoSQL cocog banget kanggo akeh aplikasi modern, kayata seluler, game, aplikasi web, sing mbutuhake basis data sing fleksibel lan bisa diukur kanthi kinerja dhuwur lan fungsi sing sugih sing bisa nyedhiyakake kegunaan maksimal.

  • Fleksibilitas . Biasane, basis data NoSQL nawakake skema fleksibel, ngidini pangembangan luwih cepet lan ngidini implementasi tambahan. Amarga nggunakake model data sing fleksibel, database NoSQL cocok kanggo data semi-terstruktur lan ora terstruktur.

  • Skalabilitas . Database NoSQL dirancang kanggo skala nggunakake kluster hardware sing disebarake, ora kanthi nambahake server sing larang lan dipercaya. Sawetara panyedhiya layanan awan mbukak operasi kasebut ing latar mburi, nyedhiyakake layanan sing dikelola kanthi lengkap.

  • Kinerja dhuwur . Database NoSQL dioptimalake kanggo model data tartamtu lan pola akses kanggo entuk kinerja sing luwih dhuwur tinimbang database relasional.

  • Fungsi sing wiyar . Database NoSQL nyedhiyakake API lan jinis data sing sugih sing dirancang khusus kanggo model datane.

1.3 Jinis database NoSQL

Database NoSQL digunakake ing ngendi ora trep banget kanggo nyimpen data ing wangun tabel. Mulane, padha disimpen ing format beda banget. Biasane, ana 6 jinis data utama database NoSQL.

DB adhedhasar pasangan kunci-nilai

Basis data sing nggunakake pasangan kunci-nilai ndhukung pemisahan sing dhuwur lan nyedhiyakake skala horisontal sing durung tau ana sadurunge sing ora bisa ditindakake karo jinis database liyane. Kasus panggunaan sing apik kanggo database nilai kunci yaiku game, pariwara, lan aplikasi IoT.

Contone, Amazon DynamoDB njamin operasi basis data sing stabil kanthi wektu tundha ora luwih saka sawetara milidetik ing skala apa wae. Kinerja sing kuat iki minangka alesan utama kanggo migrasi Cerita Snapchat menyang DynamoDB, amarga fitur Snapchat iki digandhengake karo beban nulis panyimpenan paling gedhe.

Dokumen

Ing kode aplikasi, data asring dituduhake minangka obyek utawa dokumen ing format kaya JSON amarga model data sing efisien lan intuisi kanggo pangembang. Basis data dokumen ngidini pangembang nyimpen lan takon data ing basis data nggunakake model dokumen sing padha digunakake ing kode aplikasi. Sifat fleksibel, semi-terstruktur, hierarkis saka dokumen lan database dokumen ngidini supaya bisa berkembang karo kabutuhan aplikasi.

Model dokumen bisa digunakake kanthi apik ing katalog, profil pangguna, lan sistem manajemen konten sing saben dokumen unik lan owah-owahan saka wektu. Amazon DocumentDB (kompatibel karo MongoDB) lan MongoDB minangka basis data dokumen umum sing nyedhiyakake API fungsional lan intuisi kanggo pangembangan tangkas.

Database grafik

Basis data grafik nggawe luwih gampang ngembangake lan mbukak aplikasi sing bisa digunakake karo set data kompleks. Conto khas nggunakake basis data grafik yaiku jaringan sosial, layanan rekomendasi, sistem deteksi penipuan, lan grafik pengetahuan. Amazon Neptune minangka layanan database grafik sing dikelola kanthi lengkap. Neptunus ndhukung Graph Properti lan Resource Description Framework (RDF), nyediakake loro graph API kanggo milih saka: TinkerPop lan RDF / SPARQL. Database grafik umum kalebu Neo4j lan Giraph.

DB ing memori

Asring aplikasi game lan pariwara nggunakake papan pimpinan, panyimpenan sesi, lan analitik wektu nyata. Kapabilitas kasebut mbutuhake respon sajrone sawetara mikrodetik, dene tambah akeh lalu lintas bisa ditindakake kapan wae.

Amazon MemoryDB kanggo Redis minangka layanan basis data ing memori sing kompatibel karo Redis, sing nyuda latensi maca dadi milidetik lan menehi daya tahan ing pirang-pirang zona kasedhiyan. MemoryDB dibangun kanthi tujuan kanggo kinerja lan linuwih sing dhuwur banget, saengga bisa digunakake minangka basis data utama kanggo aplikasi basis microservice modern.

Amazon ElastiCache minangka layanan caching ing memori sing kompatibel karo Redis lan Memcached kanggo ngladeni latensi sing sithik, beban kerja sing dhuwur. Klien kaya Tinder sing butuh aplikasi kanggo nanggapi kanthi nyata nggunakake memori tinimbang sistem panyimpenan disk. Conto liyane saka gudang data sing dibangun kanthi tujuan yaiku Amazon DynamoDB Accelerator (DAX). DAX ngidini DynamoDB maca data kaping pirang-pirang luwih cepet.

Telusuri database

Akeh aplikasi ngasilake log kanggo nggampangake pangembang kanggo ngatasi masalah lan ndandani masalah. Amazon OpenSearch minangka layanan sing dibangun kanthi tujuan kanggo visualisasi lan analytics wektu-nyata saka aliran data sing digawe kanthi otomatis kanthi ngindeks, nglumpukake lan nggoleki log lan metrik semi-terstruktur.

Kajaba iku, Amazon OpenSearch minangka layanan telusuran teks lengkap sing kuat lan kinerja dhuwur. Expedia nggunakake luwih saka 150 domain layanan Amazon OpenSearch, 30 TB data, lan 30 milyar dokumen kanggo macem-macem kasus panggunaan kritis misi, saka ngawasi operasional lan ngatasi masalah kanggo nelusuri tumpukan aplikasi sing disebar lan optimasi biaya.

1.4 Perbandingan database SQL (relasional) lan NoSQL (non-relasional)

NoSQL nduweni akeh kaluwihan, dadi sampeyan kudu paling sethithik ing teori ngerti yen alat sing sampeyan butuhake wis ana sadurunge nulis dhewe. Ing ngisor iki aku bakal menehi perbandingan database NoSQL lan SQL:

Beban kerja sing cocog

Basis data relasional dirancang kanggo aplikasi pangolahan transaksi wektu nyata (OLTP) transaksional lan konsisten banget lan cocog kanggo pangolahan analitis wektu nyata (OLAP).

Basis data NoSQL dirancang kanggo nggarap macem-macem pola akses data, kalebu aplikasi latensi sing sithik. Database telusuran NoSQL dirancang kanggo analisis data semi-terstruktur.

Model Data

Model relasional normalake data lan ngowahi dadi tabel sing dumadi saka baris lan kolom. Skema kanthi kaku nemtokake tabel, baris, kolom, indeks, hubungan antarane tabel, lan unsur basis data liyane. Database kasebut njamin integritas data referensi ing hubungan antarane tabel.

Basis data NoSQL nyedhiyakake macem-macem model data kayata pasangan kunci-nilai, dokumen, lan grafik sing dioptimalake kanggo kinerja dhuwur lan skalabilitas.

Sifat ASAM

Basis data relasional nyedhiyakake seperangkat sifat ACID: atomicity, konsistensi, isolasi, linuwih.

  • Atomicity mbutuhake transaksi dileksanakake kanthi sakabehe utawa ora kabeh.
  • Konsistensi tegese sanalika transaksi rampung, data kasebut kudu cocog karo skema basis data.
  • Isolasi mbutuhake transaksi paralel kanthi kapisah saka saben liyane.
  • Reliabilitas nuduhake kemampuan kanggo pulih menyang negara sing disimpen pungkasan sawise gagal sistem sing ora dikarepke utawa mati listrik.

Basis data NoSQL asring menehi kompromi, santai syarat kaku sifat ACID kanggo model data sing luwih fleksibel sing ngidini skala horisontal. Iki ndadekake NoSQL dadi pilihan sing apik kanggo bandwidth dhuwur, kasus panggunaan latensi rendah sing mbutuhake skala horisontal ngluwihi siji conto.

Kinerja

Kinerja utamane gumantung ing subsistem disk. Optimasi pitakon, indeks, lan struktur tabel asring dibutuhake kanggo kinerja maksimal.

Kinerja biasane gumantung saka ukuran kluster hardware dhasar, latensi jaringan, lan aplikasi panggilan.

Scaling

Basis data relasional biasane skala kanthi nambah daya komputasi hardware utawa nambah salinan sing kapisah kanggo beban kerja sing diwaca.

Basis data NoSQL biasane ndhukung pemisahan sing dhuwur liwat pola akses sing bisa diukur adhedhasar arsitektur sing disebarake. Iki nambah throughput lan menehi kinerja sing konsisten ing skala sing meh ora ana watesan.

API

Panjalukan kanggo nulis lan njupuk data ditulis ing SQL. Pitakon iki diurai lan dieksekusi dening basis data relasional.

API berorientasi obyek ngidini pangembang aplikasi bisa nulis lan njupuk struktur data kanthi gampang. Nggunakake tombol partisi, aplikasi bisa nggoleki pasangan nilai kunci, set kolom, utawa dokumen semi-terstruktur sing ngemot obyek serial lan atribut aplikasi.