Home Database NoSQL, Ketika Database tidak lagi membutuhkan Relasi
formats

NoSQL, Ketika Database tidak lagi membutuhkan Relasi

Published on December 23, 2012, in Database.

 

Alhamdulilah masih dikasih kesempatan bisa terus update dan posting hal-hal bermanfaat.

Kali ini ane share tentang NoSQL, melihat judul diatas sepertinya agak aneh, database tanpa relasi ..?, bagaimana bisa bekerja dengan maksimal..?, bagaimana bisa berfungsi ketika ada banyak data..?, bagaimana ?, bagaimana ?, dan bagaimana ?. Banyak pertanyaan yang muncul ketika ane mempelajarinya. kenapa bisa ?, bagaimana ?…

Dan sekarang ane mau berbagi kepada teman-teman dari apa yang ane pelajari. Yuph, memang ada dan sudah banyak pula yang memakai. Sebenarnya apa sih NoSQL itu ?

Bagi yang suka kiasan, pasti mengibaratkan NoSQL adalah lawannya SQL, haha.. kalau teman-teman mengerti pasti bisa dibilang begitu, karena memang konsep RDBMS si SQL menjadi hilang pada NoSQL. NoSQL sering disebut singkatan dari Not Only SQL.

NoSQL adalah sebuah konsep mengenai penyimpanan data non-relasional. Berbeda dengan model basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa metode yang berbeda-beda ( Wikipedia ). Metode ini bergantung dari jenis database yang digunakan. Karena NoSQL sendiri merupakan konsep database, dan pada implementasinya, banyak jenis-jenis dari NoSQL ini.

NoSQL sangat berguna pada data-data yang terus-menerus berkembang, dimana  data tersebut sangat kompleks sehingga sebuah database relational tidak lagi bisa mengakomodir. Salah satu bentuknya adalah ketika suatu data saling berhubungan satu sama lain, maka akan muncul proses duplikasi data. Dimana data saling memanggil ke beberapa permintaan, tambahan data baru, perubahan data, dan lain-lain dengan key yang sama. Karena faktor hubungan antar data yang sama terjadi terus-menerus, mendorong faktor redudansi data, data menjadi berlipat-lipat, dan pada akhirnya akan menyebabkan crash pada database berkonsep RDBMS.

Harus ada cara lain untuk menanggulangi masalah ini,  dan NoSQL lah solusinya. NoSQL menyederhanakan proses yang terjadi dalam sistem basis data relasional. Dimana hal-hal yang menyebabkan redudansi, dihilangkan sehingga trafik server akan seimbang. Penyederhanaan proses ini memungkinkan data direplikasi di banyak server secara mudah dan menjamin ketersediaan data.

Contoh nyata penjelasan diatas bisa teman-teman lihat pada situs jejaring sosial, FACEBOOK.COM. Pernahkah berfikir sebesar apa server penyimpanan facebook dengan anggota ribuan orang tersebut ?. Apabila teman-teman alim, mungkin tidak jadi masalah, tapi bagaimana jika ada yang narsis lalu sering upload foto setiap hari ?, bagaimana kalau setengah dari member facebook adalah orang-orang yang narsis ?, berapa besar ukuran yang dibutuhkan facebook pada servernya ?

 

Setelah mengerti apa itu NoSQL, Sekarang saatnya mengenal database NoSQL.

Dalam NoSQL, terdapat berbagai macam bentuk database dengan schema dan konsepnya sendiri. Sama halnya dengan database SQL yang seperti teman-teman kenal seperti MySQL, SQL Server, Oracle, PostgreSQL, dan lain-lain. Dalam NoSQL, terdapat MongoDB, CouchDB, Riak, dan lain-lain. Ane akan bahas beberapa database NoSQL.

 

1. Mengenal MongoDB

MongoDB merupakan sebuah sistem basis data yang berbasis dokumen (Document Oriented Database). Konsep ini sangat membingungkan kalo kita terbiasa dengan RDMS.MongoDB tidak ada yang namanya tabel, kolom dan baris. Dalam MongoDB yang ada hanyalah koleksi (collection – bisa dianggap Table) dan dokumen (document – bisa dianggap row). Koleksi dalam MongoDB bisa kita anggap sebuah Folder (Directory) dan Dokumen bisa kita anggap berkas (File) dalam Folder (Koleksi) tersebut.

Pada MongoDb kita tidak mengenal istilah RELASI karena kita befikir dalam kerangka dokumen. semua yang kita butuhkan diletakkan didalam sebuah dokumen.

KELEBIHAN MongoDB

MongoDB merupakan sistem basis data yang menggunakan konsep key-value, artinya setiap dokumen dalam MongoDB pasti memiliki key. Hal ini berbeda dalam RDMBS yang kita bisa tidak menggunakan primary key ketika membuat sebuah tabel. Sehingga walaupun kita membuat sebuah dokumen tanpa menggunakan primary key, tapi secara otomatis MongoDB memberinya sebuah key. Penggunaan konsep key-value sangat berperan penting, karena hal ini membuat MongoDB menjadi sistem basis data yang sangat cepat jika dibandingkan dengan non key-value seperti RDBMS.

MongoDB mendukung replikasi, selain itu konfigurasi replikasi pada MongoDB sangatlah mudah jika dibandingkan sistem basis data RDBMS (IMHO). Hal ini membuat pemilik sistem yang memiliki traffic membaca tinggi (seperti portal berita, forum dan blog) akan sangat terbantu ketika sistemnya akan menggunakan replikasi.

