BAB 10: Relasi Antar Tabel MySQL – One to One, One to Many, Many to Many, dan Foreign Key

BAB 10: Relasi Antar Tabel MySQL – One to One, One to Many, Many to Many, dan Foreign Key

Relasi database adalah hubungan antara dua atau lebih tabel yang saling terhubung melalui kolom tertentu.

Relasi digunakan untuk menghindari duplikasi data dan menjaga integritas serta konsistensi data dalam database relasional.

Relasi biasanya dibangun menggunakan Primary Key dan Foreign Key.


2. Relasi One-to-One (1:1)

Relasi One-to-One adalah hubungan di mana satu data pada tabel pertama hanya berhubungan dengan satu data pada tabel kedua.

Contoh kasus:

  • Satu mahasiswa memiliki satu kartu identitas mahasiswa.

Contoh struktur tabel:

CREATE TABLE mahasiswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100)
);

CREATE TABLE kartu_mahasiswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    mahasiswa_id INT UNIQUE,
    nomor_kartu VARCHAR(50),
    FOREIGN KEY (mahasiswa_id) REFERENCES mahasiswa(id)
);

3. Relasi One-to-Many (1:N)

Relasi One-to-Many adalah hubungan di mana satu data pada tabel pertama dapat berhubungan dengan banyak data pada tabel kedua.

Contoh kasus:

  • Satu jurusan memiliki banyak mahasiswa.

Contoh struktur tabel:

CREATE TABLE jurusan (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama_jurusan VARCHAR(50)
);

CREATE TABLE mahasiswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100),
    jurusan_id INT,
    FOREIGN KEY (jurusan_id) REFERENCES jurusan(id)
);

4. Relasi Many-to-Many (M:N)

Relasi Many-to-Many adalah hubungan di mana banyak data pada tabel pertama berhubungan dengan banyak data pada tabel kedua.

Relasi ini membutuhkan tabel penghubung (junction table).

Contoh kasus:

  • Mahasiswa dapat mengambil banyak mata kuliah.
  • Satu mata kuliah dapat diambil banyak mahasiswa.

Contoh struktur tabel:

CREATE TABLE mahasiswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100)
);

CREATE TABLE mata_kuliah (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama_mk VARCHAR(100)
);

CREATE TABLE krs (
    mahasiswa_id INT,
    mata_kuliah_id INT,
    PRIMARY KEY (mahasiswa_id, mata_kuliah_id),
    FOREIGN KEY (mahasiswa_id) REFERENCES mahasiswa(id),
    FOREIGN KEY (mata_kuliah_id) REFERENCES mata_kuliah(id)
);

5. Foreign Key

Foreign Key adalah kolom yang digunakan untuk menghubungkan satu tabel dengan tabel lain. Foreign Key memastikan bahwa data yang dimasukkan sesuai dengan data yang ada di tabel referensi.

Fungsi Foreign Key:

  • Menjaga integritas data
  • Mencegah data tidak valid
  • Mengatur relasi antar tabel

Contoh Foreign Key:

FOREIGN KEY (jurusan_id) REFERENCES jurusan(id)

6. Contoh Query JOIN Berdasarkan Relasi

SELECT mahasiswa.nama, jurusan.nama_jurusan
FROM mahasiswa
JOIN jurusan ON mahasiswa.jurusan_id = jurusan.id;

Kesimpulan

Relasi antar tabel merupakan konsep penting dalam database relasional. Dengan memahami relasi One-to-One, One-to-Many, dan Many-to-Many serta penggunaan Foreign Key, database dapat dirancang lebih efisien, terstruktur, dan konsisten.

Konsep ini menjadi dasar sebelum mempelajari JOIN, normalisasi, dan desain database lanjutan.