Apa itu relation pada ERD, Mengapa many-to-many tidak baik digunakan pada ERD

    Relasi (Relation) dalam entity_relationship Diagram(ERD) adalah koneksi atau hubungan antara dua atau lebih entitas (tabel), Relasi ini menggambarkan bagaimana data dalam satu entitas berhubungan dengan data di  entitas lain, Setiap relasi memiliki tipe yang menjelaskan jumlah keterlibatan entitas, seperti:

  1. One-to-One(1:1): Setiap entitas A berhubungan dengan satu entitas B, dan sebaliknya.
  2. One-to_Many(1): Setiap entitas A bisa berhubungan dengan banyak entitas B, tetapi B hanya berhubungan dengan satu entitas A.
  3. Many-toMany(M): Setiap entitas A bisa berhubungan dengan banyak entitas B, dan setiap entitas B juga bisa berhubungan dengan banyak entitas A.
Mengapa Relasi Many-to_Many Tidak Baik Digunakan Secara Langsung Pada ERD?

Relasi many-yomany(M) dianggap kurang baik juka digunakan pada ERD karena:
  1. Keterbatasan Implementasi: sSebagian besar sistem manajemen basis data relasional (RDBMS) tidak  mendukung relasi many-to-many secara langsung. Untuk mengimplementasikannya, perlu dibuat tabel perantara (join tabel) atau associative entity yang mencegah relasi many-to-many menjadi dua relasi one-to-many. Ini memudahkan pelolaan dan pemrosesan data.
  2. Redunsasi dan Ambiguitas Data: Relasi many-to-many tanpa tabel perantara dapat menyebabkan duplikasi data, karena sulit untuk melacak hubungan antar entitas dengan tepat. Hal ini juga dapat mempersulit proses update dan delete data yang terkait.
  3. Masalah Konsistensi dan Integritas Daata: Jika tidak menggunakan tabel perantara, kontrol terhadap integritas data menjadi lebih sulit. Dengan tabel perantara, kita bisa memastikan setiap pasangan entitas dihubungkan secara eksplisit dan jelas, menjaga agar tidak ada relasi yang hilang atau  duplikasi.
Contoh:

Misalkan ada relasi many-to-many antara entitas Mahasiswa dan Mata Kuliah (setiap mahasisawa bisa mengambil banyak mata kuliah, dan satu mata kuliah bisa diambil banyak mahasiswa). Solusi untuk relasi ini adalah membuat  tabel perantara Enroll (Pendaftaran) yang memecah relasi M menjadi dua relasi 1:N:
  • Mahasiswa - enroll (1) : Satu mahasiswa bisa terdaftar di banyak mata kuliah.
  • Mata Kuliah - Enroll (1): Satu mata kuliah bisa  diambil oleh banyak mahasiswa
Dengan cara ini, relasi menjadi  lebih terstruktur dan mudah dikelola.

Komentar