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. Untuk bisa memahami alasan mengapa sampai ada NoSQL mungkin kita bisa melihat perkembangan internet dan aplikasi – aplikasi selama 10-15 tahun terakhir.
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. Untuk bisa memahami alasan mengapa sampai ada NoSQL mungkin kita bisa melihat perkembangan internet dan aplikasi – aplikasi selama 10-15 tahun terakhir.
Pada 10-15 tahun yang
lalu jumlah user pengguna internet dan juga jumlah transaksi data pada
aplikasi – aplikasi yang ada tidaklah sebanyak saat ini dan database
relational yang telah ada dulu sudah sangat mencukupi untuk mengatur
transaksi data yang ada karena secara umum mereka mendukung operasi
transaksi, yang mengijinkan kita merubah sebagian data, melakukan
kontrol terhadap operasi database, support terhadap constraint seperti
unique, primary key, foreign key dan check. Mereka juga memiliki bahasa
SQL atau Simplified Query Language untuk mengakses data, merubah data
seperti operasi insert, update dan delete.
Tetapi semakin dengan berkembanganya jaman terutama semakin berkembangnya dunia internet pada saat ini membuat sebuah perubahan besar pada aplikasi – aplikasi yang digunakannya dikomputer dan juga berimbas pada management datanya. Setiap hari semakin banyak user yang aktif di internet dan menggunakan aplikasi – aplikasi yang juga terhubung dengan internet, semakin banyak data yang harus diatur oleh database dan akan semakin sulit bagi sebuah database relational untuk terus memanage datanya karena akan semakin banyak timbul masalah seperti redudansi data dll.
Tetapi semakin dengan berkembanganya jaman terutama semakin berkembangnya dunia internet pada saat ini membuat sebuah perubahan besar pada aplikasi – aplikasi yang digunakannya dikomputer dan juga berimbas pada management datanya. Setiap hari semakin banyak user yang aktif di internet dan menggunakan aplikasi – aplikasi yang juga terhubung dengan internet, semakin banyak data yang harus diatur oleh database dan akan semakin sulit bagi sebuah database relational untuk terus memanage datanya karena akan semakin banyak timbul masalah seperti redudansi data dll.
Bahkan oracle saja
sampai perlu membangun ORACLE RAC atau Real Application Cluster, yang
menemui banyak tantangan untuk melakukan sinkronisasi data di internal
cache melalui inter-koneksi khusus tapi itu juga belum mampu mengurangi
kesulitan – kesulitan yang muncul dalam melakukan manage data dalam
jumlah yang sangat besar jika menggunakan database relational.
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:
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.
Penyimpanan data dalam
memori menyebabkan proses query akan lebih cepat, karena tidak perlu
lagi mengambil data dari disk. Key-Value Stores, cara ini digunakan oleh
REDIS, Tokyo Cabinet, Azure Table Storage dan lain-lain.
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 :
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.
Gambar 1. Menunjukan Kompleksitas Pada Database Relational Yang Besar
Pada NoSQL memiliki
model yang sangat berbeda, contohnya sebuah document-oriented model,
NoSQL database mengambil data yang ingin disimpan dan menjadikannya satu
buah document yang berformat JSON. Tiap dokumen JSON tersebut dapat
dianggap bersifat object yang bisa langsung digunakan pada aplikasi
anda. Sebuah dokumen JSON dapat mengambil semua data yang tersimpan di
satu baris yang terdapat di 20 table yang terelasi dan mengumpulkannya
menjadi satu object. Pengumpulan data tersebut menjadi satu document
akan dapat menimbulkan duplikasi data tetapi karena storage data tidak
menjadi sebuah penghalan maka menimbulkan data menjadi lebih flexible,
efisien ketika pendistribusian data dan juga proses read and write.
Developers biasanya menggunakan bahasa pemrograman object-oriented untuk membuat aplikasinnya. Dan itu sangat effisien jika data yang ditangani pun berbentuk object. Sedangkan jika dengan relational model yang hanya menyediakan sedikit struktur data yang juga sulit diimplementasikan sebagai bentuk object. Bahkan data harus disimpan pada table – table yang bisa mencapai ratusan table yang tersebar. Memang sudah ada Object-relational framework untuk relational database agar dapat menjadi object tetapi tetap saja karena fundamentalnya relational jadi tetap terdapat celah yang ada pada database dan aplikasi.
Developers biasanya menggunakan bahasa pemrograman object-oriented untuk membuat aplikasinnya. Dan itu sangat effisien jika data yang ditangani pun berbentuk object. Sedangkan jika dengan relational model yang hanya menyediakan sedikit struktur data yang juga sulit diimplementasikan sebagai bentuk object. Bahkan data harus disimpan pada table – table yang bisa mencapai ratusan table yang tersebar. Memang sudah ada Object-relational framework untuk relational database agar dapat menjadi object tetapi tetap saja karena fundamentalnya relational jadi tetap terdapat celah yang ada pada database dan aplikasi.
Gambar 2. Contoh NoSQL
Salah satu perbedaan
besar lainnya 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. Ingin mengambil suatu informasi baru yang belum
pernah kita pikirkan sebelumnya untuk masuk database kita ?
Ingin membuat sebuah
perubahan mendasar kepada aplikasi yang mengharuskan perubahan data
format dan isinya? Jika kita tetap menggunakan relational model maka
perubahan – perubahan tersebut akan sangan menggangu dan merusak
database dan biasanya akan dihindari oleh developer. Yang sebenarnya
cara dari relational database sudah sangat bertentangan dengan era Data
Besar / Bid Data yang ada sekarang, dimana developer harus siap dengan
data – data baru untuk memperbaiki aplikasi mereka.
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.
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 : http://www.jejaring.web.id/cara-mudah-memahami-nosql-database/
Tidak ada komentar:
Posting Komentar