MongoDB - Database Tanpa Relasi
Assalamu'alaikum wr.wb.
Selamat datang para pembaca. Kali ini saya akan memperkenalkan database yang sedang naik daun. Yaitu MongoDB. Jika kita mengenal database seperti MySQL atau SQL Server. MongoDB berbeda dengan mereka. Database yang satu ini tidak menggunakan relasi ataupun tabel.
Jika anda ingin belajar MongoDB, ada beberapa aplikasi yang mungkin memudahkan anda untuk mempelajarinya. Namun saya sarankan untuk keluar dari pemikiran database relasi. Karena MongoDB berbeda dengan mereka. Dan tentunya akan sangat membingungkan jika kita masih belum bisa move on dari database relasi.
Pada artikel ini saya akan memberikan penjelasan tentang mongodb diantaranya meliputi kelebihan dan kekurangan mongodb yang mana hal ini sering menjadi pertanyaan bagi para pemula. Selain itu saya juga akan membahas mengenai perbedaan mongodb jika dibandingkan dengan MySQL. Dan tidak luput pula dari penjelasan yang lebih umum antara nosql dan sql
Baca Juga
- MySQL. Software Database Dengan Kecepatan Luar Biasa
- Program Pencarian Dinamis Menggunakan Bahasa Pemrograman C#
- Tipe Data Dan Variabel Pada Bahasa Pemrograman Python
Pengertian MongoDB
Menurut Wikipedia, MongoDB adalah salah satu produk database Open Source yang menggunakan struktur data JSON untuk menyimpan datanya. MongoDB adalah salah satu database NoSQL yang paling populer di internet. Dan Sering dipakai pada aplikasi berbasis Cloud, Grid Computing atau Big Data.Pengertian NoSQL
Sementara Databse NoSQL merupakan database yang tidak mempunyai relasi database dan tidak menyimpan data kaku seperti relasional database. NoSQL adalah database yang berorientasi pada dokumen (Document Oriented Database) sehingga tidak adah redunansi data.Pengelompokkan Database NoSQL
Menurut format penyimpanan dokumennya, NoSQL dibagi menjadi beberapa kelompok. Yaitu sebagai berikut :- Document Database : Setiap satu object disipan dalam satu document. document sendiri bisa berisi key value, dan key 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 sosial.
- Key - Value : Contoh database ini adalah Cassandra.
- Object Database : Format database disimpan dalam object. Object disini sama dengan pengertian di pemrograman berorientasi object.
Beberapa jenis database NoSQL diatas diwakili oleh aplikasi yang berbeda-beda. Untuk MongoDB sendiri adalah database NoSQL yang termasuk dalam kelompok pertama (Document Database). Jadi saya cukup menjelaskan yang pertama saja.
Perbedaan MongoDB dan MySQL
Secara umum Perbedaan mongodb dan mysql bisa disebut sebagai perbedaan nosql dan sql. Mongodb adalah simbol dari nosql karena diantara yang lain, mongodb adalah yang paling populer. Sementara MySQL merupakan database relasional yang populer. Artinya keduanya adalah yang terpopuler di bidangnya masung - masing. Berikut ini merupakan perbedaan antara MongoDB dan MySQL :
Perbedaan MongoDB dan MySQL
Secara umum Perbedaan mongodb dan mysql bisa disebut sebagai perbedaan nosql dan sql. Mongodb adalah simbol dari nosql karena diantara yang lain, mongodb adalah yang paling populer. Sementara MySQL merupakan database relasional yang populer. Artinya keduanya adalah yang terpopuler di bidangnya masung - masing. Berikut ini merupakan perbedaan antara MongoDB dan MySQL :
- Database MySQL bersifat relasional. Dari sinilah tercipta Sistem Basis Data Relasional (RDBMS). Database MongoDB adalah Database NoSQL atau terdistribusi.
- Basis Data mySQL Berbasis tabel, Sedangkan Basis data MongoDB berbasis dokumen.
- MySQL menggunakan Query yang terstruktur. Sedangkan MongoDB fokus untuk permintaan yang berada pada koleksi dokumen.
- MySQL Data terdiri dari tabel dan jumlah baris, sedangkan MongoDB tidak memiliki skema standart yang harus dipatuhi.
- Database MongoDB horizontal terstruktur, sementara MySQL vertikal terstruktur.
- Untuk memperbesar skala MongoDB, tambahkan server DB di clutser untuk load balancing. Jika memperbesar skala MySQL, tambahkan dari skala CPU, SSD, RAM dan perangkat keras lainnya pada server. Dalam Hal skalabilitas, MongoDB lebih baik.
- MySQL memungkinkan untuk interaksi karena merupakan bahasa query deklaratif, setelah anda menyatakan apa yang diinginkan. Misal untuk menampilkan. DB mencetak hasil setelah membangun algoritma secara internal. Dengan MongoDB, Map Reduce, menjadi permintaan prosedural. Mengharuskan bahwa anda tidak hanya tahu apa yang anda inginkan, tapi anda menyatakan persis bagaimana untuk menghasilkan jawaban. Peningkatan interaksi dengan data memungkinkan untuk wawasan baru yang akan mengembangkan produk.
- Database MongoDB lebih cocok untuk penyimpanan hirarkis, hal ini karena MongoDB mengikuti metode penyiimpanan pasangan key-value yang mirip dengan JSON.
- MySQL lebih cocok untuk database transaksi. Karena MySQL lebih stabil dan menjanjikan integritas dan atomicity data.
- MySQL sudah dikembangkan sejak lama, jadi anda bisa mendapat dukungan dukungan lebih baik. Meskipun saat ini mulai banyak tim DBA jarak jauh memiliki pengalaman dengan MongoDB.
Perbedaan MySQL dan MongoDB mungkin masih banyak yang belum dibahas. Namun perbedaan diatas cukup membuktikan bahwa MongoDB benar-benar berbeda dengan MySQL. Dengan MongoDB, kita bisa membuat database semau kita tanpa perlu memikirkan konsep dan aturan dari relasional database yang cenderung rumit. Hal ini disebabkan MongoDB adalah NoSQL dengan jenis Document Oriented Database.
Point Penting Dari MongoDB Sebagai Document Oriented Database
MongoDB sebagai NoSQL dengan tipe Document Oriented Databse. memiliki beberapa point penting. Yang mana point tersebut berhubungan dengan ciri khas MongoDB. Berikut ini merupakan point penting dari MongoDB :
- Data Unit MongoDB dikatakan sebagai dokumen. Ini sama dengan Row di relational Database.
- Koleksi beberapa dokument disimpan dalam collection. Ini sama dengan tabel di relasional database.
- Database merupakan kumpulan dari beberapa collection. MongoDB dapat menerima lebih dari satu database secara independen.
- MongoDB memiliki Javascript Shell yang sangat berguna untuk urusan administrasi dan manipulasi data.
- Data -data dokument akan dipisah dan kemudian di kirim ke beberapa komputer clutser.
Dari point diatas. Hal yang penting dalam point ini adalah Document dan Collection. Itulah yang membedakan MongoDB dengan database relasional. Mungkin beberapa dari anda menganggap hanya perbedaan nama, namun sistemnya sama. Ternyata tidak. Tidak hanya nama yang berbeda. Namun sistemnya pun berbeda. Untuk lebih jelasnya, silahkan simak artikel lebih lanjut.
Document
Document disini merupakan data dengan key dan value. Struktur data seperti map, hash, dan dictionary. Merupakan bentuk representasi dari dokumen ini berbeda - beda.Collection
Jika Dokument dapat kita anggap sebagai row, maka collection adalah tabel. Collection merupakan sebuah folder dengan banyak file sebagai dokumennya. Darisini kita bisa simpulkan bahwa collection terdiri dari satu atau banyak dokument independen.
Perlu kita ketahui adalah collection pada MongoDB bersifat schema-free. Ini bertolak belakang dengan RDBMS yang schema-full. Kalau pada MySQL tabel itu harus diinisialisasi dulu seperti jumlah kolom, nama kolom, primary key dan constrain-nya, maka schema-free berarti semua inisialisasi seperti itu tidak ada. Karena sifat schema-free inilah yang disebut sebut mempercepat performa mongodb daripada database jenis relational seperti SQL Server, MySQL ataupun PostgreSQL.
Database
Kumpulan satu atau lebih collection membentuk database. MongoDB bisa memiliki lebih dari satu database yang masing-masing memiliki permission dan masing-masing bisa disimpan pada sebuah file disk yang berbeda. Ini sangat bermanfaat saat anda memiliki beberapa aplikasi dengan banyak user tapi hanya satu server mongodb.
Mengapa harus memakai MongoDB?
Alasan utamanya karena mudahnya mengatur scale database. Scaling database bisa dilakukan dengan dua cara yang pertama scaling up (memperbesar kualitas mesin) dan yang kedua scaling out (partisi data ke beberapa mesin). Untuk sebuah web application yang besar akan sangat tidak efektif jika ditanggung oleh satu mesin. Terlebih lagi kebutuhan akan mesin dengan spesifikasi tinggi juga mahal, maka pilihan yang efektif untuk scaling database adalah dengan mem-partisi data ke beberapa mesin untuk menambah optimalisasi pemrosesan data. Mongodb telah dirancang sejak awal untuk urusan itu. Document-oriented yang dimiliki oleh MongoDB akan secara otomatis membagi data ke beberapa mesin. Penambahan mesin baru bisa dilakukan dengan mudah, cukup memasukkannya ke cluster (http://en.wikipedia.org/wiki/Cluster_(computing)) dan biarkan MongoDB yang mengatur semuanya. Untuk ulasan lengkap tentang scale out ini akan saya tulis pada bagian tiga dari artikel ini.
Kesimpulan
MongoDB adalah salah satu jenis database NoSQL dengan model document-oriented. Mudahnya scaling out menjadikan pilihan tepat untuk web aplikasi yang memiliki traffic tinggi dan memiliki data besar. Tapi perlu dipahami juga adalah database jenis ini tidak menggantikan relational database. Mudahnya scaling out tidak mengartikan bahwa semua data aplikasi cocok memakai mongodb. Diawal dikatakan bahwa model database mongodb bersifat schema-free. Model ini dibangun tanpa relasi, constrain dan transactional process (http://en.wikipedia.org/wiki/Transaction_processing), sehingga sangat tidak tepat memakai mongodb pada aplikasi-aplikasi yang sarat dengan proses transaksi seperti perbankan, pergudangan, atau akunting.
Post a Comment for "MongoDB - Database Tanpa Relasi"