Sabtu, 03 Oktober 2015

No SQL Database

Wikipedia menyatakan NoSQL adalah sistem menejemen database yang berbeda dari sistem menejemen database relasional yang klasik dalam beberapa hal. NoSQL mungkin tidak membutuhkan skema table dan umumnya menghindari operasi join dan berkembang secara horisontal. Akademisi menyebut database seperti ini sebagai structured storage, istilah yang didalamnya mencakup sistem menejemen database relasional.

No SQL adalah sebuah konsep mengenai penyimpanan data non-relasional. Berbeda dengan model basis data relasional yang selama ini digunakan, No SQL menggunakan beberapa metode yang berbeda-beda. Metode-metode tersebut menurut Dwight Merriman, salah satu kontributor MongoDB, di antaranya adalah :

- Key-value stores.

- Table-oriented.

- Document-oriented.

- Graph-oriented.

Walaupun SQL dalam arti sesungguhnya adalah simple atau sederhana, dan developer selama bertahun tahun menggunakannya, tetapi mereka merasa kurang puas bahkan cenderung tidak menyukainya. Alasan lainnya, RDBMS atau Relational Database Management System tidak dapat berkembang horisontal secara baik. Seringnya kita mendapatkan database yang berkembang tetapi secara read-only melalui kemampuan replikasi database dan untuk mendapatkan database yang berkembang horisontal secara read-write itu sangat sulit. 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. Faktanya, perubahan data yang terjadi itu memerlukan waktu untuk mengirimkannya ke berbagai sistem. Selama data tersebut belum terkirimkan, kita memakai data yang tidak valid atau stale data/delta data.
 
Metode-metode dalam No SQL menyederhanakan proses yang terjadi dalam sistem basis data relasional. Penyederhanaan proses ini memungkinkan data direplikasi di banyak server secara mudah dan menjamin ketersediaan data. Namun di sisi lain, penyederhanaan proses ini memiliki beberapa efek samping. Beberapa metode tersebut mengurangi integritas data, satu hal yang dijamin oleh basis data relasional. Namun demikian, ada beberapa implementasi No SQL yang juga telah menyediakan integritas data seperti basis data relasional. No SQL ditegaskan tidak untuk menggantikan basis data relasional. Tujuan pengembangan No SQL adalah untuk menyelesaikan berbagai masalah yang tidak bisa ditangani oleh basis data relasional, yaitu masalah skalabilitas untuk pemrosesan data berukuran besar. Jika data yang digunakan dalam aplikasi nanti akan berkembang menjadi berukuran besar, maka No SQL dapat menjadi pertimbangan alternatif sebagai penyimpanan data.

Database relasional sudah ada semenjak tahun 70-an sehingga teknologi mereka sudah sangat matang. 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.

Setelah sekian lama muncul, database NoSQL tidak serta merta memiliki banyak penggemar. Untuk pastinya, banyak perusahaan besar yang menggunakan NoSQL database, tetapi secara umum mereka menggunakannya untuk kebutuhan kebutuhan yang spesial. Mereka perlu melihat apakah database ini bisa berkembang dengan kapasitas data yang sangat besar dan banyak dipergunakan di berbagai applikasi, jika tidak, mereka tidak melihat alasan untuk berpindah.

Sumber :
 
http://seto.citravision.com/berita-40-pengantar-komputasi-cloud--nosql-database.html

http://nareswara.com/2011/07/06/apa-itu-nosql-database/

Jumat, 02 Oktober 2015

Map Reduce dan NoSQL (Not Only SQL)


Map Reduce merupakan model yang pemrograman untuk memproses set data yang besar, dan nama sebuah implementasi dari model oleh Google. Map Reduce biasanya digunakan untuk melakukan komputasi terdistribusi pada cluster komputer.

Menulis program paralel-eksekusi telah terbukti selama bertahun-tahun untuk menjadi tugas yang sangat menantang, membutuhkan berbagai keahlian khusus. Map Reduce menyediakan programmer biasa kemampuan untuk menghasilkan paralel program didistribusikan jauh lebih mudah, dengan mengharuskan mereka untuk menulis Peta sederhana  dan Mengurangi  fungsi, yang fokus pada logika masalah tertentu. sementara "Sistem Map Reduce" (juga disebut "infrastruktur", "kerangka") secara otomatis menangani menyusun server terdistribusi, menjalankan berbagai tugas secara paralel, mengelola semua komunikasi dan transfer data antara berbagai bagian dari sistem, menyediakan untuk redundansi dan kegagalan , dan manajemen keseluruhan dari keseluruhan proses.



