Post 8 - Pengertian relation pada ERD dan Mengapa many-to-many tidak baik digunakan pada ERD
Apa Itu Relation pada ERD, dan Mengapa Many-to-Many Tidak Baik Digunakan?
Dalam pembuatan ERD (Entity Relationship Diagram), kita bakal berurusan dengan entitas dan atribut serta hubungan antara keduanya yang disebut relasi (relation). Relasi memiliki peran yang sangat penting yaitu berfungsi untuk menghubungkan satu entitas dengan entitas lainnya. Tanpa adanya relasi, tabel-tabel dalam database akan berdiri sendiri dan tidak dapat saling berinteraksi atau bertukar data.Secara sederhana, relasi yaitu seperti sebuah jembatan penghubung antar tabel yang memungkinkan data saling terhubung dengan rapi dan efisien.
Pengertian Relation dalam ERD
Relation (relasi) merupakan hubungan logis antara dua atau lebih entitas dalam suatu sistem basis data. Relasi ini menunjukkan bagaimana data dari sebuah entitas berhubungan atau berinteraksi dengan data dari entitas lainnya.Sebagai contoh:
- Satu Mahasiswa dapat mengambil banyak Mata Kuliah,
- Satu Dosen dapat mengajar banyak Kelas,
- Satu Pelanggan dapat melakukan banyak Transaksi.
Hubungan tersebut dapat digambarkan melalui relasi dalam ERD agar struktur data menjadi lebih jelas dan mudah dipahami.
Jenis-Jenis Relation dalam ERD
Secara umum, terdapat tiga jenis relasi utama yang digunakan dalam ERD, yaitu:1. One to One (1:1)
Artinya, satu entitas hanya memiliki hubungan dengan satu entitas lainnya.
Contoh:
- Satu Mahasiswa memiliki satu NIM.
- Satu Warga Negara memiliki satu NIK.
Artinya, satu entitas hanya memiliki hubungan dengan satu entitas lainnya.
Contoh:
- Satu Mahasiswa memiliki satu NIM.
- Satu Warga Negara memiliki satu NIK.
2. One to Many (1:N)
Artinya, satu entitas dapat berhubungan dengan banyak entitas lain, tetapi entitas yang lain hanya dapat berhubungan dengan satu entitas tersebut.
Contoh:
- Satu Dosen dapat mengajar banyak Mahasiswa.
- Satu Pelanggan dapat memiliki banyak Pesanan
.
3. Many to Many (M:N)
Artinya, banyak entitas dari satu tabel dapat berhubungan dengan banyak entitas dari tabel lainnya.
Contoh:
- Banyak Mahasiswa dapat mengambil banyak Mata Kuliah.
- Banyak Produk dapat muncul di banyak Transaksi.
3. Many to Many (M:N)
Artinya, banyak entitas dari satu tabel dapat berhubungan dengan banyak entitas dari tabel lainnya.
Contoh:
- Banyak Mahasiswa dapat mengambil banyak Mata Kuliah.
- Banyak Produk dapat muncul di banyak Transaksi.
Mengapa Relasi Many-to-Many Tidak Baik Digunakan?
Meskipun secara konsep relasi many-to-many (M:N) terdengar praktis, penggunaan relasi ini tidak disarankan digunakan secara langsung dalam database relasional. Hal ini disebabkan karena relasi M:N dapat menimbulkan berbagai permasalahan, seperti duplikasi data, kesulitan dalam pengelolaan, serta potensi inkonsistensi data ketika terjadi perubahan atau penghapusan.Untuk mengatasi hal tersebut, relasi many-to-many biasanya dipecah menjadi dua relasi one-to-many (1:N) dengan menambahkan tabel penghubung (junction table atau associative entity).
Sebagai contoh:
Daripada langsung menghubungkan tabel Mahasiswa dan Mata_Kuliah secara M:N, kita dapat membuat tabel tambahan bernama KRS (Kartu Rencana Studi).
Daripada langsung menghubungkan tabel Mahasiswa dan Mata_Kuliah secara M:N, kita dapat membuat tabel tambahan bernama KRS (Kartu Rencana Studi).
Tabel KRS berisi foreign key dari tabel Mahasiswa (NIM) dan tabel Mata_Kuliah (Kode_MK).
Dengan demikian, terbentuk dua relasi baru:
- Mahasiswa → KRS (1:N)
- Mata Kuliah → KRS (1:N)
Cara ini membuat struktur data menjadi lebih teratur, mudah dikelola, dan bebas dari data ganda.
Contoh Kasus Penggunaan Relation dalam ERD relation dimana terdapat Entitas 1 - Relasi - Entitas 2 - Penghubung
1. Mahasiswa - Mengambil - Mata Kuliah → KRS
(KRS sebagai penghubung)
2. Produk - Tercatat dalam - Transaksi → Detail_Transaksi
(Detail_Transaksi sebagai Penghubung)
3. Dokter - Menangani - Pasien → Jadwal_Periksa
(Jadwal_Periksa sebagai penghubung)
4. Guru - Mengajar - Siswa → Kelas
(Kelas sebagai penghubung)
5. Pelanggan - Membeli - Produk → Transaksi
(Transaksi sebagai penghubung)
Jadi Secara singkat, relation pada ERD digunakan untuk menggambarkan hubungan antar entitas dalam sistem basis data agar data antar tabel saling terhubung dan mudah dikelola. Namun, relasi many-to-many sebaiknya dihindari karena bisa menimbulkan kerumitan dan duplikasi data. Solusinya, relasi tersebut diubah menjadi dua relasi one-to-many dengan menambahkan tabel penghubung supaya struktur database tetap efisien dan rapi. Terimakasih telah membaca.
Komentar