Apa itu NoSQL?

Database nonrelasional berkinerja tinggi dengan model data yang fleksibel

Apa itu database NoSQL?

Database NoSQL dibuat dengan tujuan khusus untuk model data spesifik dan memiliki skema fleksibel untuk membuat aplikasi modern. Database NoSQL dikenal secara luas karena kemudahan pengembangan, fungsionalitas, dan kinerja dalam berbagai skala. Database NoSQL menggunakan berbagai model data, termasuk dokumen, grafik, nilai kunci, dalam memori, dan pencarian. Halaman ini termasuk sumber daya untuk membantu Anda memahami lebih baik database NoSQL dan mulai menggunakannya.

Selama berpuluh tahun, model data utama yang digunakan untuk pengembangan aplikasi adalah model data relasional yang digunakan oleh database relasional seperti Oracle, DB2, SQL Server, MySQL, dan PostgreSQL. Hingga pada pertengahan hingga akhir tahun 2000 model data lain mulai mendapatkan adopsi dan penggunaan yang signifikan. Untuk membedakan dan mengategorikan kelas database dan model data baru ini, istilah “NoSQL” diciptakan. Sering kali istilah “NoSQL” digunakan secara bergantian dengan “nonrelasional.”


Apa yang baru untuk Database Nonrelasional dan Dibuat Khusus dari AWS

Bagaimana Cara kerja Database (nonrelasional) NoSQL?

Database NoSQL menggunakan berbagai model data untuk mengakses dan mengelola data, seperti dokumen, grafik, nilai kunci, dalam memori, dan pencarian. Jenis database ini dioptimalkan secara khusus untuk aplikasi yang memerlukan volume data besar, latensi rendah, dan model data fleksibel, yang dicapai dengan mengurangi pembatasan konsistensi data dari database lainnya.

Pertimbangkan contoh pemodelan skema untuk database buku sederhana:

  • Dalam database relasional, catatan buku sering diselubungkan (atau "dinormalkan") dan disimpan dalam tabel terpisah, dan hubungan ditetapkan dengan pembatasan kunci primary dan foreign. Dalam contoh ini, tabel Buku memiliki kolom untuk ISBN, Judul Buku, dan Nomor Edisi, tabel Penulis memiliki kolom untuk IDPenulis dan Nama Penulis, dan tabel Penulis-ISBN memiliki kolom IDPenulis dan ISBN. Model relasional didesain untuk mengaktifkan database untuk menegakkan integritas referensial antara tabel di dalam database, dinormalkan untuk mengurangi redundansi, dan umumnya dioptimalkan untuk penyimpanan.
  • Dalam database NoSQL, catatan buku biasanya disimpan sebagai dokumen JSON. Untuk setiap buku, item, ISBN, Judul Buku, Nomor Edisi, Nama Penulis, dan IDPenulis disimpan sebagai atribut dalam dokumen tunggal. Dalam model ini, data dioptimalkan untuk pengembangan intuitif dan skalabilitas horizontal.

Kenapa Anda harus menggunakan database NoSQL?

Database NoSQL sangat cocok untuk digunakan dengan berbagai aplikasi modern seperti aplikasi seluler, web, dan gaming yang memerlukan database yang fleksibel, dapat diskalakan, berkinerja tinggi, dan memiliki fungsionalitas tinggi untuk memberikan pengalaman pengguna yang baik.

  • Fleksibilitas: Database NoSQL umumnya menyediakan skema fleksibel yang memungkinkan pengembangan yang lebih cepat dan lebih berulang. Model data fleksibel membuat database NoSQL ideal untuk data yang semi terstruktur dan tidak terstruktur.
  • Skalabilitas: Database NoSQL umumnya didesain untuk meningkatkan skala dengan menggunakan klaster perangkat keras yang terdistribusi alih-alih meningkatkan skala dengan menambah server yang mahal dan robust. Beberapa penyedia layanan cloud menangani aktivitas di balik operasi ini sebagai layanan yang dikelola sepenuhnya.
  • Kinerja tinggi: Database NoSQL dioptimalkan untuk model data spesifik (seperti dokumen, nilai kunci, dan grafik) dan pola akses yang memberikan kinerja yang lebih tinggi dibandingkan jika Anda mencoba mendapatkan fungsionalitas yang mirip dengan database relasional.
  • Fungsionalitas tinggi: Database NoSQL menyediakan API dan jenis data fungsional yang dibuat secara khusus untuk setiap model data yang sesuai.

