Global searching is not enabled.
Skip to main content
Page

Pengenalan Database NoSQL

Completion requirements

NoSQL dan apa itu database NoSQL?

Teknologi database NoSQL menyimpan informasi dalam dokumen JSON, bukan kolom dan baris yang digunakan oleh database relasional. Untuk lebih jelasnya, NoSQL adalah singkatan dari “not only SQL” dan bukan “no SQL” sama sekali. Ini berarti database NoSQL JSON dapat menyimpan dan mengambil data menggunakan “no SQL.” Atau Anda dapat menggabungkan fleksibilitas JSON dengan kekuatan SQL untuk memberikan yang terbaik dari kedua dunia. Akibatnya, database NoSQL dibuat agar fleksibel, terukur, dan mampu merespons dengan cepat tuntutan manajemen data bisnis modern. Berikut ini mendefinisikan empat jenis database NoSQL yang paling populer:

  • Basis data dokumen terutama dibuat untuk menyimpan informasi sebagai dokumen, termasuk, namun tidak terbatas pada, dokumen JSON. Sistem ini juga dapat digunakan untuk menyimpan dokumen XML, misalnya database NoSQL.
  • Penyimpanan nilai kunci mengelompokkan data terkait dalam koleksi dengan catatan yang diidentifikasi dengan kunci unik untuk memudahkan pengambilan. Penyimpanan nilai kunci memiliki struktur yang cukup untuk mencerminkan nilai database relasional (dibandingkan dengan database non-relasional) sambil tetap mempertahankan manfaat struktur database NoSQL.
  • Basis data kolom  menggunakan format tabel database relasional namun memungkinkan variasi yang luas dalam cara data diberi nama dan diformat di setiap baris, bahkan dalam tabel yang sama. Seperti penyimpanan nilai kunci, database kolom lebar memiliki beberapa struktur dasar NoSQL sekaligus menjaga banyak fleksibilitas
  • Basis data grafik menggunakan struktur grafik untuk menentukan hubungan antara titik data yang disimpan. Basis data grafik berguna untuk mengidentifikasi pola dalam informasi tidak terstruktur dan semi terstruktur.

Mengapa menggunakan NoSQL?

Pengalaman pelanggan dengan cepat menjadi pembeda kompetitif yang paling penting dan mengantarkan dunia bisnis ke era perubahan besar. Sebagai bagian dari revolusi ini, perusahaan-perusahaan berinteraksi secara digital – tidak hanya dengan pelanggan mereka, namun juga dengan karyawan, mitra, vendor, dan bahkan produk mereka – dalam skala yang belum pernah terjadi sebelumnya. Interaksi ini didukung oleh internet dan teknologi abad ke-21 lainnya – dan inti dari revolusi NoSQL adalah aplikasi big data, cloud, seluler, media sosial, dan IoT milik perusahaan.

Apa perbedaan aplikasi ini dengan aplikasi perusahaan lama seperti ERP, SDM, dan akuntansi keuangan? Aplikasi web, seluler, dan IoT saat ini memiliki satu atau lebih (jika tidak semua) karakteristik berikut. Mereka perlu:

  • Mendukung sejumlah besar pengguna secara bersamaan (puluhan ribu, mungkin jutaan)
  • Memberikan pengalaman yang sangat responsif kepada basis pengguna yang tersebar secara global
  • Selalu tersedia – tanpa downtime
  • Menangani data semi dan tidak terstruktur
  • Beradaptasi dengan cepat terhadap perubahan persyaratan dengan pembaruan rutin dan fitur baru

Membangun dan menjalankan aplikasi yang sangat interaktif ini telah menciptakan serangkaian persyaratan teknologi baru. Arsitektur teknologi NoSQL perusahaan yang baru harus jauh lebih gesit dibandingkan sebelumnya, dan memerlukan pendekatan terhadap manajemen data real-time yang dapat mengakomodasi tingkat skala, kecepatan, dan variabilitas data yang belum pernah terjadi sebelumnya. Basis data relasional tidak dapat memenuhi persyaratan baru ini, dan oleh karena itu perusahaan beralih ke jenis basis data NoSQL.


