Rabu, 25 April 2018

Pengantar Komputasi Cloud ( NoSQL Database )


Pengertian NoSQL Database

NOSQL menurut Wikipedia adalah sistem menejemen database yang berbeda dari sistem menejemen database relasional yang klasik dalam beberapa hal. NOSQL mungkin tidak membutuhkan skema tabel dan umumnya menghindari operasi join dan berkembang secara horisontal. Akademisi menyebut databaseseperti ini sebagai structured storage, istilah yang didalamnya mencakup sistem menejemen database relasional. NOSQL adalah database generasi terbaru yang mengarahkan kepada database yang tidak berelasi (non-relational), dapat disebarkan kepada siapapun (open-source) dan berskala horisontal (horizontal scale).

Johan Oskarsson dari Last.fm memperkenalkan kembali istilah NOSQL pada awal 2009 ketika ia menyelenggarakan sebuah acara untuk membahas “Distributed Open Source dan Non-relational Database”. Nama berusaha untuk label munculnya peningkatan jumlah non-relasional, didistribusikan menyimpan data, termasuk kloning open source dari Google Bigtable/MapReduce dan Amazon Dynamo.
Berbeda dengan basis data SQL dimana meskipun berbeda-beda pembuat namun cara kerja NOSQL maupun cara penggunaannya relatif sama. Contohnya sama-sama menggunakan tabel yang dihubungkan oleh relasi-relasi, manipulasi data dengan bahasa SQL dan sb. Basis data NOSQL bisa sangat berbeda satu sama lain.
Sebagian besar sistem NOSQL pada masa awal tidak berusaha untuk memberikan atomicity, konsistensi, isolasi dan daya tahan jaminan, bertentangan dengan praktik yang berlaku di antara sistem databaserelasional. Namun di kemudian hari, beberapa database NOSQL dengan pembaruan terkini sudah mampu mengintegrasikan database yang non-relasional ke dalam bentuk database relasional sehingga dapat mempermudah pengguna yang masih belum akrab dengan bahasa standar yang diterapkan NOSQL.

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.

        Bersumber dari halaman resmi NOSQL (http://nosql-database.org), NOSQL mengelompokkan database NOSQL ke dalam beberapa kategori, yaitu

1.    Wide Column Store / Column Families
Contoh : Accumulo, Casssandra, Clouddata, ConcourseDB, Hadoop /Hbase, Hypertable, kdb+, dll.

2.    Document Store
Contoh : CouchDB, Couchbase, Clusterpoint, Elasticserach, Mark-Logic, MongoDB, OrientDB, dll.

3.    Key Value / Tuple Store
Contoh : Aerospike, BangDB, BerkeleyDB, Chordless, DynamoDB, GenieDB, LevelDB, Riak, Redis, Oracle NOSQL Database, Tarantool, dll.

4.    Graph Databases
Contoh : ArangoDB, OrientDB, Infinite Graph, Neo4J, OpenLink Virtuoso, Stardog, WhiteDB, dll.
5.    Multimodel Databases
Contoh : Alchemy DB, ArangoDB, CortexDB, Datomic,FoundationDB, OrientDB, WonderDB, dll.

6.    Object Databases
Contoh : db4o, GemStone/S, HSS DB, Magma, Objectivity, siaqodb, Star-counter, VelocityDB, Versant, ZODB.

7.    Grid & Cloud Database
Contoh : Crate Data, GigaSpaces, GemFire, Hazelcast, Coherence, Queplix, dll.

8.    Solutions XML Databases
Contoh : BaseX, EMC Documentum xDB, eXist, Qizx,Sedna,  dll.

9.    Multidimensional Databases
Contoh : Globals, GT.M, Inter-systems Cache, MiniM DB, SciDB, dll.

10. Multidivalue Databases
Contoh : Model204 DB, OpenInsight, OpenQM, Reality, U2, dll.

11. Event Sourcing
Contoh : Eventstore.

12. Time Series Databases
Contoh : Axibase.



Diantara banyak database NOSQL yang ada berdasarkan riset salah satu website pada Juli 2015 menunjukkan database NOSQL paling populer saat ini secara berurutan adalah MongoDBApache CassandraRedisSolrElasticSearchHBaseSplunkmemcached, dan Neo4j.
Terdapat tiga hal besar yang mempengaruhi perkembangan ini yaitu jumlah user yang banyak, jumlah data yang besar dan cloud computing. Dan dengan 3 hal besar diatas juga menjadikan sistem database harus mampu bergerak secara :

1.   Data harus bisa bergerak secara flexible,
2.   Harus mampu bergerak secara cepat dengan data dan user yang besar;
3.   Dan yang terakhir peningkatan performa untuk dapat memuaskan user yang menginginkan pengolahan data yang cepat.

Perbedaan SQL dengan NoSQL

1)        Karena basisdata SQL bersifat relasional, dari sinilah asal nama sistem manajemen basisdata relasional (RDBMS), basisdata NoSQL adalah non-relasional atau terdistribusi. Basisdata SQL berbasis tabel sedangkan basisdata NoSQL berbasis dokumen, basisdata grafik, penyimpanan kolom lebar, atau pasangan kunci-nilai. Bahasa query terstruktur adalah asal SQL (Structured Query Language) mendapatkan namanya. Dalam NoSQL DB, fokus untuk permintaan berada pada koleksi dokumen. Hal ini kadang-kadang disebut Unstructured Query Language (UnQL). Sintaks UnQL bervariasi dari satu basisdata ke basisdata yang lain.

2)        Dalam basisdata SQL data dalam bentuk tabel yang terdiri dari sejumlah baris, sedangkan data dalam NoSQL tidak memiliki definisi skema standar yang harus dipatuhi. Basisdata NoSQL memiliki skema yang dinamis sementara basisdata SQL terdiri dari skema yang telah ditetapkan.

