Konsep NoSQL

            NoSQL merupakan kombinasi dua kata, kata No dan SQL. NoSQL adalah teknologi yang menandingi SQL. Pembuat dan pengadopsi awal dari kata NoSQL menginginkan untuk berkata No RDBMS atau No Relational tetapi akhirnya disuarakan dengan kata NoSQL. NoSQL digunakan sebagai payung pengertian untuk semua basis data dan penyimpanan data yang tidak mengikuti dasar-dasar RDBMS. NoSQL mewakili kelas dari produk dan kumpulan yang berbeda konsep tentang penyimpanan data dan manipulasi.
            Sejarah konsep NoSQL dimulai ketika Carlo Strozzi pada tahun 1998 menggunakannya untuk nama open source database relational yang tidak mengikuti standar SQL, kemudian Eric Evans (karyawan Rackspace) memperkenalkan kembali istilah NoSQL pada awal 2009 ketika Johan Oskarsson dari Last.fm ingin menyelenggarakan acara untuk membahas distributed database open source.
            Sejarah NoSQL tidak lepas dari kesulitan-kesulitan yang terjadi dalam penanganan perkembangan database dengan menggunakan konsep relational database. Dalam praktiknya, database tidak hanya berkembang secara vertikal (adanya penambahan baris), tetapi juga berkembang secara horisontal (adanya penambahan field). Ketika field bertambah banyak permasalahan yang terjadi ketika menggunakan konsep RDBMS. Dalam konsep RDBMS, penambahan field merupakan masalah yang harus dihindari, akan tetapi pada kenyataannya hal itu sering terjadi. Konsep tersebut yang mendasari adanya konsep NoSQL. NoSQL tidak membutuhkan skema tabel dan umumnya menghindari operasi join karena berkembang secara horisontal. Kaum akademisi menyebutnya sebagai structured storage (penyimpanan terstruktur).
            Eric Brewer menyatakan bahwa NoSQL didasarkan pada teori CAP yaitu pemilihan dua dari tiga aspek yang ada yang harus dipenuhi oleh basis data yaitu Consistency, Avaibility, dan Partition Tolerance. Consistency Avaibility (CA) berseberangan dengan Partition Tolerance dan biasanya berhubungan dengan replikasi. Consistency Partition Tolerance (CP) berseberangan dengan Avaibility dalam penyimpanan data. Avaibility Partition Tolerance sistem mencapai kondisi eventual consistency melalui replikasi dan verifikasi yang konsisten dalam node yang telah terbagi-bagi. Dalam basis data NoSQL penerapan konsep tersebut diterjemahkan dalam empat konsep dasar yaitu Non Relational, Map Reduce, Schema Free, dan Horizontal Scaling.
a.        Non Relational
Konsep Non Relational dalam basis data NoSQL meliputi hirarki, graf, dan basis data berorientasi obyek yang sudah terlebih dahulu ada sejak tahun 1960 sebelum akhirnya basis data relational muncul pada tahun 1960. Penggunaan basis data non relational kembali merebak seiring dengan bertambahnya aplikasi berbasis web yang memerlukan banyak penyimpanan data. Meskipun memiliki kelemahan pada konsistensi dan redundansi data, namun basis data non relational dapat menyelesaikan beberapa permasalahan terkait dengan avaibility dan partition tolerance. Tugas pengecekan konsistensi dan redundansi data diserahkan pada sisi aplikasi, sedangkan basis data non relational hanya bertugas memanipulasi penyimpanan saja.
b.        Map Reduce
Map reduce merupakan model pemrograman yang diadaptasi dari pemrograman fungsional yang diimplementasikan untuk mengolah dataset yang sangat besar. Tujuan dai Map Reduce adalah merancang suatu abstraksi baru yang memungkinkan pengguna untuk membuat antar muka pemrograman sederhana dan menyembunyikan detail yang rumit dari paralelisasi, fault-tolerance, distribusi data, dan load balancing dalam pustaka pemrogramannya. Hasilnya menunjukkan bahwa penerapan Map Reduce dapat menyederhanakan antar muka pemrograman yang dapat mendukung paralelisasi dan distribusi komputasi skala besar secara otomatis.
            Pemrograman dengan Map Reduce telah sukses diterapkan penggunaannya ole Google untuk berbagai tujuan, salah satunya adalah Google Indexing. Dalam kinerjanya, Google menerapkan ribuan mesin yang bekerja pada ratusan tera bytes data dengan lokasi server yang tersebar di beberapa lokasi. Jenis arsitektur seperti ini dapat mengurangi waktu kinerja yang diperlukan. Pembangunan arsitektur Google dengan menggunakan Map Reduce memerlukan waktu hanya dalam beberapa jam saja dibandingkan dengan tidak menerapkan Map Reduce yang memerlukan waktu selama berbulan-bulan. Penggunaan library dalam Map Reduce memiliki beberapa keuntungan seperti load balancing, optimasi perangkat penyimpanan yang nantinya akan meningkatkan keefisiensian sistem dan memudahkan dalam penggunaannya. Mudahnya Map Reduce bekerja dengan membagi proses menjadi dua fase, yaitu tahap map dan tahap reduce. Seorang programmer dapat memanfaatkan dua fungsi ini bersama fungsi key-value pairs sebagai input dan output untuk mencapai semua fase.
