Nama : Basri Ananta
NPM : 52414043
Kelas : 4IA22
PENGANTAR KOMPUTASI
GRID
Komputasi Grid adalah
penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan
terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala
besar. Grid computing merupakan cabang dari distributed computing.Grid komputer
memiliki perbedaan yang lebih menonjol dan di terapakan pada sisi infrastruktur
dari penyelesaian suatu proses. Grid computing adalah suatu bentuk cluster
(gabungan) komputer-komputer yang cenderung tak terikat batasan geografi. Di
sisi lain, cluster selalu diimplementasikan dalam satu tempat dengan
menggabungkan banyak komputer lewat jaringan. Beberapa konsep dasar dari grid
computing :
- Sumber daya dikelola dan dikendalikan secara lokal.
- Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda, mencakup Sumber daya komputasi dikelola oleh sistem batch berbeda, Sistem storage berbeda pada node berbeda, Kebijakan berbeda dipercayakan kepada user yang sama pada sumber daya berbeda pada Grid.
- Sifat alami dinamis: Sumber daya dan pengguna dapat sering berubah
- Lingkungan kolaboratif bagi e-community (komunitas elektronik, di internet)
- Tiga hal yang di-,sharing dalam sebuah sistem grid, antara lain : Resource, Network dan Proses. Kegunaan / layanan dari sistem grid sendiri adalah untuk melakukan high throughput computing dibidang penelitian, ataupun proses komputasi lain yang memerlukan banyak resource komputer.
Contoh Grid Computing
1. Scientific Simulation. Komputasi grid
diimplementasikan di bidang fisika, kimia, dan biologi untuk melakukan simulasi
terhadap proses yang kompleks.
2. Medical Image. Penggunaan data grid dan
komputasi grid untuk menyimpan medical-image. Contohnya adalah eDiaMoND project
3. Computer-Aided Drug Discovery
(CADD)Komputasi grid digunakan untuk membantu penemuan obat. Salah satu
contohnya adalah: Molecular Modeling Laboratory (MML) di University of North
Carolina (UNC).
4. Big Science. Data grid dan komputasi
grid digunakan untuk membantu proyek laboratorium yang disponsori oleh
pemerintah Contohnya terdapat di DEISA.
5. E-Learning. Komputasi grid membantu
membangun infrastruktur untuk memenuhi kebutuhan dalam pertukaran informasi
dibidang pendidikan. Contohnya adalah AccessGrid.
6. Visualization. Komputasi grid digunakan
untuk membantu proses visualisasi perhitungan yang rumit.
7. Microprocessor design. Komputasi grid
membantu untuk mengurangi microprocessor design cycle dan memudahkan design
center untuk membagikan resource lebih efisien. Contohnya ada di Microprocessor
Design Group at IBM Austin.
Manfaat
Komputasi Grid
Penggunaan
Grid Computing System untuk perusahaan-perusahaan akan banyak memberikan
manfaat, baik manfaat secara langsung maupun tidak langsung. Beberapa manfaat
tersebut antara lain :
1. Grid
computing menjanjikan peningkatan utilitas, dan fleksibilitas yang lebih besar
untuk sumberdaya infrastruktur, aplikasi dan informasi. Dan juga menjanjikan
peningkatan produktivitas kerja perusahaan.
2. Grid
computing bisa memberi penghematan uang, baik dari sisi investasi modal maupun
operating cost–nya
3. Manajemen
institusi yang terlalu birokratis menyebabkan mereka enggan untuk merelakan
fasilitas yang dimiliki untuk digunakan secara bersama agar mendapatkan manfaat
yan lebih besar bagi masyarakat luas.
4. Masih
sedikitnya Sumber Daya Manusia yang kompeten dalam mengelola grid computing.
Contonhya kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun user non
teknisi mengenai manfaat dari grid computing itu sendiri.
VIRTUALISASI
Dalam ilmu komputer,
virtualisasi (bahasa Inggris: virtualization) adalah istilah umum yang mengacu
kepada abstraksi dari sumber daya komputer. Definisi lainnya adalah
"sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya
komputer dari bagaimana cara sistem lain, aplikasi atau pengguna berinteraksi
dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya
tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi, atau peralatan
penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal; atau dapat
juga termasuk definisi untuk membuat beberapa sumber daya fisik (seperti
beberapa peralatan penyimpanan atau server) terlihat sebagai satu sumber daya
logikal.
"Istilah virtualisasi
sudah digunakan secara luas sejak 1960-an, dan telah diaplikasikan kepada
beberapa aspek komputer—dari keseluruhan sistem komputer sampai sebuah
kemampuan atau komponen individu. Secara umum semua teknologi virtualisasi
mengacu kepada "menyembunyikan detail teknis" melalui enkapsulasi.
Fungsi Virtualisasi
Secara umum fungsi
virtualisasi data center adalah sebagai berikut.
1. Pengurangan Biaya Investasi Hardware.
Investasi hardware dapat ditekan lebih rendah karena virtualisasi hanya
mendayagunakan kapasitas yang sudah ada. Tak perlu ada penambahan perangkat
komputer, server dan pheriperal secara fisik. Kalaupun ada penambahan kapasitas
harddisk dan memori, itu lebih ditujukan untuk mendukung stabilitas kerja
komputer induk, yang jika dihitung secara finansial, masih jauh lebih hemat
dibandingkan investasi hardware baru.
2. Kemudahan Backup & Recovery.
Server-server yang dijalankan didalam sebuah mesin virtual dapat disimpan dalam
1 buah image yang berisi seluruh konfigurasi sistem. Jika satu saat server
tersebut crash, kita tidak perlu melakukan instalasi dan konfigurasi ulang.
Cukup mengambil salinan image yang sudah disimpan, merestore data hasil backup
terakhir dan server berjalan seperti sedia kala. Hemat waktu, tenaga dan sumber
daya.
3. Kemudahan Deployment. Server virtual
dapat dikloning sebanyak mungkin dan dapat dijalankan pada mesin lain dengan
mengubah sedikit konfigurasi. Mengurangi beban kerja para staff IT dan
mempercepat proses implementasi suatu sistem.
4. Mengurangi Panas. Berkurangnya jumlah
perangkat otomatis mengurangi panasnya ruang server/data center. Ini akan
berimbas pada pengurangan biaya pendinginan/AC dan pada akhirnya mengurangi
biaya penggunaan listrik.
5. Mengurangi Biaya Space. Semakin sedikit
jumlah server berarti semakin sedikit pula ruang untuk menyimpan perangkat.
Jika server ditempatkan pada suatu co-location server/data center, ini akan
berimbas pada pengurangan biaya sewa.
6. Kemudahan Maintenance & Pengelolaan.
Jumlah server yang lebih sedikit otomatis akan mengurangi waktu dan biaya untuk
mengelola. Jumlah server yang lebih sedikit juga berarti lebih sedikit jumlah
server yang harus ditangani.
7. Standarisasi Hardware. Virtualisasi
melakukan emulasi dan enkapsulasi hardware sehingga proses pengenalan dan
pemindahan suatu spesifikasi hardware tertentu tidak menjadi masalah. Sistem
tidak perlu melakukan deteksi ulang hardware sebagaimana instalasi pada
sistem/komputer fisik.
8. Kemudahan Replacement. Proses penggantian
dan upgrade spesifikasi server lebih mudah dilakukan. Jika server induk sudah
overload dan spesifikasinya tidak mencukupi lagi, kita bisa dengan mudah
melakukan upgrade spesifikasi atau memindahkan virtual machine ke server lain
yang lebih powerful.
Untuk mendukung
implementasi virtualisasi server , CPU dari sebuah server harus mendukung teknologi
virtualisasi, tetapi tidak usah kuatir karena hardware saat ini sudah mendukung
teknologi virtualisasi bahkan untuk komputer biasa pun sudah mendukung teknologi
virtualisasi.
Dalam teknologi
virtualisasi sebuah server dipecah kedalam virtual environment dan setiap
virtual environment dapat diinstall sistem operasi yang berbeda dari sistem
operasi server fisik atau sistem operasi dari virtual environment lain nya.
Ketika Virtual environment berjalan dia tidak tau tentang resource yang
digunakan sehingga dalam teknologi virtualisasi diperlukan sebuah Hypervisor
yang mengkoordinasi komunikasi dan instruksi antara virtual environment dengan
resource fisik / psical resource. Hypervisor inilah yang dipegang oleh
administrator dari sebuah server yang mengimplementasikan teknologi
virtualisasi untuk mengatur virtual environment.
Ada 2 jenis Hypervisor
dalam dunia virtualisasi saat ini :
Hypervisor Type 1 (Bare Metal Hypervisor)
Dikatakan Bare Metal
hypervisor karena hypervisor ini mengakses langsung hardaware fisik tanpa
bantuan sistem operasi, dan biasnaya untuk menggunakan hypervisor type 1 kita
harus menginstall hypervisor sebagai sistem operasi (Bukan diinstall dalam
sistem operasi).Contoh Hypervisor Type
1 diantaranya : KVM , Red hat Enterprise
Virtualisation (RHEV),XEN/Citrix XenServer,Hyper-V,VMware vSphere/ESXi
Hypervisor Type 2 (Hosted Hypervisor)
Jenis Hypervisor ini
memerlukan sistem operasi untuk berjalan, karena jenis hyper visor ini berjalan
diatas sistem operasi.Contoh Hypervisor Type 2 diantaranya : VMware Work
station , VMware Player ,Virtual Box
Keuntungan Menggunakan
teknologi Virtualisasi
1 Optimalisasi Server
jika kita mempunyai
server fisik dengan kapasitas besar, sedangkan aplikasi server yang akan kita
bangun memerlukan resource yang kecil alangkan baiknya server yang akan kita
bangun dimasukan kedalam virtual environment dan mengatur resource VE sesuai
dengan kebutuhan aplikasi server yang akan kita bangun, Dengan demikian sisa
resource bisa kita manfaatkan untuk membangun server lain diwaktu yang akan
datang tanpa harus membeli perangkat baru.
2 SnapshotVirtual environment mendukung
snapshot yang memungkinkan kita untuk mengembalikan virtual environment(VE) ke
kondisi saat snapshot diambil jika terjadi kesalahan konfigurasi/Error .
Snapshot akan menyimpan kondisi dari VE dan kita bisa merestore kapanpun kita
mau.
3 Migrasi Mudah
Hypervisor sekarang
telah mendukung live migration, dimana kita bisa memindah VE (Server) yang
sedang berjalan ke server fisik yang lain tanpa mengalami server down.
4 Instan Fail Over
Mayoritas Hypervisor
telah mendukung clustering sehingga fail over bisa dilakukan secara instan dan
otomatis
5 Flexible
Dengan menggunakan
teknologi virtual pengelolaan server akan menjadi lebih mudah ketika kita ingin
memindah, merubah resource bahkan ketika kita ingin memindahkan server dalam
keadaan hidup tanpa mengalami down (Live Migration). Proses penginstallan dan
recovery juga tidak memakan waktu yang lama jika terjadi kerusakan /error pada
Hypervisor
6 Hemat Listrik dan Hardware
Akan sangat berbeda
jika kita tidak menggunakan virtualisasi dimana kita menghidupkan banyak server
yang masing-masing menggunakan daya sendiri , dengan virtualisasi cukup 1
server besar dan penggunaan resource bisa disesuaikan dengan kebutuhan. Jika
Resource kurang tidak perlu beli server baru cukup Upgrade part yang perlu
diupgrade saja (misal RAM,CPU,Storage)
7 Memperpanjang masa hidup aplikasi jadul
Ketika aplikasi jadul
sudah tidak bisa berjalan di modern OS saat ini (Misalnya aplikasi DOS) dengan
teknologi virtual kita bisa menjalankan aplikasi jadul tersebut diplatform
manapun dengan menggunakan virtualisasi desktop atau virtualisasi aplikasi.
8
Backup dan Recovery Mudah
Hypervisor menyediakan
auto backup untuk setiap container /VE sehingga jika terjadi kerusakan kita
bisa merestore backup tersebut ke virtual server yang telah disediakan tanpa
harus memakan waktu yang lama, Berbeda sekali jika kita menginstall server pada
server fisik yang akan memakan waktu lama untuk mengkonfigurasi ulang jika
terjadi kerusakan
9 Lebih aman
Jika terjadi kasus
server di hack dan data penting dalam server di hapus /dirusak maka dengan mudah kita untuk mengembalikan
nya dengan fasilitas backup-restore. walau hacker telah masuk kedalam sistem
tetapi hacker tidak bisa menembus ke resource fisik dari server yang kita
kelola maka dengan mudah kita untuk menghapus backdoor dan malware yang
ditinggalkannya, ini akan berbeda jika tidak menggunakan virtualisasi ketika
server dijebol hacker maka hacker 100% telah menguasai server fisik kita dan
akan sangat repot untuk membersihkan nya.
KOMPUTASI DISTRIBUSI
DALAM CLOUD COMPUTING
Cloud computing itu
terdiri dari 2 kata, yaitu cloud dan computing. Secara harfiah cloud adalah
awan, sedangkan computing itu adalah komputasi Untuk makna dari ‘cloud
computing’ itu sendiri artinya adalah penggunaan sumber daya komputasi
(hardware dan software) yang diwujudkan dalam bentuk layanan yang bisa diakses
melalui jaringan (biasanya internet). Asal kata cloud atau awan ini adalah
penggambaran dari internet.
Cloud computing
menyediakan sebuah layanan dimana informasinya disimpan di server secara
permanen dan disimpan di computer client secara temporary. E mail service,
facebook, google adalah beberapa contoh penggunaan cloud computing. Di dalam
cloud computing dikenal istilah front-end (desktop-PC) dan back-end(server)
yang dimana harus saling terhubung di dalam sebuah jaringan internet. Front-end
bertugas dalam pengambilan data dan menjalankan aplikasi dari back-end
sedangkan Back-end bertugas sebagai sumber yang diistilahkan dengan cloud.
Distributed Computation
dalam Cloud Computing
Kegiatan ini merupakan
kumpulan beberapa computer yang terhubung untuk melakukan pendistribusian,
seperti mengirim dan menerima data serta melakukan interaksi lain antar
computer yang dimana membutuhkan sebuah jaringan agar computer satu dan lainnya
bisa saling berhubung dan melakukan interaksi. Hal ini semua dilakukan dengan
cloud computing yang seperti kita ketahui memberikan layanan dimana
informasinya disimpan di server secara permanen dan disimpan di computer client
secara temporary.
Menurut sebuah makalah tahun 2008 yang
dipublikasi IEEE Internet Computing “Cloud Computing adalah suatu paradigma di
mana informasi secara permanen tersimpan di server di internet dan tersimpan
secara sementara di komputer pengguna (client) termasuk di dalamnya adalah
desktop, komputer tablet, notebook, komputer tembok, handheld, sensor-sensor,
monitor dan lain-lain.”
Komponen dasar Cloud
computing Clients adalah seperangkat komputer / software yang didesain secara
khusus untuk penggunaan layanan berbasis cloud computing. Contoh: Mobile, Windows
Mobile, Symbian, Thin Client, Windows Terminal Service, CherryPal, Thick Client
& Internet Explorer, FireFox, Chrome
Data center adalah
tempat disimpannya server-server. Dapat berupa ruang besar bawah tanah atau
gedung besar kosong. Namun, pada perkembanganselanjutnya telah dikembangkan
Virtuallizing server, dimana software yang telah di-install disertai beberapa virtual
server untuk digunakan. Dengan demikian, beberapa virtual server menggunakan 1
server secara fisik. Cloud computing menyediakan perangkat lunak sebagai
layanan ―cadangan untuk pengguna terakhir, tapi infrastruktur yang mendasari
harus cukup terukur dan kuat serta harus fokus pada sistem Cloud perusahaan
skala besar dan meneliti bagaimana perusahaan dapat menggunakan
service-oriented architecture (SOA) untuk menyediakan antarmuka yang efisien
untuk proses bisnis.
Untuk meningkatkan proses bisnis, masing-masing tingkatan
SOA biasanya menyebarkan beberapa server untuk muatan distribusi dan toleransi
kesalahan. Salah satu keterbatasan dari pendekatan ini adalah beban yang tidak
dapat didistribusikan lebih lanjut saat semua server pada tingkatan /jajaran
yang sama dimuat. Cloud computing terlihat untuk perhitungan dan penyimpanan
data menjauh dari end user dan ke server yang berlokasi di pusat data, dengan
demikian mengurangi beban pengguna dari penyedian aplikasi dan manajemen. Dalam
sistem cloud enterprise, arsitektur berorientasi layanan (SOA) dapat digunakan
untuk menyediakan antarmuka yang mendasari proses bisnis, yang ditawarkan
melalui awan (cloud). SOA dapat bertindak sebagai sebuah front-end terprogram
ke berbagai komponen layanan yang dibedakan sebagai individu dan pendukung
server. Permintaan yang masuk ke layanan yang disediakan oleh gabungan SOA
harus diteruskan ke komponen yang benar dan server masing-masing, dan seperti
routing harus terukur untuk mendukung sejumlah besar permintaan. Dalam rangka
untuk meningkatkan proses bisnis, setiap tingkatan dalam sistem biasanya
menyebarkan beberapa server untuk mendistribusikan beban dan toleransi
kesalahan.
MAPREDUCE & NO SQL
MapReduce merupakan
sebuah konsep dimana data yang kontinue dipecah menjadi bagian data / komponen
data kecil dan didistribusikan melalui mesin-mesin yang terhubung secara
cluster. Bisa dibilang map reduce merupakan sebuah framework yang digunakan
untuk mempercepat proses pengolahan data pada konsep cloud computing. Dalam
memproses data, MapReduce dibagi menjadi 2 proses utama, yaitu Map dan Reduce.
Proses Map bertugas utnuk mengumpulkan informasi dari potongan-potongan data
yang terditribusi dalam tiap komputer dalam cluster (kelompok komputer yang
saling terhubung). Hasilnya deserahkan kepada proses Reduce untuk diproses
lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim ke
pengguna.
Salah satu contoh
penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google.
Dengan inspirasi dari functional programming map dan reduce Google bisa
menghasilkan filesystem distributed yang sangat scalable, Google Big Table.
Desain dan Struktur
MapReduce
Dari definisinya, MapReduce
mungkin terkesan sangat ribet. Untuk memproses sebuah data raksasa, data itu
harus dipotong-potong kemudian dibagi-bagikan ke tiap komputer dalam suatu
cluster. Lalu proses Map dan proses Reduce pun harus dibagi-bagikan ke tiap
komputer dan dijalankan secara paralel. Terus hasil akhirnya juga disimpan
secara terdistribusi. Benar-benar terkesan merepotkan.
Beruntunglah, MapReduce
telah didesain sangat sederhana alias simple. Untuk menggunakan MapReduce,
seorang programer cukup membuat dua program yaitu program yang memuat kalkulasi
atau prosedur yang akan dilakukan oleh proses Map dan Reduce. Jadi tidak perlu
pusing memikirkan bagaimana memotong-motong data untuk dibagi-bagikan kepada
tiap komputer, dan memprosesnya secara paralel kemudian mengumpulkannya
kembali. Semua proses ini akan dikerjakan secara otomatis oleh MapReduce yang
dijalankan diatas Google File System.
Program yang memuat
kalkulasi yang akan dilakukan dalam proses Map disebut Fungsi Map, dan yang
memuat kalkulasi yang akan dikerjakan oleh proses Reduce disebut Fungsi Reduce.
Jadi, seorang programmer yang akan menjalankan MapReduce harus membuat program
Fungsi Map dan Fungsi Reduce.
Fungsi Map bertugas
untuk membaca input dalam bentuk pasangan Key/Value, lalu menghasilkan output
berupa pasangan Key/Value juga. Pasangan Key/Value hasil fungsi Map ini disebut
pasangan Key/Value intermediate. Kemudian, fungsi Reduce akan membaca pasangan
Key/Value intermediate hasil fungsi Map, dan menggabungkan atau
mengelompokkannya berdasarkan Key tersebut. Lain katanya, tiap Value yang
memiliki Key yang sama akan digabungkan dalam satu kelompok. Fungsi Reduce juga
menghasilkan output berupa pasangan Key/Value.
Pengertian NoSQL
Nosql adalah sebuah
memcache dari bagian database sederhana yang berisi key dan value. Database ini
bersifat struktur storage dimana sistem databasenya yang berbeda dengan sistem
database relasional. Nosql tidak membutuhkan skema table dan menghindari
operasi join dan berkembang secara horizontal. Selain itu NoSQL merupakan suatu
bahasan yang jauh dari arti kata yang dibaca. Tidak berarti tanpa sql query.
Melainkan bagaimana suatu sql query digunakan seminimal mungkin dalam suatu
program database. Dengan memanfaatkan teknologi NoSQL ini, diharapkan mampu
mengurangi beban server. Selain itu, hal ini juga memudahkan programmer dalam
membuat suatu program dan proses pengembangannya. Penjelasan lebih mengenai
NoSQL database akan dijelaskan pada sub bab dibawah ini.
Database NoSQL, juga
disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan data dan
desain database yang berguna untuk set yang sangat besar data terdistribusi.
NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk
memecahkan masalah skala bilitas dan kinerja data yang besar yang database
relasional tidak dirancang untuk menangani.NoSQL ini sangat berguna ketika
perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data
terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual
server di awan.
Berlawanan dengan
kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarang bahasa query
terstruktur (SQL) Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya
non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti
skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada
menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci /
nilai berpasangan atau tupe.
Aoksiomatik dari NoSQL
A. ASAM free
ACID singkatan Atomicity
, Konsistensi , Isolasi dan Daya Tahan . Konsep ACID pada dasarnya berasal dari
lingkungan SQL. Tapi dalam NoSQL tidak akan menggunakan konsep ACID karena
fitur Konsistensi SQL. Dalam artikel ini akan melihat bagaimana konsep ACID
menciptakan masalah untuk NoSQL . Seperti dalam lingkungan terdistribusi , data
menyebar ke mesin yang berbeda , setiap mesin menyimpan data dan pemeliharaan
diperlukan konsistensi. Misalnya, jika ada perubahan dalam satu tupple table
maka perubahan yang diperlukan dalam setiap enggine dimana data tertentu berada.
B. BASE
BASE kebalikan dari ACID.
database NoSQL dibagi antara jalan dari ACID ke BASIS . Fokus utama menuju
belakang BASE adalah ketersediaan permanen. Misalnya, berpikir tentang database
di bank, jika dua orang yang mengakses akun sama di kota yang berbeda maka
perubahan data yang diperlukan bukan
hanya dalam waktu yang sama tetapi membutuhkan beberapa database real time
juga. Perubahan harus sering dilakukan pada semua mesin . Beberapa contoh lebih
banyak reservasi kereta api online, perdagangan buku online, dll.
C. CAP
CAP singkatan
Konsistensi , Ketersediaan dan Partisi toleransi . CAP pada dasarnya adalah
sebuah teorema yang mengikuti tiga prinsip.
( 1 ) Data yang ada
pada semua mesin harus sama dalam segala hal dan perubahan data yang konsisten
harus dilakukan pada semua mesin atau consistent data.
( 2 ) Data harus
tersedia secara permanen dan harus diakses setiap waktu atau availability.
( 3 ) Selama kegagalan
mesin atau kesalahan dalam mesin database yang akan bekerja dengan baik tanpa
berhenti kerja atau partition
Pengelompokan database
noSQL
Secara umum, database
noSQL dibagi menurut format penyimpanan dokmentnya . Berikut ini adalah
pengelompokan database noSQL berdasarkan model (penyimpanan) datanya:
- Document Database contohnya MongoDB, seiap satu object data disimpan dalam satu dokumen. Dokumen sendiri bisa terdiri dari key-value, dan value sendiri bisa berupa array atau key-value bertingkat.
- Graph , Format penyimpanan data dalam struktur graph. Format ini sering dipakai untuk data yang saling berhubungan seperti jejaring social. Contoh database noSQL dengan format ini adalah Neo4J dan FlockDB. FlockDB dipakai oleh twitter.
- Key – Value, contoh database jenis ini adalah Apache Cassandra.
- Object Database. Format database yang disimpan dalam object object, Object disini sama dengan pengertian object di Pemrograman beroreintasi object , Contoh databasenya adalah Db4o.
- Tipe lainnya adalah tabular, tuple store dan berbagai jenis lain yang tidak terlalu populer.
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 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 sendiri , minimal bagi saya adalah 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.
Selain itu, karena
bervariasinya produk dan format penyimpanan, berpindah antar satu produk
database ke produk 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.
Pengantar MongoDB
MongoDB adalah salah
satu produk database noSQL OPEN SOURCE
yang menggunakan struktur data JSON untuk menyimpan datanya. MongoDB adalah
salah satu database noSQL yang paling populer di internet. MongoDB sering dipakai
untuk aplikasi berbasis Cloud, Grid Computing, atau Big Data.
Format Dokumen
/Struktur data di MongoDB
Sumber :
http://just-sharre.blogspot.co.id/2013/09/artikel-nosql.html
Tidak ada komentar:
Posting Komentar