Minggu, 16 Februari 2020

Perkenalan NoSQL dan MongoDB

STMIK AKAKOM YOGYAKARTA

 Prodi Rekayasa Perangkat Lunak Aplikasi

NoSQL & MONGODB


 

 1. Pengertian 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.

2. 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.


3. Kelebihan menggunakan Database (nonrelasional) 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.

Databese SQL (relasional) vs. Database NoSQL (nonrelasional)
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.”
Meskipun terdapat banyak jenis database NoSQL dengan fitur yang bervariasi, tabel berikut menunjukkan beberapa perbedaan antara database SQL dan NoSQL.
Mulai menggunakan 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.

4. MONGO DB

MongoDB merupakan salah satu database NoSQL yang Open Source (Source kodenya dibebaskan/diberikan kepada para programmer untuk dilakukan pengembangan), sama seperti Android. MongoDB menyimpan data dengan struktur JSON. Data yang disimpan akan dimasukkan ke dalam document, seperti yang telah disebutkan diatas. MongoDB sering digunakan untuk aplikasi berbasis Grid Computing, Cloud atau Big Data.

MongoDB merupakan software open source yang dikembangkan oleh MongoDB Inc. pada tahun 2009. MongoDB menjadi salah satu DBMS terpopuler untuk mengelola database No-SQL. Software ini menggunakan struktur data JSON dalam pengelolaan datanya. Kita dapat meggunakan versi terminal maupun GUI.
Beberapa service yang ditawarkan pada MongoDB adalah fitur Agregasi. Agregasi adalah proses pengelompokan data-data pada database mengikuti parameter tertentu misalnya berdasarkan nama, umur, atau apapun bisa dijadikan parameter. Proses Agregasi berguna untuk menyederhanakan database.
Fitur lain yang ditawarkan adalah Replikasi. Replikasi merupakan proses dimana kita menduplikat database kita ke server lain sehingga menambah keamanan data. selain itu, replikasi juga mempermudah client untuk mengelola data karena dapat diakses dalam beberapa server berbeda.
Fitur terakhir yang akan dibahas pada artikel ini adalah Sharding. Sharding adalah prose untuk mendistribusikan data melalui satu atau lebih database. ini digunakan untuk mendukung pendistribusian data dengan set data yang besar sehingga lebih efisien.
Sekian artikel kali ini, semoga bermanfaat bagi para pembaca. untuk mendownload MongoDB bisa klik disini.

Tidak ada komentar:

Posting Komentar