c.         Schema Free
NoSQL dan RDBMS memiliki perbedaan dalam hal penerapan skema basis data. Dalam basis data relasional, sebuah tabel didesain dengan peraturan skema yang ketat. NoSQL menyimpan data dengan aturan yang lebih longgar, artinya tidak seperti basis data yang berdasarkan SQL tradisional. NoSQL tidak memiliki tabel, kolom, primary key, foreign key, join, relasi (Joe Lennon, 2009).
Dalam pengembangan basis data relasional, developer/ database administrator harus berhati-hati dalam menentukan bagaimana tabel saling berelasi dan field yang ada dalam setiap tabel, karena perubahan skema dalam RDBMS dapat menimbulkan masalah ketergantungan dan integritas, seperti timbulnya kolom null dan relasi kunci yang tidak cocok. Hal tersebut bukan masalah dalam NoSQL karena adanya penerapan schema-free. Setiap dokumen bertanggung jawab terhadap isinya sendiri. Jadi null value dapat dihilangkan dalam beberapa baris, dan field baru dapat didefinisikan dalam setiap dokumen secara independen.
Manfaat  lain  dalam  penggunaan  schema-free  adalah  penghematan  dalam  media  penyimpanan.  Dalam  basis  data relasional, setiap  field  yang ada dalam tabel  harus mempunyai nilai, walaupun nilai itu null. Model data  schema free artinya setiap baris memungkinkan memiliki nilai sebanyak yang telah didefinisikan dalam tiap field, dan tidak perlu menggunakan  nilai  yang  memang  tidak  diperlukan. (Eben Hewitt, 2010). 
Kelemahan dalam penggunaan schema-free adalah memunculkan lemahnya pendefinisian struktur yang memungkinkan terjadinya  penggunaan basis data yang tidak konsisten. Jika tujuan pembangunan basis data  didasarkan pada konsistensi yang ketat, seperti wiki, document management   systems, discussion forums, blogs, dan support management systems, maka basis  data relasional masih merupakan pilihan yang tepat.


d.        Horizontal Scaling

Horizontal scaling memungkinkan basis data dijalankan pada beberapa server untuk meningkatkan kemampuan perangkat penyimpanan dan meningkatkan efisiensi waktu. Hal ini memerlukan kemampuan dinamis pemartisian data dalam serangkaian node (storage host) dalam suatu cluster server. Kemampuan dengan menambahkan beberapa komputer sangatlah penting dilakukan untuk data yang jumlahnya banyak, karena vertical scaling dilakukan dengan meningkatkan kemampuan spesifikasi single server terbatas dan lebih mahal.

Posting Komentar

1 Komentar

  1. You really make it seem so easy with your presentation but I
    find this topic to be actually something that I think I would never understand.
    It seems too complex and extremely broad for me.
    I'm looking forward for your next post, I will try to get
    the hang of it!

    Also visit my web blog: louis vuitton Outlet

    BalasHapus