Integritas referensial

Pengantar Basis Data Relasional dalam SQL

Timo Grossenbacher

Data Journalist

Integritas referensial

  • Rekaman yang mereferensikan tabel lain harus mengacu pada rekaman yang ada di tabel tersebut
  • Ditentukan antara dua tabel
  • Ditegakkan melalui foreign key
Pengantar Basis Data Relasional dalam SQL

Pelanggaran integritas referensial

Integritas referensial dari tabel A ke tabel B dilanggar...

  • ...jika rekaman di tabel B yang direferensikan dari tabel A dihapus.
  • ...jika rekaman di tabel A yang mereferensikan rekaman yang tidak ada di tabel B disisipkan.
  • Foreign key mencegah pelanggaran!
Pengantar Basis Data Relasional dalam SQL

Menangani pelanggaran

CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE NO ACTION
);
CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE CASCADE
);
Pengantar Basis Data Relasional dalam SQL

Menangani pelanggaran, lanjutan

ON DELETE...

  • ...NO ACTION: Gagal dengan galat
  • ...CASCADE: Hapus semua rekaman yang mereferensikan
  • ...RESTRICT: Gagal dengan galat
  • ...SET NULL: Atur kolom referensi menjadi NULL
  • ...SET DEFAULT: Atur kolom referensi ke nilai bakunya
Pengantar Basis Data Relasional dalam SQL

Mari lihat beberapa contoh!

Pengantar Basis Data Relasional dalam SQL

Preparing Video For Download...