NoSQL adalah suatu
evolusi baru yang ada didalam dunia database. Dalam namanya sendiri NoSQL bukan
berarti No dengan tetapi lebih ke Non Stop SQL. Yaitu jika SQL diibaratkan
dengan relational database maka NoSQL adalah non-relational Database.
Sebenarnya NoSQL ini dikembangkan pertama kali pada tahun 1998 oleh Carlo
Strozzi. Lalu, pada tahun 2009, Eric Evans memperkenalkan kembali teknologi
NoSQL.
Apakah yang dimaksud
dengan Non Stop SQL itu sendiri? Ini adalah suatu perkembangan dari database
rational yang telah sejak ada dan digunakan mulai tahun 1970-an sampai
sekarang. Mengapa perkembangan dari database rational ini dibutuhkan dan pada
akhirnya membuat suatu database system baru bernama NoSQL.
Google, Amazon,
Facebook, and LinkedIn adalah perusahaan – perusahaan besar pertama yang
mengetahui batasan – batasan yang ada pada relational database untuk dapat
menyupport kebutuhan dari aplikasi – aplikasi baru yang terus dikembangkan.
Akhirnya pun mereka membuat sebuah data management yang baru. Muncullah Open
Source NoSQL, proyek database yang dibentuk untuk meningkatkan kinerja
perusahaan – perusahaan yang menjadi pelopor dan perusahan – perusahaan
komersial yang menjalin kerja sama dengan proyek ini setelahnya.
Apa yang membuat NoSQL
berbeda dengan SQL yang berbasis RDBMS atau relational database tadi? NoSQL
tidak menggunakan sintaks SQL untuk memyimpan data. Penyimpanan data dalam
NoSQL tidak memerlukan skema tabel yang tetap seperti pada relational database.
NoSQL memiliki empat metode, yaitu:
· Table-oriented, contoh: Google dengan
Big Table dan juga Facebook dengan Cassandra,
·
Graph-oriented,
·
Document-oriented database, contoh:
MongoDB dan juga CouchDB,
·
Key-value store, contoh: Memcache dan
Redis .
Metode NoSQL yang pertama adalah table-oriented. Metode ini biasanya
hanya dikembangkan oleh yang membuatnya sendiri seperti Google dan Facebook
dengan Big Table dan Cassandranya. Performa dan hasil dari metode ini tidak
perlu kita ragukan lagi karena kita telah tiap hari menggunakan kedua website
ini dan meskipun dengan berjuta – juta data yang ada di database mereka tapi
kita tetap bisa memaksimalkan website mereka.
Metode
NoSQL yang kedua adalah Document-oriented
database. Jenis NoSQL ini merupakan database yang berbasiskan dokumen.
Tidak ada tabel, field dan record, yang ada hanyalah koleksi dan dokumen.
Koleksi dapat disamakan dengan tabel dan dokumen disamakan dengan field.
Berbeda dengan database relasional, pada document oriented database, dokumen
dapat memiliki field yang berbeda dengan dokumen lain walaupun berada dalam
satu koleksi. Hal ini tidak dapat dilakukan dengan database relasional dimana
sebuah record tidak mungkin memiliki field yang berbeda dengan record yang
berada dalam satu tabel. Document Oriented digunakan oleh Mongodb,
Couchdb, Ravendb, dan lain-lain.
Metode
NoSQL selanjutnya adalah graph-oriented,
yaitu jenis database NoSQL yang menggunakan struktur graph dengan node, edge
dan properties untuk menyimpan datanya. Metode ini digunakan oleh Infinite
Graph, InfoGrid, Neo4J dan lain-lain.
Yang
terakhir adalah key-value store.
Hampir sama seperti document-oriented database, yang berbeda adalah media
penyimpanannya. Dalam key-value store, data tidak langsung disimpan dalam disk
seperti database pada umumnya. Data disimpan dalam memori komputer dan sesekali
data dalam memori ditulis ke disk.
Mengapa banyak yang
beralih ke NoSQL terlebih koorporasi atau perusahaan – perusahaan besar yang
menggunakan data yang banyak. Pada hari ini terdapat 3 hal besar yang
mempengaruhi perkembangan ini yaitu Jumlah
User yang Banyak, Jumlah Data yang
besar dan yang terakhir teknologi terbaru yaitu cloud computing. Dan dengan 3 hal besar diatas juga menjadikan
database system harus mampu bergerak secara :
·
Data harus bisa bergerak secara flexible,
·
Harus mampu bergerak secara cepat dengan
data dan user yang besar;
· Dan yang terakhir peningkatan performa
untuk dapat memuaskan user yang menginginkan pengolahan data yang cepat.
Dan ketiga hal
tersebutlah yang diharapkan mampu didatangkan oleh NoSQL dengan metode –
metodenya. Karena NoSQL memiliki model data yang lebih flexible daripada
Relational database. Jika pada relational database memasukkan data pada table –
table yang terrelasi dan ditiap table – table tersebut terdapat baris dan kolom
untuk menyimpan infomasi – informasi yang ada. Referensi tiap table yang
terelasi berasal dari foreign key dimasing – masing table. Sebenarnya cara
penyimpanan ini meminialisir penggunaan data karena penyimpanan tiap data hanya
pada satu tempat. Tetapi penyimpanan yang kecil ini lama kelamaan akan menjadi
besar jika tingkat kekompleksan database tersebut bertambah. Karena jika akan
melakukan pencarian data maka data tersebut akan dilook-up atau dicari dibanyak
table bahkan bisa mencapai ratusan table yang tersebar dan menggabungkannya
sebelum disajikan di website atau aplikasi.
Salah satu perbedaan
besar pada NoSQL adalah pada relational mode memiliki schema yang kaku sedangkan
NoSQL adalah schemaless. Relational database mengharuskan sebuah define yang
pasti dari sebuah skema untuk melakukan penyimpanan didatabase. Perubahan skema
data akan merubah hampir keselurahan database tersebut. Sebagai sebuah
perbandingan, document-oriented database adalah schemaless, yang memperbolehkan
anda untuk menambahkan data yang ada di field – field dari JSON tersebut tambah
harus mendifiniskan perubahan tersebut. Dan juga format data yang dimasukkan
pun dapat diubah tiap waktu tanpa menggangu aplikasi tersebut. Cara tersebutpun
membuat developer dapat melangkah lebih cepat memasukan data baru ke aplikasi
mereka. Perbedaan besar antara relational dan NoSQL database telah mengambil
perhatian dari banyak developer aplikasi. Karena mereka telah mengukur seberapa
besar tingkat produktivitas mereka dapat ditingkatkan dengan NoSQL database.
Karena itu semualah
NoSQL muncul sebagai sebuah evolusi baru dari database system yang dibutuhkan
oleh sebuah aplikasi untuk dapat berubah secara drastic karena perkembangan
jaman yang ada yang terus menuntun untuk aplikasi dapat bertahan dibalik dari
perkembangan pengguna/user yang terus meningkat (dan juga expectations dari
user agat aplikasi tersebut berjalan), berkembang dijumlah dan banyaknya jenis
data yang developer harus kendalikan, dan pertumbuhannya cloud computing yang
juga membutuhkan sebuah distributive three-tier internet architecture. NoSQL
technology berkembang secara cepat di perusahaan – perusahaan yang bergerak di
internet karena menawarkan managemen data yang memenuhi kriteria dari
perkembangan jaman ini.
Sumber :
No comments:
Post a Comment