🎯 Relasi Database – Pengertian, Jenis, dan Contoh
🧩 Apa itu Relasi Database?
Relasi database adalah hubungan antara dua atau lebih tabel yang saling terhubung melalui primary key dan foreign key.
✨ Fungsi utamanya:
- 🔗 Menghubungkan data antar tabel
- 📉 Mengurangi duplikasi data
- 🛡️ Menjaga konsistensi data
- 🔍 Mempermudah query seperti
JOIN
🧭 Jenis–Jenis Relasi Database
1️⃣ One to One (1 : 1)
Satu record di tabel A berhubungan dengan satu record di tabel B.
📌 Contoh:
users ↔ user_profile
→ Satu user hanya punya satu profil.
2️⃣ One to Many (1 : n) — Paling umum
Satu record di tabel A bisa terhubung ke banyak record di tabel B.
📌 Contoh:
guru→ banyaksiswakategori→ banyakproduk
3️⃣ Many to Many (n : n)
Relasi dua arah: A punya banyak B, dan B punya banyak A.
Biasanya memakai tabel pivot.
📌 Contoh:
siswa ↔ mata_pelajaran
Melalui tabel siswa_mapel.
4️⃣ Self Join
Tabel berelasi dengan dirinya sendiri.
📌 Contoh:
Struktur organisasi:
tabel karyawan memiliki atasan_id → mengarah ke karyawan.id
🏗️ Diagram Relasi Sederhana
📘 Contoh Tabel SQL dengan Relasi
🟦 Tabel Guru
CREATE TABLE guru (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100)
);
🟩 Tabel Mata Pelajaran
CREATE TABLE mata_pelajaran (
id INT AUTO_INCREMENT PRIMARY KEY,
nama_mapel VARCHAR(100),
kode_mapel VARCHAR(100),
guru_id INT,
FOREIGN KEY (guru_id) REFERENCES guru(id)
);
🟧 Tabel Siswa
CREATE TABLE siswa (
id INT AUTO_INCREMENT PRIMARY KEY,
nama_siswa VARCHAR(100) NOT NULL,
nis VARCHAR(50) NOT NULL UNIQUE,
tanggal_lahir DATE NOT NULL,
alamat TEXT NOT NULL,
hobi VARCHAR(150),
no_telp VARCHAR(20)
);
🟪 Tabel Mata Pelajaran
CREATE TABLE mata_pelajaran (
id INT AUTO_INCREMENT PRIMARY KEY,
nama_mapel VARCHAR(100) NOT NULL,
kode_mapel VARCHAR(20) NOT NULL UNIQUE,
tingkat ENUM('SD','SMP','SMA','SMK') NOT NULL
);
🟫 Tabel Pivot Many-to-Many: siswa_mapel
CREATE TABLE siswa_mapel (
siswa_id INT,
mapel_id INT,
PRIMARY KEY (siswa_id, mapel_id),
FOREIGN KEY (siswa_id) REFERENCES siswa(id),
FOREIGN KEY (mapel_id) REFERENCES mata_pelajaran(id)
);
Hasilnya Dari Relasi Seperti gambar di bawah ini :
Tags
database