Apa itu relation pada ERD, Mengapa many-to-many tidak baik digunakan pada ERD?
Apa itu relation pada ERD, Mengapa many-to-many tidak baik digunakan pada ERD?
Pengertian Relatinship
Ada beberapa tipe relasi yang bisa ada di ERD:
- One-to-One (1:1): Satu entitas dari satu jenis terkait
dengan tepat satu entitas dari jenis lain. Contohnya, setiap orang memiliki
satu nomor paspor, dan setiap nomor paspor hanya dapat terkait dengan satu
orang.
- One-to-Many (1:N): Entitas bertipe satu dikaitkan dengan entitas bertipe lain. Misalnya, seorang guru dapat mengajar banyak siswa tetapi setiap siswa hanya dapat diajar oleh satu guru.
- Many-to-One (N:1): Beberapa entitas dari satu tipe terkait dengan entitas tipe lain. Misalnya banyak siswa bisa berasal dari satu sekolah namun setiap siswa hanya bisa berasal dari satu sekolah.
- Many-to-Many (N:N):Beberapa entitas dari satu jenis dikaitkan dengan beberapa entitas dari jenis lain. Misalnya, banyak siswa dapat mendaftar untuk banyak kursus dan sebaliknya, suatu kursus dapat diikuti oleh banyak siswa.
Many-to-many relationships dalam Entity
Relationship Diagram (ERD) adalah hubungan di antara dua atau lebih entitas di
mana setiap entitas dari satu jenis terhubung dengan banyak entitas dari jenis
lain, dan sebaliknya. Contohnya, banyak siswa dapat mendaftar untuk banyak
kursus, dan sebaliknya, banyak kursus dapat diikuti oleh banyak siswa.
Mengapa many-to-many tidak selalu
disarankan dalam ERD:
- Kompleksitas
Desain: Hubungan many-to-many dalam ERD
dapat membuat desain database menjadi lebih kompleks. Ini memerlukan
penggunaan tabel penyambung (junction table) tambahan untuk mencatat
hubungan antara entitas. Hal ini membuat desain lebih sulit dipahami.
- Kesulitan
dalam Query: Menjalankan query pada hubungan
many-to-many seringkali lebih rumit. Anda perlu menggunakan operasi JOIN
untuk menggabungkan data dari beberapa tabel, yang bisa mempersulit
pengembangan query.
- Konsistensi
Data: Memastikan integritas data (data integrity)
dalam hubungan many-to-many bisa lebih rumit. Perlu dipastikan bahwa data
dalam tabel penyambung tetap konsisten dan referential integrity
(integritas referensial) dijaga.
- Kinerja:
Hubungan many-to-many bisa mempengaruhi kinerja database, terutama jika
tidak diindeks atau diatur dengan baik.
Untuk mengatasi masalah ini, biasanya
disarankan untuk meresolusi hubungan many-to-many dengan memasukkan tabel
penyambung yang memecah hubungan ini menjadi dua hubungan one-to-many.
Misalnya, daripada memiliki hubungan langsung many-to-many antara siswa dan
kursus, Anda dapat memiliki tiga tabel: Siswa, Kursus, dan
TabelPenyambungSiswaKursus yang menghubungkan siswa dengan kursus yang mereka
ambil. Ini membuat hubungan lebih mudah dikelola dan dipahami.
Komentar
Posting Komentar