Lima tren yang menciptakan tantangan teknis baru yang dapat diatasi oleh DB NoSQL

Tren ekonomi digital
Persyaratan
1. Lebih banyak pelanggan yang online

• Menskalakan untuk mendukung ribuan, bahkan jutaan pengguna

• Memenuhi persyaratan UX dengan kinerja tinggi yang konsisten

• Menjaga ketersediaan 24 jam sehari, 7 hari seminggu

2. Internet menghubungkan segalanya

• Mendukung banyak hal berbeda dengan struktur data berbeda

• Mendukung pembaruan perangkat keras/perangkat lunak, menghasilkan data yang berbeda

• Mendukung aliran data real-time yang berkesinambungan

3. Big data semakin besar

• Menyimpan data semi-terstruktur/tidak terstruktur yang dihasilkan pelanggan

• Menyimpan berbagai jenis data dari sumber berbeda, secara bersamaan

• Menyimpan data yang dihasilkan oleh ribuan/jutaan pelanggan/sesuatu

4. Aplikasi dipindahkan ke cloud

• Menskalakan sesuai permintaan untuk mendukung lebih banyak pelanggan, menyimpan lebih banyak data

• Mengoperasikan aplikasi dalam skala global – pelanggan di seluruh dunia

• Meminimalkan biaya infrastruktur, mencapai waktu pemasaran yang lebih cepat

5. Dunia sudah menjadi mobile

• Membuat aplikasi “offline dulu” – koneksi jaringan tidak diperlukan

• Menyinkronkan data seluler dengan database jarak jauh di cloud

• Mendukung berbagai platform seluler dengan satu backend


Bagaimana dengan SQL?

Kami menyebut beberapa database relasional sebagai database SQL karena ketergantungannya pada SQL (alias “bahasa kueri terstruktur”) untuk mengambil informasi yang relevan. Pertama kali diperkenalkan pada tahun 1979, SQL kini digunakan oleh pengembang dan analis data di seluruh dunia untuk menemukan dan melaporkan data yang disimpan dalam sistem relasional seperti Oracle.

Mengapa database relasional gagal

DBMS Relasional (sistem manajemen basis data) lahir di era mainframe dan aplikasi bisnis – jauh sebelum internet, cloud, big data, seluler, dan perusahaan yang sangat interaktif saat ini. Basis data ini dirancang untuk dijalankan pada satu server – semakin besar, semakin baik. Satu-satunya cara untuk meningkatkan kapasitas database ini adalah dengan meningkatkan server – prosesor, memori, dan penyimpanan – untuk ditingkatkan.

Basis data NoSQL muncul sebagai akibat dari pertumbuhan eksponensial internet dan munculnya aplikasi web. Google merilis makalah penelitian Bigtable pada tahun 2006, dan Amazon merilis makalah penelitian Dynamo pada tahun 2007. Basis data ini dirancang untuk memenuhi kebutuhan perusahaan generasi baru:

Kebutuhan untuk berkembang dengan tangkas , untuk memenuhi kebutuhan yang berubah , dan untuk menghilangkan transformasi data .

Berkembang dengan gesit

Agar tetap kompetitif dalam ekonomi digital yang berfokus pada pengalaman saat ini, perusahaan harus berinovasi – dan mereka harus melakukannya lebih cepat dari sebelumnya. Dan karena inovasi ini berpusat pada pengembangan aplikasi web, seluler, dan IoT modern, pengembang harus menghadirkan aplikasi dan layanan lebih cepat dari sebelumnya. Kecepatan dan ketangkasan sama-sama penting karena aplikasi ini berkembang jauh lebih cepat dibandingkan aplikasi lama seperti ERP. Basis data relasional adalah hambatan utama karena tidak mendukung pengembangan tangkas dengan baik karena model datanya yang tetap.

Cakupan untuk perubahan persyaratan