3)        Basisdata NoSQL adalah horizontal terukur sementara SQL DB vertikal terukur. Untuk memperbesar skala NoSQL DB, tambahkan server DB di cluster untuk load balancing. Untuk memperbesar skala SQL DB, tambahkan tenaga dari CPU, SSD, RAM dan perangkat keras lainnya pada server. Ini berarti NoSQL adalah pilihan terbaik jika skalabilitas adalah pertimbangan utama.
4)        SQL memungkinkan untuk interaksi karena merupakan bahasa query deklaratif. Setelah anda menyatakan apa yang anda inginkan misalnya untuk menampilkan, DB mengekstrak hasil setelah membangun algoritma secara internal. Dengan NoSQL, MapReduce, menjadi teknik permintaan prosedural, mengharuskan bahwa anda tidak hanya tahu apa yang anda inginkan, tetapi anda menyatakan persis bagaimana untuk menghasilkan jawabannya. Peningkatan interaksi dengan data memungkinkan untuk wawasan baru yang akan membantu pengembangan produk.

5)        SQL telah digunakan beberapa waktu dan ini menjelaskan mengapa menggunakan standar. Meskipun beberapa vendor memperkenalkan dialek untuk antarmuka mereka, intinya telah distandarkan dan spesifikasi tambahan seperti JDBC dan ODBC menyediakan antarmuka SQL yang stabil dan tersedia secara luas. Hal ini memungkinkan sebuah ekosistem operator dan alat manajemen untuk membantu dalam merancang, memantau, memeriksa, mengeksplorasi, dan membangun aplikasi pada sistem SQL. Ini berarti programmer SQL dan pengguna dapat menggunakan kembali pengetahuan UI dan API di sistem backend yang berbeda, sehingga mengurangi waktu pengembangan aplikasi. Standarisasi juga penting karena memungkinkan alat deklaratif ETL (Extract, Transform, Load) pihak ketiga. Alat-alat ini memungkinkan anda untuk mengalirkan data di sistem dan antar basisdata.

6)        Basisdata SQL lebih cocok untuk lingkungan permintaan-intensif kompleks. Hal ini karena NoSQL tidak memiliki antarmuka standar untuk melakukan query kompleks pada tingkat tinggi dan query pada NoSQL tidak sebaik query SQL.

7)        Basisdata NoSQL lebih cocok untuk penyimpanan data hirarkis. Hal ini karena NoSQL mengikuti metode penyimpanan pasangan kunci-nilai yang mirip dengan JSON data. Hal ini membuat NoSQL pilihan terbaik untuk data besar sejak saat ini, kebanyakan vendor SQL telah menambahkan dukungan tipe-JSON serta dukungan dokumen XML.

8)        Meskipun dimungkinkan untuk menggunakan NoSQL untuk transaksi biasa, SQL adalah pilihan terbaik untuk aplikasi tugas berat tipe-transaksional. Hal ini karena NoSQL tidak cukup stabil ketika sarat dengan aplikasi transaksional yang kompleks dan lalu lintas tinggi. SQL adalah cocok karena database-nya stabil dan menjanjikan integritas dan atomicity data. Hal ini terutama karena NoSQL belum dikembangkan selama SQL.

9)        Anda akan mendapatkan dukungan yang lebih baik dengan basisdata SQL, terutama karena SQL DB telah dikembangkan lebih lama. Ketika anda menyewa sebuah tim ahli DBA jarak jauh, kemungkinan bahwa sebagian besar DBA memiliki pelatihan di SQL DB. Namun, semakin banyak tim DBA jarak jauh saat ini memiliki pengalaman dengan NoSQL karena peningkatan permintaan. SQL DBs juga lebih dapat diandalkan karena mereka telah dicoba dan diuji selama beberapa tahun.

10)     Dengan SQL DB, penekanan pada sifat Atomicity, Consistency, Isolation and Durability (ACID) sifat. Di sisi lain, NoSQL DBs mengikuti teorema Consistency, Availability and Partition (CAP) Brewers.

11)     Basisdata SQL bisa bersumber tertutup dari vendor komersial atau bersumber terbuka sedangkan NoSQLs bersumber terbuka. Ini berarti NoSQL adalah pilihan yang lebih baik jika Anda ingin menghemat uang.
Contoh populer dari basisdata SQL adalah Oracle, MySQL, MS-SQL, Sqlite, dan Postgres sementara contoh populer dari NoSQL adalah MongoDB, HBase, Redis, Bigtable, RavenDb, CouchDB, Cassandra, dan Neo4j.

Kelebihan NoSQL di banding Relasional Database

Kelebihan NoSQL
  • 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 NoSQL
  • Hostingnya mahal. beberapa layanan di luar negeri mencharge biaya 100-200USD untuk hosting database noSQL.
  • Sulitnya mencari hosting Cpanel yang mendukung database MongoDB atau database noSQL lainnya.
  • 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.





Software Dalam NoSQL       


Beberapa database NoSQL:



  • MongoDB
MongoDB merupakan database open source berbasis dokumen (Document-Oriented Database) yang awalnya dibuat dengan bahasa C++.
  • Cassandra Apache
Cassandra Dikembangkan oleh APACHE. Aplikasi Inilah yang digunakan facebook untuk penyimpanan miliayaran data hingga saat ini.
  • CouchDB
CouchDB juga dikembangkan oleh APACHE. CouchDB adalah database yang benar-benar merangkul web. Menyimpan data Anda dengan dokumen JSON.  
  • Dan sebagainya.
Sumber :


Tidak ada komentar:

Posting Komentar