Apakah Relationship 1:1 Itu Ada?
Membahas entitas kuat dan lemah, relationship satu-ke-satu dan pemetaannya ke tabel relasional
Daftar Isi
• Pendahuluan
• Entitas Kuat dan Lemah
• Relationship 1:1
• Pemetaan ER ke Relasi
• Penutup
• Referensi
Pendahuluan
Pada tulisan sebelumnya telah dibahas relationship1:N dan relationship M:N. Kali ini akan dibahas relationship 1:1. Connolly & Begg (2015:420) memberikan contoh berikut.
Diagram ER (entity-relationship) di atas menunjukkan bahwa seorang staf boleh jadi mengelola nol atau satu cabang; sebaliknya, setiap cabang dikelola oleh seorang staf. Hal ini benar untuk saat ini. Bagaimana kalau untuk jangka waktu lama, misalnya 5 tahun atau lebih? Tentu dalam jangka waktu tersebut akan tercatat seorang staf boleh jadi mengelola beberapa cabang; sebaliknya, setiap cabang dikelola oleh seorang atau beberapa staf. Relationship-nya menjadi banyak-ke-banyak.
Contoh lain adalah relationship 1:1 antara negara dengan ibu kota. Bukankah satu negara hanya memiliki satu ibu kota, dan sebaliknya satu ibu kota hanya dimiliki oleh satu negara?
Itu tidak sepenuhmya benar. Ternyata di dunia ada beberapa negara memiliki dua ibu kota dan satu negara bahkan memiliki tiga ibu kota. Dengan demukian relationship-nya adalah satu-ke-banyak.
Agaknya cukup sulit mencari contoh nyata relationship 1:1.
Tulisan ini membahas relationship 1:1 menggunakan contoh hubingan antara entitas mahasiswa dan tugas akhir. Setiap mahasiswa pada suatu program studi mengerjakan satu tugas akhir. Sebaliknya, satu tugas akhir ditulis oleh hanya satu orang mahasiswa. Artikel membahas entitas kuat, entitas lemah, dan diakhiri dengan pemetaan diagram entity-relationship 1:1 ke relasi.
Entitas Kuat dan Lemah
Entitas kuat adalah entitas yang eksistensinya tidak bergantung pada entitas lain. Adapun entitas lemah adalah entitas yang eksistensinya bergantung pada entitas lain. Entitas mahasiswa, misalnya, adalah entitas kuat bila dibandingkan dengan entitas tugas akhir karena eksistensi mahasiswa tidak bergantung dengan tugas akhir. Tugas akhir ada atau tidak, entitas mahasiswa tetap eksis. Sebaliknya, entitas tugas akhir adalah entitas lemah karena eksistensinya bergantung dengan adanya mahasiswa. Kalau mahasiswa tidak ada, tugas akhir juga tidak ada.
Relationship 1:1
Diagram ER berikut menggambarkan relationship antara entitas Mahasiswa dan entitas TugasAkhir.
Seorang mahasiswa mengerjakan hanya satu tugas akhir, namun ada mahasiswa yang tidak mengerjakan tugas akhir, sehingga multiplisitas di sisi TugasAkhir adalah 0..1. Multiplisitas 1 di sisi entitas Mahasiswa menunjukkan bahwa setiap tugas akhir pasti dikerjakan oleh seorang mahasiswa. Primary key NIM pada entitas kuat Mahasiswa muncul di entitas lemah TugasAkhir sebagai foreign key. Karena relationship 1:1, NIM pada entitas TugasAkhir bernilai unik, sehingga dapat dijadikan sebagai primary key. Dengan demikian, NIM pada entitas TugasAkhir berfungsi sebagai primary key dan juga foreign key.
Pemetaan ER ke Relasi
Ada dua pilihan pemetaan.
- Kedua entitas yang terhubung dipetakan menjadi dua relasi berikut:
Mahasiswa (NIM, Nama, TglLahir, Jalan, Kecamatan, Kota, IPK)
TugasAkhir (NIM, Judul, TglMulai, TglSelesai) - Kedua entitas yang terhubung disatukan membentuk sebuah relasi. Primary key pada entitas lemah melebur ke primary key entitas kuat. Agar lebih jelas, tambahkan teks TA di belakang nama atribut Judul, TglMulai, TglSelesai sehingga diperoleh relasi berikut:
Mahasiswa (NIM, Nama, TglLahir, Jalan, Kecamatan, Kota, IPK, JudulTA, TglMulaiTA, TglSelesaiTA)
Manakah yang Anda pilih? Pilihan (1) memiliki kelebihan:
- Strukturnya baik, kedua relasi yang terbentuk sesuai dengan diagram ER.
- Mahasiswa yang belum mengerjakan tugas akhir, NIM-nya tidak muncul di dalam relasi TugasAkhir sehingga tidak ada atribut yang nilainya kosong.
Kekurangannya:
- Jumlah relasi lebih banyak
- Pemrosesan query data dari kedua relasi lebih lambat karena memerlukan operasi join.
Kelebihan pilihan (2) adalah:
- Lebih sederhana karena jumlah relasi lebih sedikit
- Pemrosesan query lebih cepat karena tidak memerlukan operasi join.
Kekurangannya:
- Strukturnya kurang baik, dua entitas yang berbeda disatukan dalam sebuah relasi
- Sebagian atribut mahasiswa yang belum mengerjakan tugas akhir tidak ada nilainya (kosong)
Penutup
Relationship 1:1 jarang ada di dunia nyata. Jika riwayatnya diperlukan maka relationship menjadi satu-ke-banyak atau banyak-ke-banyak.
Ada dua pilihan untuk memetakan entitas dalam relationship 1:1. Dua entitas yang terhubung tersebut: (1) dipetakan menjadi dua relasi, atau (2) disatukan membentuk satu relasi. Setiap pilihan mempunyai kelebihan dan kekurangannya masing-masing.