NoSQL adalah jenis basis
data yang tidak menggunakan perintah SQL dalam memanipulasi (menyimpan maupun
mengambil data) basis data tersebut. Kebanyakan basis data NoSQL digunakan
dalam dunia aplikasi web waktu nyata (real-time web app).
Berbeda dengan SQL Database, dari namanya
saja sudah bisa ditebak bahwa nosql database adalah kebalikan dari sql
database. Tidak relational atau
tanpa relation. Database nosql atau yang biasa disebut NoSQL database atau cloud database merupakan
penyimpanan data / database yang tidak terstruktur.
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.
Dilihat dari cara
penyimpanan data saja basis data NoSQL tersebar dari cara penyimpanan:
·
Key-Value based (disimpan
dalam bentuk kunci-isi berpasangan)
Kunci-nilai/Key-value (KV)
toko menggunakan array asosiatif (juga dikenal sebagai peta atau kamus) sebagai
model data fundamental mereka. Dalam model ini, data direpresentasikan sebagai
kumpulan pasangan kunci-nilai, sehingga setiap tombol mungkin muncul paling
banyak sekali dalam koleksi. Model kunci-nilai adalah salah satu model data
non-sepele sederhana, dan model data yang lebih kaya sering diimplementasikan
di atas itu. Model kunci-nilai dapat diperluas untuk model memerintahkan yang
mempertahankan kunci agar leksikografis. Ekstensi ini sangat kuat, dalam hal
ini secara efisien dapat memproses rentang kunci. Toko kunci-nilai dapat
menggunakan model konsistensi mulai dari konsistensi akhirnya ke
serializability. Beberapa dukungan memesan kunci. Beberapa mempertahankan data
dalam memori (RAM), sementara yang lain menggunakan solid-state drive atau disk.
·
Document based (disimpan
dalam dokumen-dokumen)
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.
·
Column based (disimpan
dalam kolom-kolom)
·
Graph based (disimpan dalam
bentuk graf)
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.
Karena dari cara
penyimpanannya saja sudah beda sudah tentu cara penambahan maupun pengambilan
datanya juga berbeda.
Contoh-contoh
Aplikasi NoSQL Database
·
MongoDB
Merupakan basis data yang paling populer
diantara basis data NoSQL lainnya. Hal ini dikarenakan pemasangan maupun
penggunaan mongoDB tidaklah sulit atau merepotkan penggunanya. Selain itu
mongoDB juga merupakan salah satu basis data yang open source sehingga
pengembangan mongoDB sendiri cukup pesat karena setiap orang bisa
berpartisipasi untuk mengembangkannya.
·
CouchDB
Apache CouchDB, biasa disebut dengan CouchDB
saja, merupakan basis data NoSQL yang dikembangkan oleh Apache. CouchDB lebih
dulu muncul jauh sebelum mongoDB yaitu pada tahun 2005. CouchDB tidak menyimpan
datanya dalam tabel melainkan dalam dokumen seperti halnya mongoDB.
·
Cassandra
Cassandra merupakan sebuah sistem penyimpanan
data terdistribusi untuk menangani jumlah data yang sangat besar dan
terstruktur. Cassandra juga dikembangkan Apache, pengembang yang sama untuk
basis data CouchDB.
·
Redis
Lagi-lagi basis data open source, redis
merupakan basis data berbasis key-value paling populer menurut situs
DB-Engines.com. Redis merupakan singkatan dari REmote DIctionary Server. Basis
data ini dikembangkan oleh Salvatore Sanfilippo pada tahun 2009 dan ditulis
dalam bahasa C. Redis banyak dipilih karena memiliki fitur in-memory,
networked, dan durabilitas tinggi.
·
Riak
Riak merupakan basis data NoSQL terdistribusi
yang menyimpan datanya dalam bentu key-value. Riak menawarkan fitur high
availability, fault tolerance, operational simplicaity, dan scalability. Riak
memiliki dua versi yakni Open source edition dan Enterprise edition. Enterprise
edition menawarkan dukungan berbayar intensif dari pengembangnya. Pengguna Open
source edition dapat bermigrasi kapan saja ke Enterprise edition jika
dibutuhkan.
·
Neo4J
Neo4j merupakan basis data NoSQL dengan
sistem graf. Apabila berurusan dengan basis data berbasis graf, maka Neo4j lah
yang paling dikenal. Neo4j menyimpan relasi antar objek dalam struktur seperti
graf, dimana setiap objek merujuk ke objek lainnya secara langsung.
·
OrientDB
OrientDB merupakan basis data graf
terdistribusi generasi kedua. Basis data ini dibuat dalam bahasa Java oleh
Orient Technologies LTD dan dirilis pertama kali tahun 2010. OrientDB diklaim
sangat cepat dan mampu menyimpan 220.000 record per detik diperangkat standar.
Kelebihan
NoSQL di banding Relasional Database
·
NoSQL bisa menampung data
yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam
skala besar (big data/cloud).
·
Menggunakan OOP (Object Oriented Programming)
dalam pengaksesan atau manipulasi datanya.
·
NoSQL tidak mengenal schema
tabel yang kaku dengan format data yang kaku. NoSQL sangat cocok untuk data
yang tidak terstruktur, istilah singkat untuk fitur ini adalah Dynamic Schema.
·
Autosharding, istilah
sederhananya, jika database noSQL di jalankandi cluster server (multiple
server) maka data akan tersebar secara otomatis dan merata keseluruh server.
Kekurangan
dari database NoSQL
·
Hostingnya mahal, beberapa
layanan di luar negeri mencharge biaya 100-200USD untuk hosting database noSQL.
Selain itu, saya belum pernah menemukan hosting Cpanel yang mendukung database
MongoDB atau database noSQL lainnya.
·
Perlu waktu untuk belajar.
Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka anda harus belajar
lagi dari awal, berbeda dengan database RDMS.
Perbedaan
SQL dengan NoSQL
·
Dalam cara penulisan database
mereka. Jika SQL menggunakan relasional sebagai penyambung antara data – data
di dalam tabel database mereka. Dan NoSQL tidak menggunakan Relasional sebagai
cara mereka untuk menyambungkan antar data mereka. NoSQL menggunakan 4 metode
dalam cara mereka untuk menstored data, Key Values stores, Document oriented,
Table Oriented, dan terakhir Graph Oriented.
·
NoSQL tidak menggunakan
Schema relational, jika di dalam SQL kita harus mendefinisikan table yang akan
digunakan. Berbeda dengan SQL, NoSQL tidak perlu untuk mendefinisikan terlebih
dahulu Table yang akan digunakan.
·
NoSQL memiliki kemampuan
“elastis†yang lebih baik dibandingkan SQL. Untuk menambah jumlah server
basis data di dalam NoSQL, lebih mudah karena kita tidak perlu mendapatkan
downtime yang terjadi.
·
Integrated Caching, NoSQl
memiliki kemampuan untuk mentransformasikan data dengan lebih cepat hal ini
dikarenakan NoSQL menggunakan cache-nya di dalam sistem memori.
Contoh
Perusahaan Besar yang Menggunakan NoSQL
- · Facebook menggunakan Cassandra
- · Twitter menggunakan FlockDB
- · Linkedlin menggunakan Voldemort
- · Google menggunakan Bigtable
- · Amazon menggunakan Simple DB
Source :
Tidak ada komentar:
Posting Komentar