Sebuah database No SQL menyediakan mekanisme untuk penyimpanan dan pengambilan data yang menggunakan model lebih konsisten daripada database relasional tradisional dalam rangka mencapai skala horisontal dan ketersediaan. Disebut  "Not SQL" untuk menekankan bahwa beberapa sistem No SQL mengizinkan bahasa query SQL-seperti yang sering digunakan. Sistem database No SQL sangat dioptimalkan untuk pengambilan dan operasi penambahan dan sering menawarkan fungsionalitas sedikit di luar penyimpanan record (misalnya key-value stores). Menurunnya fleksibilitas run-time dibandingkan dengan sistem SQL penuh dikompensasi oleh keuntungan yang nyata pada skalabilitas dan kinerja untuk data model tertentu. Singkatnya, sistem manajemen database NoSQL berguna ketika bekerja dengan sejumlah besar data (terutama data besar) ketika sifat data itu tidak memerlukan model relasional.


Data dapat terstruktur, tapi No SQL adalah kemampuan untuk menyimpan dan mengambil sejumlah besar data, bukan hubungan antara unsur-unsur. Contoh penggunaan mungkin untuk menyimpan jutaan pasangan kunci-nilai dalam satu atau array asosiatif sedikit atau untuk menyimpan jutaan catatan data. Organisasi ini sangat berguna untuk analisis statistik atau real-time daftar elemen (seperti posting Twitter atau log server internet dari kelompok besar pengguna). Penggunaan lain dari teknologi ini berkaitan dengan fleksibilitas dari model data, banyak aplikasi dapat memperoleh dari data tidak terstruktur model: alat seperti CRM, ERP, BPM, dll. Bisa menggunakan fleksibilitas ini untuk menyimpan data mereka tanpa melakukan perubahan pada tabel atau menciptakan kolom generik dalam database. Database ini juga baik untuk membuat prototipe atau aplikasi dengan cepat, karena fleksibilitas ini menyediakan alat untuk mengembangkan fitur baru yang sangat mudah.

Contoh NoSQL adalah: MongoDB.


Sumber :

 http://wind0809.blogspot.com/2013/04/seputar-tentang-cloud-computing-map.html

Kamis, 01 Oktober 2015

Distribusi Computation dalam Cloud Computing



Distributed Computing adalah ilmu yang memecahkan masalah besar dengan memberikan bagian kecil dari masalah untuk banyak komputer untuk memecahkan dan kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah tersebut. Distributed computing terkait dengan system perangkat keras dan perangkat lunak yang memiliki lebih dari satu elemen pemrosesan atau storage element.

Pada cloud computing, penyimpanan data hanya dilakukan pada server utama, sehingga pengguna hanya dapat mengaksesnya tanpa harus mengetahui infrastruktur pembuatan aplikasinya. Hanya perlu interface software saja untuk mengakses server. Interface ini pada umumnya merupakan web browser yang tersedia dengan banyak pilihan dan tidak berbayar.

Cloud computing dipecah ke dalam beberapa kategori yang berbeda berdasarkan jenis layanan yang disediakan. SaaS (Software as a Service) adalah kategori komputasi awan di mana sumber daya utama yang tersedia sebagai layanan perangkat lunak aplikasi. PaaS (Platform as a Service) adalah kategori / penerapan komputasi awan di mana penyedia layanan memberikan platform komputasi atau solusi tumpukan untuk pelanggan mereka melalui internet. IaaS (Infrastructure as a Service) adalah kategori komputasi awan di mana sumber daya utama yang tersedia sebagai layanan yang infrastruktur perangkat keras. DaaS (Desktop sebagai Layanan), yang merupakan layanan muncul-Aas berkaitan dengan memberikan pengalaman seluruh desktop melalui internet. Ini kadang-kadang disebut sebagai virtualisasi desktop / virtual desktop atau desktop host.

Bidang ilmu komputer yang berkaitan dengan sistem terdistribusi disebut komputasi terdistribusi. Sebuah sistem terdistribusi terdiri dari lebih dari satu komputer self-directed berkomunikasi melalui jaringan. Komputer-komputer ini menggunakan memori lokal mereka sendiri. Semua komputer dalam sistem terdistribusi berbicara satu sama lain untuk mencapai tujuan bersama tertentu. Atau, pengguna yang berbeda pada setiap komputer mungkin memiliki kebutuhan individu yang berbeda dan sistem terdistribusi akan melakukan koordinasi sumber daya bersama (atau bantuan berkomunikasi dengan node lain) untuk mencapai tugas-tugas masing-masing. Node berkomunikasi menggunakan message passing. Komputasi terdistribusi juga dapat diidentifikasi sebagai menggunakan sistem terdistribusi untuk memecahkan masalah besar tunggal dengan melanggar itu dengan tugas, masing-masing yang dihitung masing-masing komputer dari sistem terdistribusi. Biasanya, mekanisme toleransi berada di tempat untuk mengatasi kegagalan komputer individu. Struktur (topologi, delay dan kardinalitas) dari sistem ini tidak dikenal di muka dan itu bersifat dinamis. Komputer individu tidak harus tahu segala sesuatu tentang seluruh sistem atau masukan lengkap (untuk masalah yang akan dipecahkan).

Sumber :

 https://rizki08.wordpress.com/2014/05/09/distributed-computation-dalam-cloud-computing/