Jenis Database NoSQL

nosql_keyvalue_g

Nilai-kunci: Database nilai kunci dapat dipartisi dan memungkinkan pengembangan horizontal pada skala yang tidak dapat dicapai oleh jenis database lain. Kasus penggunaan seperti gaming, teknologi iklan, dan IoT cukup baik dalam menggunakan model data nilai-kunci. Amazon DynamoDB didesain untuk menyediakan latensi satu-digit milidetik untuk setiap skala beban kerja. Kinerja yang konsisten ini merupakan alasan besar kenapa fitur Snapchat Stories, yang mencakup beban kerja penulisan ke penyimpanan terbesar dari Snapchat, dipindahkan ke DynamoDB.

nosql_document_g

Dokumen: Beberapa pengembang tidak memikirkan model data mereka dalam hal baris dan kolom yang terdenormalisasi. Umumnya, dalam tingkatan aplikasi, data digambarkan sebagai dokumen JSON karena lebih intuitif bagi pengembang untuk memikirkan model data mereka sebagai dokumen. Popularitas database dokumen telah berkembang karena pengembang dapat mempertahankan data di dalam database dengan menggunakan format model dokumen yang sama yang mereka gunakan dalam kode aplikasi. DynamoDB dan MongoDB merupakan database dokumen populer yang menyediakan API yang mumpuni dan intuitif untuk pengembangan yang fleksibel dan tangkas.

nosql_graph_g

Grafik: Database grafik bertujuan agar membuat dan menjalankan aplikasi yang berjalan dengan dataset yang selalu terhubung menjadi lebih mudah. Kasus penggunaan umum untuk database grafik antara lain jaringan media sosial, mesin rekomendasi, pendeteksian penipuan, dan grafik pengetahuan. Amazon Neptune merupakan layanan database grafik yang dikelola sepenuhnya. Neptune mendukung model Property Graph dan Resource Description Framework (RDF), memberi pilihan dua API grafik: TinkerPop dan RDF/SPARQL. Database grafik populer termasuk Neo4j dan Giraph.

nosql_inmemory_g

Dalam memori: Aplikasi gaming dan teknologi iklan memiliki kasus penggunaan seperti leaderboard, penyimpanan sesi, dan analisis real-time yang memerlukan waktu respons milidetik dan dapat setiap saat memiliki puncak lalu lintas yang besar. Amazon ElastiCache menawarkan Memcached dan Redis, untuk menyediakan beban kerja dengan latensi rendah dan throughput tinggi, seperti McDonald’s, yang tidak dapat dilayani dengan penyimpanan data berbasis disk. Amazon DynamoDB Accelerator (DAX) merupakan contoh lain dari penyimpanan data yang dibuat secara khusus. DAX membuat DynamoDB membaca dan mengurutkan magnitude dengan lebih cepat.

nosql_search_g

Pencarian: Beberapa output aplikasi dicatat untuk membantu pengembang untuk memecahkan masalah. Amazon Elasticsearch Service (Amazon ES) dibuat secara khusus untuk memberi visualisasi hampir secara real-time dan analisis data yang dihasilkan mesin dengan membuat indeks, mengumpulkan, dan mencari log dan metrik yang semi terstruktur. Amazon ES juga merupakan mesin pencari yang mumpuni dan berkinerja tinggi untuk kasus penggunaan pencarian teks lengkap. Expedia menggunakan lebih dari 150 domain Amazon ES, 30 TB data, dan 30 miliar dokumen untuk berbagai kasus penggunakan penting, mulai dari pemantauan operasional dan pemecahan masalah hingga pelacakan stack aplikasi terdistribusi dan pengoptimalan harga.

Databese SQL (relasional) vs. NoSQL (nonrelasional)

Meskipun terdapat banyak jenis database NoSQL dengan fitur yang bervariasi, tabel berikut menunjukkan beberapa perbedaan antara database SQL dan NoSQL.

  Database Relasional Database NoSQL

Beban kerja yang optimal