Prinsip inti dari pengembangan tangkas adalah beradaptasi dengan persyaratan aplikasi yang terus berkembang: ketika persyaratan berubah, model data juga berubah. Ini merupakan masalah bagi database relasional karena model datanya tetap dan ditentukan oleh skema statis. Jadi untuk mengubah model data, pengembang harus mengubah skema, atau lebih buruk lagi, meminta “perubahan skema” dari administrator database. Hal ini memperlambat atau menghentikan pengembangan, bukan hanya karena prosesnya manual dan memakan waktu, namun juga karena berdampak pada aplikasi dan layanan lain.

Sebaliknya, database NoSQL sepenuhnya mendukung pengembangan tangkas dan tidak menentukan secara statis bagaimana data harus dimodelkan. Sebaliknya, NoSQL bergantung pada aplikasi dan layanan, dan juga kepada pengembang mengenai bagaimana data harus dimodelkan. Dengan NoSQL, model data ditentukan oleh model aplikasi. Aplikasi dan layanan memodelkan data sebagai objek.

Mengapa Database NoSQL

Hilangkan transformasi data

Aplikasi dan layanan memodelkan data sebagai objek (misalnya karyawan), data multi-nilai sebagai kumpulan (misalnya peran), dan data terkait sebagai objek atau kumpulan bertumpuk (misalnya manajer). Namun, database relasional memodelkan data sebagai tabel baris dan kolom – data terkait sebagai baris dalam tabel berbeda, dan data multinilai sebagai baris dalam tabel yang sama.

Masalah dengan database relasional adalah bahwa data dibaca dan ditulis dengan cara membongkar, atau “menghancurkan”, dan merakit kembali objek. Ini adalah “ketidakcocokan impedansi” objek-relasional. Solusinya adalah mentransformasikan data melalui kerangka pemetaan relasional objek, yang paling tidak efisien, dan paling buruk menimbulkan masalah. Database NoSQL umumnya menangani data sebagaimana disajikan .

Bagaimana cara kerja NoSQL?

Bagaimana perbandingan NoSQL? Mari kita lihat lebih dekat. Tutorial NoSQL berikut mengilustrasikan aplikasi yang digunakan untuk mengelola resume. Ini berinteraksi dengan resume sebagai objek (yaitu objek pengguna), berisi array untuk keterampilan, dan memiliki koleksi untuk posisi. Alternatifnya, menulis resume ke database relasional memerlukan aplikasi untuk “menghancurkan” objek pengguna.

Menyimpan resume ini memerlukan aplikasi untuk memasukkan enam baris ke dalam tiga tabel, seperti yang diilustrasikan pada Gambar 3 .

Dan, membaca profil ini mengharuskan aplikasi membaca enam baris dari tiga tabel, seperti yang diilustrasikan pada Gambar 4 .

Sebaliknya, dalam database berorientasi dokumen yang didefinisikan sebagai NoSQL, JSON adalah format de facto untuk menyimpan data – yang juga merupakan standar de facto untuk menggunakan dan memproduksi data untuk aplikasi web, seluler, dan IoT. JSON tidak hanya menghilangkan ketidakcocokan impedansi objek-relasional, tetapi juga menghilangkan overhead kerangka ORM dan menyederhanakan pengembangan aplikasi karena objek dibaca dan ditulis tanpa “merobeknya” (yaitu, satu objek dapat dibaca atau ditulis sebagai satu dokumen) , seperti yang diilustrasikan pada Gambar 5 .

Bagaimana dengan query dan SQL?

Beberapa orang mungkin berpendapat bahwa lebih sulit untuk menanyakan database NoSQL, tetapi ini adalah kesalahpahaman umum. Fleksibilitas yang melekat pada database NoSQL berorientasi dokumen memungkinkan penanganan data terstruktur dan tidak terstruktur dengan baik, dan alat baru memungkinkan pembuatan kueri lebih cepat daripada sebelumnya.

