MongoDB - Relasi Pada Database NoSQL
Assalamu'alaikum wr.wb.
Pada kesempatan ini, saya akan membahas tentang contoh relasi pada database NoSQL menggunakan MongoDB. Pada dasarnya NoSQL tidaklah mempunyai relasi karena MongoDB sendiri merupakan database yang berbentuk dokumen seperti judul dan sub judul. Namun beberapa developer yang sebelumnya belajar tentang RDBMS mungkin merasa kebingungan jika beralih ke NoSQL. Maka dari itu saya akan membahasnya disini.
Sebenarnya tiap database NoSQL masih berbeda beda konsep. Seperti MongoDB berbeda dengan Cassandra dan lain - lain. Karena NoSQL memiliki banyak sekali jenisnya. Sehingga setiap aplikasi NoSQL menerapkan salah satu jenisnya ke aplikasi tersebut. Disini saya tidak akan menjelaskan semuanya. Cukup Document Oriented Database saja yang merupakan jenis yang digunakan oleh MongoDB.
Baca Juga
- C++ - Mengatur Letak Output Menggunakan Fungsi Gotoxy
- C# - Definisi Entity Framework Dan Cara Menggunakannya
- Lebih Lanjut Tentang SELECT di MySQL
Perlu diketahui pada artikel saya sebelumnya yang berjudul MongoDB, Database Tanpa Relasi menjelaskan tentang database MongoDB yang merupakan database yang tidak menggunakan relasi. Hal itu benar adanya. Tapi disini saya hanya memberikan perumpamaan saja tentang merubah dari database relasi menjadi database non relasi.
Berikut ini merupakan perpindahan dari database relasional menjadi NoSQL
One To One
Relasi one to one merupakan relasi diantara 2 tabel yang masing - masing terdiri dari satu data saja. Jadi artinya primary key pada tabel lemah merupakan foreign key dari tabel pertama. Berikut ini merupakan contoh one to one dari database relasionalGambar diatas adalah contoh relasi dari one to one. Berikut ini merupakan isi dari tabel tersebut
Pada gambar datas dapat kita ketahui bahwa tabel member dan rekening berelasi melalui foreign key id_member yang dijadikan primary key pada tabel rekening. Dari sini dapat disimpulkan bahwa satu member hanya memiliki satu rekening dan satu rekening hanya untuk satu member. Jika data di member dihapus, dia bukanlah anggota, dan rekening sudah pasti tidak ada. Jika data rekening dihapus, tapi data member masih ada, artinya dia adalah member yang belum memiliki rekening. Begitulah kira - kira teori tentang one to one. Dibawah ini merupakan relasi one to one jika kita ubah menjadi NoSQL
Dari gambar diatas, bisa kita lihat dimana member merupakan data utama, sedangkan rekening merupakan sub data. Disini kita bisa melihat bahwa dua tabel yang berelasi dijadikan satu pada NoSQL menggunakan metode judul dan sub judul. Dengan demikian, tidak ada redudansi data yang umum terjadi seperti pengulangan foreign key yang memang tidak begitu berpengaruh. Namun hal itu dapat berpengaruh besar jika data sudah mencapai ribuan baris.
One To Many
Pada relasi one to many, kita memberikan sebuah data pada tabel satu dan tabel 2 sebagai pelengkap dimana data dari tabel 1 dapat memiliki banyak data dari tabel 2. Pada umumnya relasi one to many memang sering digunakan karena many to many merupakan pemecah masalah dalam berbagai hal. Berikut ini merupakan gambar relasi database one to many dari RDBMSKita isi data dari tabel diatas seperti dibawah ini
Gambar diatas menjelaskan bahwa pada terdapat 2 tabel yaitu tabel dosen dan tabel matkul. Dimana dapat diartikan bahwa satu dosen memiliki banyak matkul. Dan relasi tersebut berada pada id_dosen. Berikut ini merupakan gambar relasi database one to many jika diubah ke NoSQL
Kita bisa lihat, secara garis besar tidak ada bedanya dengan one to one. Yang membedakan hanyalah id_matkul dimana sub data diberikan id sebagai pembeda dari data satu ke data yang lain. Dengan begitu kita bisa menginput data matkul pada dosen dengan lebih leluasa. Tentu hal ini juga mengurangi redunansi data dimana foreign key (id_dosen) yang jika pada database relasional terus menerus diisi setiap matkul ditambah.
Many To Many
Relasi many to many merupakan relasi diantara 2 tabel yang mana tabel pertama dapat memiliki banyak data dari tabel kedua dan tabel kedua juga memiliki banyak data dari tabel pertama. Sehingga memunculkan tabel baru diantara kedua tabel tersebut. Berikut ini merupakan gambar relasi databale many to many dari RDMBSKita isi data seperti dibawah ini
Pada gambar diatas, kita melihat bahwa ada tiga tabel yaitu mahasiswa, matkul, dan detail matkul. DImana data pada mahasiswa dan matkul pada umumnya sudah ada terlebih dahulu sebelum tabel detail_matkul. Artinya proses insert terjadi pada detail matkul dimani detail_matkul sendiri merupakan penghubung antara mahasiswa dan matkul. Berikut ini merupakan gambar dari relasi database many to many yang diubah ke NoSQL
Pada relasi ini, dapat dilihat bahwa terdapat 2 tabel (mahasiswa, matkul) dan tabel detail_matkul dihilangkan. Namun yang terjadi disini adalah dimana pada tabel mahasiswa memiliki sub data dari matkul dan dari tabel matkul pun memiliki sub data dari mahasiswa. Sub data dari kedua tabel tersebut berisi id masing - masing tabel. Tentu ini sangat menghemat data dimana tidak ada pengulangan pada detail_matkul.
Meski demikian, pendapat saya tentang relasi many to many ini sebenarnya tidaklah konsisten. Dimana kita harus menambah id pada tabel yang berelasi ke kedua tabel yang berelasi. Tentu ini sangatlah membengungkan dan tidak efisien. Karena kemungkinan kesalahan input data jadi lebih besar. Berbeda dengan one to one atau one to many yang mana tabel pertama lah yang diisi terlebih dahulu sebelum tabel kedua. Pada relasi many to many, tabel pertama dan ketiga harus sudah diisi terlebih dahulu, baru input tabel 2. Jika relasinya seperti diatas, artinya kita harus menginput 2 tabel secara bersamaan.
Penutup
Dengan menggunakan NoSQL dan MongoDB sebagai servernya, kita dapat menghemat data dan menghindari redunansi data yang ada. Seperti halnya di Database RDBMS yang sering melakukan redunansi data pada id. Pada database NoSQL, hal itu dapat di minimalisir agar database bisa menyimpan data secara optimal.Contoh relasi NoSQL diatas adalah contoh yang digunakan pada MongoDB. Tidak berlaku untuk NoSQL yang lain. Maka dari itu, saya sampaikan bahwa artikel ini hanya membahas tentang document oriented database yang digunakan pada mongodb.
Demikian tutorial yang dapat saya berikan. Apabila ada kekurangan saya mohon maaf. Silahkan tinggalkan jejak di kolom komentar. Assalamu'alaikum wr.wb.
Post a Comment for "MongoDB - Relasi Pada Database NoSQL"