database

Pengalaman menggunakan NoSQL: Dulu Pakai MongoDB dan Sekarang Pindah ke Cassandra

Posted on Updated on

nosql - diagram

Gue cuma mau sharing sedikit dan to the point saja.

(sampai saat tulisan ini ditulis)

Kalau pengen pake NoSQL dan nantinya banyak melakukan UPSERT (INSERT OR UPDATE) atau keperluan write intensive lain-nya dengan frekuensi data rate yg bisa dibilang lumayan tinggi, maka gue sarankan JANGAN menggunakan MongoDB.

Why? Karena nanti database dan collections anda akan locking. MongoDB TIDAK support concurrent read dan write, locking -nya ada di level collections (bukan di level document/row).

Solusinya? Gunakan Cassandra. Cassandra cocok banget buat keperluan highly concurrent write tanpa mengganggu kebutuhan untuk read data.

NOTES! Gue gak bilang Cassandra lebih bagus dari pada MongoDB secara general ya! Inti dari tulisan ini cuma mau ngasih tau bahwa kita harus pilih2 teknologi NoSQL yang tepat sesuai fungsi dan kebutuhan kita.

Contohnya: untuk write-intensive application, Cassandra pasti akan perform lebih bagus dari pada MongoDB. Sedangkan untuk read-intensive, secara garis besar MongoDB akan perform lebih bagus dari pada Cassandra!

Advertisements

Rangkuman Sistem Basis Data (SBD)

Posted on Updated on

– Transaction
sebuah aksi atau serangkaian aksi yang dilakukan user atau aplikasi untuk mengubah suatu isi database.

transaksi mempunyai 2 return value:
1. committed == sukses
2. aborted == gagal

4 Sifat dari Traksaksi (ACID):

1. Atomicity (Keutuhan)
2. Consistency (Ketetapan)
3. Isolation (Pemisahan)
4. Durability (Daya Tahan)

– Concurency
proses akses data secara concurren atau bersamaan yang ngga menimbulkan gangguan pada database akses data ngga akan terganggu jika hanya melakukan query ‘read’,
untuk menanggulangin problem ‘write’ pada concurrent akses, maka digunakan methode locking atau timestamp pada query write/insert/update.

– Recovery
proses pengembalian data yang rusak/terganggu ke state yang benar.

ada 2 jenis penyimpanan menurut tingkat reliabilitasnya:

– volotile (biasa tidak bertahan jika ada kerusakan sistem, contohnya main memory)
– non volotile (lebih reliable dan lebih murah, karena menyimpan data di dalam media penyimpanan (disk)).

– Data Warehouse
Kumpulan dari data2 yang dikumpumlan dari berbagai macam source untuk membantu membuat decision making suatu perusahaan.
isi dari datawarehouse antara lain: customer, products, sales, dll
jadi data di data warehouse dapat digunakan untuk melihat trend yang sedang “in” jadi perusahaan tetap selalu up-to-date.

– Distributed DBMS
Distributed DBMS adalah sekumpulan database yg saling ber-relasi yang secara fisik terdistribusi di dalam jaringan.

konsep:
– kumpulan dari data2.
– data dipisah2 menjadi beberapa bagian.
– bagian2 dari data (dimungkinkan) untuk direplika di tempat lain
– bagian2 dari data/replikasi di alokasikan ke sebuah situs.

kelebihan ddbms:
– lebih reliable
– modular dan lebih scalable
– performance yg lebih baik
– fungsi sharing dan local autonomy yg lebih

kekurangan ddbms:
– complexity
– cost
– security
– lack of standards
– harder database design
– less integrity

– Security
Database Security adalah upaya2 atau cara untuk mengamankan database dari ancaman2 yg tidak disengaja maupun disengaja.
selain keamanan database, keamanan di dalam sistem dan aplikasi yg menggunakan database tersebut harus diperhatikan jg.

countermeasure of database security:

1. authorization (pemberian hak atau wewenang, (user/password))
2. view (database virtual yg dibuat)
3. back-up and recovery (penyalinan database dan log secara teratur untuk recovery)
4. integrity (men-cek validitas data)
5. Encryption (memberikan enkripsi kepada data sehingga butuh dekripsi untuk membaca data tersebut)
6. RAID (redundant array of independent disk)