Couchbase Server 4.0 memperkenalkan SQL++, bahasa kueri canggih yang memperluas SQL ke JSON, memungkinkan pengembang memanfaatkan kekuatan SQL dan fleksibilitas JSON. Ini tidak hanya mendukung pernyataan SELECT / FROM / WHERE standar, tetapi juga mendukung agregasi (GROUP BY), pengurutan (SORT BY), penggabungan (LEFT OUTER / INNER), serta menanyakan array dan koleksi bersarang. Selain itu, kinerja kueri dapat ditingkatkan dengan indeks komposit, parsial, mencakup, dan banyak lagi.

Beroperasi pada skala apa pun

Basis data yang mendukung aplikasi web, seluler, dan IoT harus dapat beroperasi pada skala apa pun. Meskipun dimungkinkan untuk menskalakan database relasional seperti Oracle (menggunakan, misalnya, Oracle RAC), hal ini biasanya rumit, mahal, dan tidak sepenuhnya dapat diandalkan. Misalnya saja dengan Oracle, penskalaan menggunakan teknologi RAC memerlukan banyak komponen dan menciptakan satu titik kegagalan yang membahayakan ketersediaan. Sebaliknya, database terdistribusi NoSQL – yang dirancang dengan arsitektur skala besar dan tidak ada satu titik kegagalan pun – memberikan keuntungan operasional yang menarik.

Elastisitas untuk performa dalam skala besar

Aplikasi dan layanan harus mendukung jumlah pengguna dan data yang terus meningkat – ratusan hingga ribuan hingga jutaan pengguna, dan data operasional berukuran gigabyte hingga terabyte. Pada saat yang sama, mereka harus melakukan peningkatan untuk mempertahankan kinerja, dan mereka harus melakukannya secara efisien.

Basis data harus mampu menskalakan pembacaan, penulisan, dan penyimpanan.

Ini adalah masalah untuk database relasional yang terbatas pada peningkatan (yaitu, menambahkan lebih banyak prosesor, memori, dan penyimpanan ke satu server fisik). Akibatnya, kemampuan untuk melakukan penskalaan secara efisien dan sesuai permintaan menjadi sebuah tantangan. Biaya ini menjadi semakin mahal karena perusahaan harus membeli server yang semakin besar untuk mengakomodasi lebih banyak pengguna dan data. Selain itu, hal ini dapat mengakibatkan downtime jika database harus offline untuk melakukan upgrade perangkat keras.

Namun, database NoSQL yang terdistribusi memanfaatkan perangkat keras komoditas untuk memperluas skalanya – misalnya, menambahkan lebih banyak sumber daya hanya dengan menambahkan lebih banyak server. Kemampuan untuk melakukan scaling out memungkinkan perusahaan untuk melakukan scaling secara lebih efisien dengan (a) menggunakan perangkat keras yang tidak lebih dari yang diperlukan untuk memenuhi beban saat ini; (b) memanfaatkan perangkat keras dan/atau infrastruktur cloud yang lebih murah; dan (c) penskalaan sesuai permintaan dan tanpa waktu henti.

Selain dapat melakukan penskalaan secara efektif dan efisien, database NoSQL terdistribusi mudah dipasang, dikonfigurasi, dan diskalakan. Mereka dirancang untuk mendistribusikan proses baca, tulis, dan penyimpanan, serta dirancang untuk beroperasi pada skala apa pun – termasuk pengelolaan dan pemantauan klaster kecil dan besar.

Ketersediaan untuk penerapan global yang selalu aktif

Karena semakin banyak keterlibatan pelanggan dilakukan secara online melalui web dan aplikasi seluler, ketersediaan menjadi perhatian utama, atau bahkan yang utama. Aplikasi yang sangat penting ini harus tersedia 24 jam sehari, 7 hari seminggu – tanpa pengecualian. Memberikan ketersediaan 24×7 merupakan tantangan bagi database relasional yang disebarkan ke satu server fisik atau yang mengandalkan pengelompokan dengan penyimpanan bersama. Jika disebarkan sebagai server tunggal dan gagal, atau sebagai klaster dan penyimpanan bersama gagal, database menjadi tidak tersedia.