Database relasional didesain untuk aplikasi transaksional dan aplikasi pemrosesan transaksi online (online transaction processing, OLTP) yang sangat konsisten dan cocok digunakan untuk pemrosesan analisis online (online analytical processing, OLAP). Database nilai-kunci, dokumen, grafik, dan dalam memori NoSQL didesain untuk OLTP untuk sejumlah pola akses data yang menyertakan aplikasi latensi rendah. Database pencarian NoSQL didesain untuk analisis data yang semi terstruktur. 
Model data

Model relasional menormalkan data menjadi tabel yang terdiri dari baris dan kolom. Skema secara ketat mendefinisikan tabel, baris, kolom, indeks, hubungan antara tabel, dan elemen database lain. Database menegakkan integritas referensial dalam hubungan antara tabel.  

Database NoSQL menyediakan berbagai model data, antara lain dokumen, grafik, nilai kunci, dalam memori, dan pencarian.
Properti ACID

Database relasional menyediakan properti atomicity, consistency, isolation, and durability (ACID):

  • Atomicity mengharuskan transaksi dilaksanakan seluruhnya atau tidak sama sekali.
  • Consistency mengharuskan data sesuai dengan skema database jika suatu transaksi dikomitmenkan.
  • Isolation mengharuskan transaksi konkuren dilaksanakan secara terpisah dari transaksi lainnya.
  • Durability mengharuskan adanya kemampuan untuk memulihkan dari kegagalan sistem yang tidak terduga atau pemadaman listrik ke keadaan terakhir yang diketahui.
Database NoSQL sering kali melakukan pertukaran dengan mengurangi beberapa properti ACID database relasional untuk model data yang lebih fleksibel yang dapat dikembangkan secara horizontal. Hal ini membuat database NoSQL menjadi pilihan yang luar biasa untuk kasus penggunaan dengan throughput tinggi dan latensi rendah yang memerlukan pengembangan skala secara horizontal melebihi batasan instans tunggal.
Performa Kinerja umumnya tergantung pada subsistem disk. Pengoptimalan kueri, indeks, dan struktur tabel sering kali diperlukan untuk mencapai kinerja puncak. Kinerja umumnya merupakan fungsi dari ukuran klaster perangkat keras, latensi jaringan, dan aplikasi panggilan.
Skala Database relasional umumnya dapat dikembangkan skalanya dengan meningkatkan kemampuan komputasi perangkat keras atau mengembangkan skala dengan menambahkan replika untuk beban kerja hanya-baca. Database NoSQL umumnya dapat dipartisi karena pola akses nilai-kunci dapat dikembangkan skalanya dengan menggunakan arsitektur terdistribusi untuk meningkatkan throughput yang menyediakan kinerja yang konsisten pada skala yang tidak terbatas.
API Permintaan untuk menyimpan dan mengambil data dikomunikasikan menggunakan kueri yang sesuai dengan bahasa kueri terstruktur (SQL). Kueri ini diuraikan dan dijalankan oleh database relasional. API berbasis objek memungkinkan pengembang aplikasi menyimpan dan mengambil struktur data dalam memori dengan mudah. Kunci partisi mengizinkan aplikasi mencari pasangan nilai-kunci, set kolom, atau dokumen semi terstruktur yang berisi objek dan atribut aplikasi berseri.

Terminologi SQL vs. NoSQL

Tabel berikut membandingkan terminologi yang digunakan oleh database NoSQL tertentu dengan terminologi yang digunakan oleh database SQL.

SQL MongoDB DynamoDB Cassandra  Couchbase
Tabel Pengumpulan Tabel Tabel Bucket data
Baris Dokumen Item Baris Dokumen
Kolom Bidang Atribut Kolom Bidang
Kunci Primer IdObjek Kunci Primer
Kunci Primer ID Dokumen
Indeks Indeks Indeks Sekunder Indeks Indeks
Tampilan Tampilan Indeks sekunder global Tampilan yang dimaterialkan Tampilan
Tabel atau objek nested Dokumen tertanam Peta Peta Peta
Array Array Daftar Daftar Daftar
Daftar
Daftar
Kunci Primer

Mulai menggunakan DynamoDB

Mulai menggunakan DynamoDB itu mudah. Lihat halaman web Memulai DynamoDB untuk membuat tabel pertama Anda dengan beberapa klik. Anda juga dapat mengunduh whitepaper AWS, untuk mempelajari praktik terbaik guna memigrasi beban kerja dari sistem pengelolaan database relasional (relational database management system, RDBMS) ke DynamoDB.

Apa itu Amazon DynamoDB?