Relasi One to One, One to Many, dan Many to Many pada sebuah tabel database akan sering kita lakukan disaat merancang sebuah database yang baik. Sebelum lebih lanjut lagi, relasi tabel pada database itu artinya apa sih? Relasi pada tabel merupakan relasi atau hubungan antara tabel yang satu dengan yang lain pada database. Pada sebuah database, relasi dihubungkan dengan dua tabel yang dihubungkan melalui kolom foreign key pada tabel pertama dengan primary key tabel kedua. Masih bingung? coba amati gambar di bawah ini.
Berdasarkan gambar di atas terdapat dua tabel yaitu tabel dosen dan tabel jurusan yang memiliki primary key dan foreign key. Pada tabel jurusan terdapat primary key id_jurusan dan foreign key dosen_id_dosen yang berelasi ke tabel dosen. Sedangkan isi dari foreign key dosen_id_dosen adalah id_dosen pada tabel dosen. Foreign key yang ada pada tabel jurusan digunakan untuk menghubungkan tabel dosen dengan tabel jurusan.
Beberapa hal yang harus kamu ketahui tentang foreign key & primary key:
- Harus unik
- Tabel hanya boleh memiliki satu primary key, namun dalam beberapa kasus boleh lebih dari 1 primary key (composite key)
- Tabel boleh memiliki lebih dari satu foreign key
- Foreign key digunakan untuk membuat relasi antar tabel
Ada beberapa jenis relasi database, yang akan dibahas adalah:
- One to One
- One to Many
- Many to Many
Lalu bagaimana cara relasi tabel database yang baik dan benar? baca dengan teliti tiga poin relasi di bawah ini agar kamu benar-benar mengerti.
1. Relasi One to One
Relasi One to One adalah relasi yang mana setiap satu baris data pada tabel pertama hanya berhubungan dengan satu baris pada tabel kedua. Agar tidak bingung, lihat visualisasi garis relasi One to One di bawah ini:
Pada gambar di atas maksudnya adalah satu jurusan dikepalai oleh satu dosen.
Contoh tabel relasi One to One.
Pada tabel jurusan terdapat primary key id_jurusan dan foreign key dosen_id_dosen. Yang mana foreign key itulah yang digunakan sebagai penghubung tabel dosen.
Contoh tabel relasi One to One dengan beberapa isi data.
Jika masih bingung dengan gambaran tabel di atas, di bawah ini merupakan contoh jika tabel tersebut diisi beberapa data.
2. Relasi One to Many
Relasi One to Many adalah relasi yang mana setiap satu baris data pada tabel pertama berhubungan dengan lebih dari satu baris pada tabel kedua. Agar tidak bingung, lihat visualisasi garis relasi One to Many di bawah ini:
Pada gambar di atas maksudnya adalah satu dosen wali dapat menampung lebih dari satu mahasiswa.
Contoh tabel relasi One to Many.
Pada tabel mahasiswa terdapat primary key id_mahasiswa dan foreign key dosen_wali_id_dosen_wali. Yang mana foreign key itulah yang digunakan sebagai penghubung tabel dosen_wali.
Contoh tabel relasi One to Many dengan beberapa isi data.
Jika masih bingung dengan gambaran tabel di atas, di bawah ini merupakan contoh jika tabel tersebut diisi beberapa data.
3. Relasi Many to Many
Relasi Many to Many adalah relasi yang mana setiap lebih dari satu baris data dari tabel pertama berhubungan dengan lebih dari satu baris data pada tabel kedua. Artinya, kedua tabel masing-masing dapat mengakses banyak data dari tabel yang direlasikan. Dalam hal ini, relasi Many to Many akan menghasilkan tabel ketiga sebagai perantara tabel kesatu dan tabel kedua sebagai tempat untuk menyimpan foreign key dari masing-masing tabel. Agar tidak bingung, lihat visualisasi garis relasi Many to Many di bawah ini:
Pada gambar di atas maksudnya adalah setiap mahasiswa dapat mengambil banyak mata kuliah dan setiap mata kuliah dapat diambil banyak mahasiswa.
Karena relasi One to Many menghasilkan tabel baru atau tabel ketiga, jika menyertakan record tabel baru tersebut pada grafik akan terlihat seperti di bawah ini. Karena hubungan erat mahasiswa yang belajar mata kuliah adalah nilai dan sekaligus berfungsi sebagai penghubung antara tabel mahasiswa dan mata_kuliah.
Contoh tabel relasi Many to Many.
Coba perhatikan pada gambar di atas, terdapat tiga tabel yaitu tabel mahasiswa, nilai, dan mata_kuliah. Tabel mahasiswa dan mata_kuliah tersebut masing-masing berelasi Many to Many dan menghasilkan tabel baru yaitu tabel nilai. Sedangkan tabel baru atau tabel nilai tersebut sebagai penghubung antara tabel mahasiswa dan mata_kuliah yang mana tabel baru tersebut terdapat foreign key mahasiswa_id_mahasiswa dan mata_kuliah_id_mata_kuliah yang fungsinya untuk mengakses tabel mahasiswa dan mata_kuliah.
Contoh tabel relasi Many to Many dengan beberapa isi data.
Jika masih bingung dengan gambaran tabel di atas, di bawah ini merupakan contoh jika tabel tersebut diisi beberapa data.
Sebagai informasi saja, untuk membuat tabel-tabel database aplikasi favorit yang saya gunakan adalah MySQL Workbench, kamu dapat mengunduhnya gratis di https://dev.mysql.com/downloads/workbench/.
Kita sudah belajar tentang bagaimana cara membuat relasi tabel pada database. Tutorial ini dapat kamu gunakan untuk belajar dalam membuat database yang lainnya seperti database perpustakaan, toko online, dll.
Baca juga.
Buat kamu yang masih bingung cara normalisasi database, silakan baca artikel “Cara Normalisasi Database 1NF, 2NF, dan 3NF”. Pada artikel tersebut dijelaskan tahapan-tahapan normalisasi disertai contoh kasus.