Selasa, 08 Mei 2012

Gak harus membosankan, kan?


Gak harus membosankan, kan?

Banyak orang menganggap remeh database. Walaupun fungsi database begitu penting, tetapi karena modelnya dianggap itu-itu saja, orang sering meremehkan. Topik database pun terasa membosankan bagi beberapa praktisi.
Penyebabnya adalah ketika orang mendengar kata database biasanya yang ada di benaknya adalah relational database, yang konsep awalnya menggunakan aljabar relational dan diutarakan oleh CJ Date. Popularitas ini juga diikuti produk-produk relational database yang populer di pasaran seperti Oracle, Postgresql, Sqlite, MySql, dan lainnya. Namun, sebetulnya model database itu bukan saja relational database.
Sebetulnya, sebelum model relational populer, banyak model database yang telah ada sebelumnya. Misalnya flat database, hierarki database, dan lain sebagainya. Hal ini menjadikan bidang bahasan atau bidang studi database terkesan seperti hal yang membosankan. Orang sering terjebak hanya pada akrobat dan keterampilan menuliskan perintah SQL. Ataupun kemampuan melakukan normalisasi tabel database.
Namun saat ini, model relational model memiliki keterbatasan, terutama ketika jumlah data yang harus diolah sudah besar dan sifat data bukanlah nonrelational.
Sebagai contoh, database untuk menyimpan data log, atau mailbox. Website seperti Facebook dan Digg membutuhkan solusi database yang seperti ini. Model database dan implementasi yang tepat dapat meminimalkan kebutuhan perangkat keras serta memberikan kinerja yang lebih baik.

Salah satu model database nonrelational yang saat sedang naik daun adalah yang menerapkan mekanisme MapReduce. Map-Reduce merupakan suatu mekanisme pengolahan data secara paralel yang dipopulerkan oleh Google.
Pada dasarnya, mekanisme ini memungkinkan pencarian suatu data pada mesin yang tidak perlu sejenis dan dilakukan secara paralel, serta bersifat fault-tol-erance. Memang terjadi perdebatan antara praktisi database konvensional dan praktisi database yang memanfaatkan MapReduce ini. Pendekatan MapReduce memang terkesan seperti sangat praktikal, tetapi sesungguhnya semantik operasi dari MapReduce bukanlah hal baru. Pada pembahasan pemrograman functional, fungsi Map dan fungsi Reduce telah lama dikenal.
Beberapa implementasi yang memanfaatkan MapReduce dan cukup dikenal adalah Hadoop [http://hadoop.apache.org]. Hadoop ini dimanfaatkan dalam implementasi seperti HBase [http://hadoop.apache.org/hbase] yang merupakan salah satu implementasi Hadoop paling menarik untuk dilihat.

Model database lain yang dikenal saat ini adalah NoSQL [http://nosql-databases.org]. NoSQL pertama kali dilontarkan pada tahun 2009 oleh Eric Evans. Saat itu dia membutuhkan suatu database terdistribusi yang bersifat non-relational dan tidak perlu menjamin masalah ACID (Atomicity, Concistency, Isolation, Durability). Database model ini tidak menggunakan skema tabel yang tetap dan biasanya menghindari operasi "join". NoSQL mencoba mengatasi kebutuhan skalabilitas horizontal.

Solusi proprietary seperti BigTable dari Google dan Dynamo dari Amazon merupakan contoh solusi yang menggunakan model database nonrelational.

Beberapa solusi open source seperti Cassandra [http://incubator.apache.org/cassandra] yang awalnya digunakan oleh Facebook dan CouchDB [http://couchdb.apache.org] merupakan database berorientasi dokumen yang ditulis menggunakan Erlang.

Jadi, janganlah terpaku hanya pada model relational. Dengan memahami karakter data dan kebutuhan, Anda dapat memilih model database yang lebih tepat dan implementasi yang mendukung model itu. Database pun kini tidak lagi membosankan.

Tidak ada komentar:

Posting Komentar