Selain replikasi, MongoDB juga mendukung sharding. Jika Anda pernah melakukan sharding di RDBMS yang sangat berdarah-darah :D , maka akan sangat kagum dengan sharding di MongoDB. Kapan kita menggunakan sharding? Saat Anda memiliki website yang sudah sangat besar jumlah penggunanya, datanya mencapat jutaan giga byte. Anda dapat menggunakan sharding, misal membasis basis data Anda menjadi per regional.

Salah satu kelebihan MongoDB lainnya adalah, MongoDB mendukung model pemrograman MapReduce, sebuah konsep yang sangat fenomenal yang pernah dikeluarkan oleh Google dan saat ini banyak diimplementasikan seperti pada Apache Hadoop.

MongoDB memiliki banyak sekali kelebihan yang diantaranya, yaitu:
1. Sangat bagus untuk data list produk, karena MongoDB bisa melakukan searching lebih cepat ketimbang MySql
2. Kita tidak perlu membuat struktur tabel, kita hanya perlu melakukan proses insert maka MongoDB akan otomatis membuatkan struktur tabelnya
3. Proses CRUD (Create, Update, Delete) terasa sangat ringan (waktu saya mencobanya menggunakan PHP)

Bahasa MongoDb

MongoDB tidak menggunakan bahasa yang biasa digunakan RDBMS (SQL atau PL/SQL). MongoDB menggunakan bahasa BSON, dimana BSON merupakan singkatan dari Binary JSON. Jika Anda terbiasa menggunakan JavaScript, pasti tidak akan terlalu sulit menggunakan MongoDB. Berikut ini contohnya (http://www.mongodb.org/)

{
       "nama" : "randi",
       "alamat" : {
           "jalan" : "Taman Harapan Baru",
           "kota" : "Bekasi",
           "status" : "Mahasiswa"
       }
   }
2. Mengenal Cassandra Apache
adalah sebuah aplikasi database berbasis Bigtabel’s Data. Dikutip dari situs resminya, Database Apache Cassandra adalah pilihan yang tepat ketika Anda membutuhkan skalabilitas dan ketersediaan tinggi tanpa mengorbankan kinerja. Skalabilitas linear dan terbukti toleransi kesalahan pada perangkat keras komoditas atau infrastruktur cloud membuatnya menjadi platform yang sempurna untuk misi-data penting. Dukungan Cassandra untuk mereplikasi di beberapa pusat data yang terbaik di kelasnya, memberikan latency rendah untuk pengguna Anda dan ketenangan pikiran mengetahui bahwa Anda dapat bertahan hidup padam daerah. ColumnFamily Cassandra data model menawarkan kenyamanan indeks kolom dengan kinerja log-terstruktur update, dukungan yang kuat untuk pandangan terwujud, dan kuat built-in caching. Cassandra Dikembangkan oleh APACHE. Aplikasi Inilah yang digunakan facebook untuk penyimpanan miliayaran data hingga saat ini. (http://cassandra.apache.org/)

3. Mengenal CouchDB 
Sama seperti Cassandara, CouchDB juga dikembangkan oleh APACHE. Dikutip dari situs resminya, CouchDB adalah database yang benar-benar merangkul web. Menyimpan data Anda dengan dokumen JSON. Mengakses dokumen Anda dengan browser web Anda, melalui HTTP. Query, menggabungkan, dan mengubah dokumen Anda dengan JavaScript. CouchDB bekerja dengan baik dengan web modern dan aplikasi mobile. Anda bahkan dapat melayani aplikasi web langsung dari CouchDB. Dan Anda dapat mendistribusikan data Anda, atau aplikasi Anda, efisien menggunakan replikasi tambahan CouchDB itu. CouchDB mendukung master-master setup dengan deteksi konflik otomatis. 

CouchDB hadir dengan serangkaian fitur, seperti on-the-fly transformasi dokumen dan real-time pemberitahuan perubahan, yang membuat web app pengembangan mudah. Bahkan datang dengan mudah untuk menggunakan konsol web administrasi. Anda menebak itu, disajikan langsung dari CouchDB! Kami peduli banyak tentang skala didistribusikan. CouchDB sangat tersedia dan partisi toleran, tetapi juga akhirnya konsisten. Dan kita peduli banyak tentang data Anda. CouchDB memiliki mesin fault-tolerant penyimpanan yang menempatkan keamanan data Anda terlebih dahulu. (http://couchdb.apache.org/)

Untuk database NoSQL lainnya bisa teman-teman pelajari sendiri yaa.. ^_^

Nah, sampai disini sharing ane mengenai NoSQL, semoga bisa bermanfaat.

9 Responses

  1. nice post, lagi pengen nyoba redis gan… ditunggu updatenya

  2. Semangat terus untuk selalu berbagi, Gan. Terimakasih Gan, postinganya bermanfaat :)

  3. Saya tertarik dengan tulisan Anda. Saya juga mempunyai informasi mengenai basis data Oracle dan pendaftaran kursus Oracle yang bisa Anda kunjungi di http://lpug.gunadarma.ac.id/sertifikasi/owdp/eng/welcome

  4. I hardly comment, but i did a few searching and wound up
    here belajar NoSQL, NoSQL adalah |. And I do have some questions for you
    if it’s allright. Is it only me or does it look as if like some of the
    comments appear as if they are written by brain dead individuals?
    :-P And, if you are writing at additional sites, I’d like to follow anything new you have to post.
    Could you make a list of every one of your community pages like your linkedin profile, Facebook page or twitter feed?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>