Belajar Relasi Database Mysql

🎯 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:
usersuser_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 → banyak siswa
  • kategori → banyak produk


3️⃣ Many to Many (n : n)

Relasi dua arah: A punya banyak B, dan B punya banyak A.
Biasanya memakai tabel pivot.

📌 Contoh:
siswamata_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 :



Posting Komentar

Lebih baru Lebih lama