NoSQL

Tanpa disadari, ternyata aku semakin jarang menulis hal-hal yang berbau teknis di blog ini. Jadi dengan tulisan ini, aku mencoba untuk menulis hal yang sedikit teknis. Tulisan ini hanya sebuah pengantar ke NoSQL, dibuat salah satunya untuk mengakomodasi keingintahuan mas miftahgeek dalam postinganku sebelumnya beberapa hari yang lalu.

Apa itu NoSQL?

Menurut Wikipedia, 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. Metode-metode tersebut menurut Dwight Merriman, salah satu kontributor MongoDB, di antaranya adalah:

  • Key-value stores, more or less pure. I.e., they store keys+BLOBs (Binary Large OBjects), except that the “Large” part of “BLOB” may not come into play.
  • Table-oriented, more or less. The major examples here are Google’s BigTable, and Cassandra.
  • Document-oriented, where a “document” is more like XML than free text. MongoDB and CouchDB are the big examples here.
  • Graph-oriented. To date, this is the smallest area of the four. I’m reserving judgment as to whether I agree it’s properly included in HVSP and NoSQL.

Mengapa NoSQL? Apa yang salah dengan basis data relasional?

Sebenarnya tidak ada yang salah dengan basis data relasional. Terkadang, ada beberapa kasus di mana data yang akan diproses berukuran sangat besar dan teknik duplikasi basis data pada sistem basis data relasional tidak dapat digunakan. Salah satu contohnya adalah Facebook. Pengguna Facebook mencapai ratusan juta. Jika ada separuh saja dari total semua pengguna Facebook yang narsis dan terus melakukan update status atau apapun di sana, bayangkan berapa besar data yang dihasilkan. Dan aku yakin, hampir sebagian besar pengguna Facebook (termasuk anda, dan mungkin saya :p) adalah orang-orang yang secara aktif (narsis) menggunakan layanan Facebook.

Pengolahan data yang sedemikian besar tidak dapat dilakukan hanya dengan melakukan duplikasi sistem basis data. Harus ada cara lain yang memungkinkan pemrosesan data berukuran besar. Salah satu cara yang mungkin untuk diterapkan adalah dengan menggunakan sistem terdistribusi. Metode-metode yang telah disebutkan di atas memungkinkan penyederhanaan proses dalam basis data sehingga dapat diterapkan secara terdistribusi. Metode-metode ini beserta NoSQL sering disebut sebagai HVSP (High-Value Simple Processing).

Metode-metode dalam NoSQL menyederhanakan proses yang terjadi dalam sistem basis data relasional. Penyederhanaan proses ini memungkinkan data direplikasi di banyak server secara mudah dan menjamin ketersediaan data. Namun di sisi lain, penyederhanaan proses ini memiliki beberapa efek samping. Beberapa metode tersebut mengurangi integritas data, satu hal yang dijamin oleh basis data relasional. Namun demikian, ada beberapa implementasi NoSQL yang juga telah menyediakan integritas data seperti basis data relasional.

Alternatif bagi basis data relasional

Dalam beberapa sumber, NoSQL ditegaskan tidak untuk menggantikan basis data relasional. Tujuan pengembangan NoSQL adalah untuk menyelesaikan berbagai masalah yang tidak bisa ditangani oleh basis data relasional, yaitu masalah skalabilitas untuk pemrosesan data berukuran besar. Jika data yang anda gunakan dalam aplikasi nanti akan berkembang menjadi berukuran besar, maka NoSQL dapat menjadi pertimbangan alternatif sebagai penyimpanan data.

Sumber bacaan untuk NoSQL dapat dilihat di http://nosql-database.org/links.html.

Tunggu tulisanku selanjutnya mengenai NoSQL… 😀

Credits: Movie Seating webcomic by Randall Munroe of xkcd.com.

20 tanggapan untuk “NoSQL

  1. hai…
    lam kenal…
    thanks utk pembahasan ini. aq lagi kuliah nih IT, trus di suruh buat laporan ttg db dengan memilih topik yg di kasih dosen. ada topik ttg NoSQL. setelah melihat ini, aq jadi pengen pilih topik ini, tapi aq ga tau banyak apalagi soal contoh querynya… bisa ga di bahas contoh2nya?? atau di tmbah info lagi soal NoSQL. please…..
    thanks yah

    1. NoSQL bersifat non-relasional, berbeda dengan SQL Server dan MySQL yang bersifat relasional.

      Dengan kata lain, NoSQL tidak memiliki aturan entitas dan relational seperti pada relational database..

  2. ini non relational, artinya tidak berelasi?? … , databasenya kan bakal lebih dari satu table,, bagaimana bisa si table berkomunikasi atau nyambung kalau mereka tidak berelasi?

    1. setahu saya berbeda..
      NoSQL lebih ke non-transactional database sehingga mudah untuk menangani data berukuran besar dengan cara duplikasi data..
      basis data terdistribusi masih ada transactionalnya sehingga harus ada penanganan bila terjadi update data secara asynchronous..
      CMIIW..

  3. Ping-balik: Internet nut's Box

Ada apa di pikiranmu?

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s