Database noSQL (lanjutan) Sesi 5 – SBD2
Sejarah singkat basis data Mengapa? Apa? Dan Kapan menggunakan noSQL? Karakteristik basis data noSQL Model data agregat Teori CAP
Pendahuluan 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.
Sejarah singkat
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
Basis data sql
RDBMS
nosql why? what? when? Era komputasi terdistribusi Tetapi 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)
nosql why? what? when? Dan…lemah dalam: Kecepatan (performa) Ketersediaan tinggi Toleransi partisi
Why nosql now? -> Ans. Driving Trends New Trends
Performa rdbms
What’s 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.
Karakteristik database nosql NoSQL menghindari: NoSQL menyediakan: Transaksi ACID Query sql yang komplek Beban desain skema up-front Kehadiran DBA Transaksi (harus ditangani lapisan aplikasi Perubahan yang mudah dan sering pada database Pengembangan cepat Isi data yang besar Tanpa skema
nosql why? what? when? When and when not to use it? When/why? When not? 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 Data keuangan Data yang membutuhkan kepatuhan ACID yang ketat Data penting bisnis
nosql semakin populer
Apa itu model data 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)
Apa itu model data 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)
Model data agregat Basis data noSQL diklasifikasikan dalam 4 data model utama: Key-value Document Column family Graph Setiap database memiliki Bahasa query sendiri
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)
Model data : family column Kolom adalah contoh data terendah/terkecil Itu adalah tuple yang berisi nama, nilai dan stempel waktu
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
Model data : graph Berdasarkan teori grafik Skala secara vertical, tanpa pengelompokan Dapat menggunakan algoritma grafik dengan mudah Transaksi ACID
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
Data model : document based
SQL vs NoSQL
What we need? Kita perlu system basis data terdistribusi yang memiliki fitur seperti: Toleransi kesalahan Ketersediaan tinggi Konsisten Skalabilitas
Teori cap 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
Tradisional vs noSql
Sekian dan Terimakasih