2. Pengantar
Mengapa? Apa? Dan Kapan menggunakan noSQL?
Karakteristik basis data noSQL
Model data agregat
Teori CAP
3. DB Relational
Basis Data adalah pengumpulan data yang terorganisir
DBMS – Database Management Sistem adalah suatu paket perangkat lunak
dengan program komputer yang mengendalikan pembuatan (create),
pemeliharaan (maintenance), dan penggunaan (use) basis data.
Basis data digunakan untuk mengoperasikan informasi dalam jumlah besar
dengan memasukkan (inputting), menyimpan (storing), mengambil
(retrieving) dan mengelola (managing) informasi itu.
4. MANFAAT DARI RELASI DATABASE
Dirancang untuk segala tujuan
ACID (atomicity, consistency, isolation, and durability)
Konsistensi yang kuat, konkurasi, pemulihan
Latar belakang matematika
Standard Query Language
Banyak alat yang dapat dugunakan, contoh layanan laporan, entitas
kerangka kerja
6. NoSQL why? what? when?
Database relasional tidak dibangun
untuk aplikasi terdistribusi
Karena:
Join itu perlu biaya
Sulit pada skala horizontal
Ketidak-cocokan impedasi terjadi
Mahal (harga pokok, hardware,
maintenance)
Era komputasi terdistribusi
7. NoSQL why? what? when?
Dan…lemah dalam:
Kecepatan (performa)
Ketersediaan tinggi
Toleransi partisi
9. NoSQL?
Database noSQL menyediakan mekanisme untuk menyimpan dan
mengambil data yang merupakan model konsistensi yang tidak terlalu
terbatas dibandingkan relasi database relasional.
Sistem noSQL juga disebut sebagai “not only sql” untuk menekankan
bahwa mereka memang memungkinkan bahasa query seperti sql untuk
digunakan.
10. NoSQL
Menghindari
Transaksi ACID
Query sql yang komplek
Beban desain skema up-front
Kehadiran DBA
Transaksi (harus ditangani lapisan
aplikasi
Menyediakan
Perubahan yang mudah dan sering
pada database
Pengembangan cepat
Isi data yang besar
Tanpa skema
11. When we use NoSQL?
Do
Ketika model tradisional RDBMS terlalu
membatasi (skema fleksibel)
Ketika dukungan ACID tidak benar-benar
diperlukan
Impedasi objek ke relasi
Karena RDBMS tidak didistribusikan/tdk
dapat diukur secara alami
Data log dari sumber yang didistribusi
Menyimpan event atau data temporal
Data temporer
Data yang membutuhkan skema fleksibel
Kegigihan poligot, c/ penyimpanan data
terbaik tergantung pada sifat data
Don’t
Data keuangan
Data yang membutuhkan kepatuhan ACID
yang ketat
Data penting bisnis
12. Model tanpa skema
Dalam relasi database:
Tidak dapat menambahkan record yang tidak sesuai dengan skema
Perlu menambahkan NULL untuk item yang tidak digunakan dalam row
Harus mempertimbangkan tipe data, c/ tdk dapat menambahkan string
pad field integer
Tidak dapat menambah banyak item field(harus membuat tabel lain; PK,
FK, join, normalization, dll)
13. Model tanpa skema
Dalam database noSQL:
Tidak ada skema yang perlu dipertimbangkan
Tidak ada sel yang tidak digunakan
Tidak ada tipe data (implisit)
Sebagian besar pertimbangan dilakukan di aplikasi
Kita menggunakan semua item secara agregat (dokumen)
14. Klasifikasi NoSQL
Basis data noSQL diklasifikasikan
dalam 4 data model utama:
Key-value
Document
Column family
Graph
Setiap database memiliki Bahasa
query sendiri
15. Model data : Key-value
Database noSQL paling sederhana
Ide utamanya adalah penggunaan tabel hash
Mengakses data (nilai) dengan string yang disebut kunci
Data tidak memiliki format yang diperlukan data dapat memiliki format
apapun
Data model: key-value (pasangan)
Operasi dasar: Insert (key, value), Fetch (key), Update (key), Delete (key)
16. Model data : family column
Kolom adalah contoh data
terendah/terkecil
Itu adalah tuple yang berisi
nama, nilai dan stempel
waktu
17. Model data : family column
Pencarian di facebook (menggunakan
Cassandra)
MySQL > 50 GB Data
Writes Average : ~300 ms
Reads Average : ~350 ms
Rewritten with Cassandra > 50 GB Data
Writes Average : 0.12 ms
Reads Average : 15 ms
18. Model data : graph
Berdasarkan teori grafik
Skala secara vertical, tanpa
pengelompokan
Dapat menggunakan
algoritma grafik dengan
mudah
Transaksi
ACID
19. Data model : document based
Memasang setiap kunci dengan
struktur data kompleks yang
dikenal dengan struktur data
Indeks dilakukan melalui B-trees
Dokumen dapat berisi banyak
pasangan key- value yang
berbeda, atau pasangan key-
array, atau bahkan dokumen
bersarang
21. We need….
Kita perlu system basis data terdistribusi yang memiliki fitur seperti:
Toleransi kesalahan
Ketersediaan tinggi
Konsisten
Skalabilitas
22. CAP Teori
Mustahil bagi system data yang dibagikan
untuk menjamin secara bersamaan ke3
property berikut:
Konsisten – setelah data tertulis, semua
permintaan baca di masa depan akan
berisi data itu
Ketersediaan – basis data selalu tersedia
dan responsive
Toleransi partisi – jika bagian dari basis
data tidak tersedia, bagian lain tidak akan
terpengaruh