Berbeda dengan teknologi relasional, database NoSQL terdistribusi mempartisi dan mendistribusikan data ke beberapa database tanpa sumber daya bersama. Selain itu, data dapat direplikasi ke satu atau lebih instance untuk ketersediaan tinggi (replikasi antarcluster). Meskipun database relasional seperti Oracle memerlukan perangkat lunak terpisah untuk replikasi (misalnya, Oracle Active Data Guard), database NoSQL tidak – database ini sudah ada di dalamnya dan otomatis. Selain itu, failover otomatis memastikan bahwa jika sebuah node gagal, database dapat terus melakukan membaca dan menulis dengan mengirimkan permintaan ke node yang berbeda.

Seiring dengan beralihnya keterlibatan pelanggan secara online, kebutuhan akan ketersediaan di berbagai negara dan/atau wilayah menjadi sangat penting. Meskipun penerapan database ke beberapa pusat data meningkatkan ketersediaan dan membantu pemulihan bencana, hal ini juga memiliki manfaat dalam meningkatkan kinerja, karena semua pembacaan dan penulisan dapat dijalankan di pusat data terdekat, sehingga mengurangi latensi.

Memastikan ketersediaan global sulit dilakukan untuk database relasional jika persyaratan add-on terpisah meningkatkan kompleksitas (misalnya, Oracle mengharuskan Oracle GoldenGate untuk memindahkan data antar database) – atau ketika replikasi antara beberapa pusat data hanya dapat digunakan untuk failover karena hanya satu pusat data aktif pada suatu waktu. Selain itu, ketika melakukan replikasi antar pusat data, aplikasi yang dibangun pada basis data relasional dapat mengalami penurunan kinerja atau menemukan bahwa pusat data sangat tidak sinkron.

Basis data NoSQL yang terdistribusi mencakup replikasi bawaan antar pusat data – tidak diperlukan perangkat lunak terpisah. Selain itu, beberapa diantaranya mencakup replikasi satu arah dan dua arah yang memungkinkan penerapan aktif-aktif penuh ke beberapa pusat data, yang memungkinkan database untuk diterapkan di beberapa negara dan/atau wilayah dan untuk menyediakan akses data lokal ke aplikasi lokal dan penggunanya. Hal ini tidak hanya meningkatkan kinerja, tetapi juga memungkinkan failover langsung melalui router perangkat keras – aplikasi tidak perlu menunggu database menemukan kegagalan dan melakukan failovernya sendiri.

Kesimpulan

Jadi apa itu database NoSQL dan mengapa itu penting saat ini? Ketika perusahaan beralih ke Ekonomi Digital – yang dimungkinkan oleh teknologi cloud, seluler, media sosial, dan data besar – pengembang dan tim operasi harus membangun dan memelihara aplikasi web, seluler, dan IoT dengan lebih cepat dan lebih cepat, serta dalam skala yang lebih besar. NoSQL yang fleksibel dan berkinerja tinggi semakin menjadi teknologi database pilihan untuk mendukung aplikasi web, seluler, dan IoT saat ini.

Ratusan perusahaan Global 2000, bersama dengan puluhan ribu usaha kecil dan startup, telah mengadopsi NoSQL. Bagi banyak orang, penggunaan NoSQL dimulai dengan cache, bukti konsep, atau aplikasi kecil, kemudian diperluas ke aplikasi-aplikasi penting yang ditargetkan, dan sekarang menjadi landasan untuk semua pengembangan aplikasi.

Dengan database NoSQL, perusahaan dapat berkembang dengan lebih gesit dan beroperasi pada skala apa pun – serta memberikan kinerja dan ketersediaan yang diperlukan untuk memenuhi tuntutan bisnis Ekonomi Digital.


Source : https://www.couchbase.com/resources/why-nosql/


Last modified: Monday, 28 October 2024, 12:39 PM