Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Desain Basis Data

Pelajaran 6 dari 20

Kunci dan relasi

Kunci asing dan integritas referensial

Setelah pelajaran ini kamu bisa menemukan baris yatim dengan LEFT JOIN ... IS NULL dan memilih aksi ON DELETE yang sesuai.

±13 menitDiperiksa 28 Sep 2026

Materi

Kunci asing adalah kolom di satu tabel yang merujuk kunci primer tabel lain. Tabel yang dirujuk disebut induk, tabel yang merujuk disebut anak. Integritas referensial berarti setiap nilai kunci asing punya pasangan di induk. Baris anak yang merujuk induk yang tidak ada disebut rekaman yatim; Microsoft mencontohkan pesanan yang merujuk pelanggan yang tidak ada. Dokumentasi SQLite menjelaskan asalnya: baris dimasukkan tanpa pasangan, atau baris induk dihapus sehingga anaknya tertinggal.

CREATE TABLE peminjaman (
  id       INTEGER PRIMARY KEY,
  buku_id  INTEGER NOT NULL REFERENCES buku(id) ON DELETE RESTRICT,
  anggota_id INTEGER NOT NULL REFERENCES anggota(id)
);
-- Mencari baris yatim di data yang sudah ada:
SELECT pj.id FROM peminjaman pj
LEFT JOIN anggota a ON a.id = pj.anggota_id
WHERE a.id IS NULL;

Kunci asing yang ditegakkan menolak baris yatim saat INSERT. Aksi ON DELETE menentukan apa yang terjadi pada anak ketika induknya dihapus: NO ACTION (bawaan) dan RESTRICT menolak penghapusan selama masih ada anak, CASCADE ikut menghapus anaknya, dan SET NULL mengosongkan kunci asing anaknya. PostgreSQL memberi pedoman: CASCADE cocok bila anak adalah bagian dari induk dan tidak bisa berdiri sendiri, misalnya baris item pesanan; RESTRICT atau NO ACTION cocok bila keduanya objek yang berdiri sendiri; SET NULL cocok bila rujukannya informasi opsional.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Tabel jadwal_sesi menyimpan tanggal pertemuan yang hanya bermakna sebagai bagian dari satu kelas. Aksi apa yang sesuai untuk kunci asingnya ke tabel kelas ketika sebuah kelas dihapus?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke