Kolom dalam satu tabel yang mereferensikan Primary Key di tabel lain, membentuk hubungan antar tabel dan menjaga integritas referensial data.

Foreign Key (FK) adalah kolom dalam satu tabel yang nilainya harus ada di Primary Key tabel lain. FK mendefinisikan hubungan (relationship) antar tabel dan memastikan referential integrity - tidak ada "orphan records" yang mereferensikan data yang tidak ada.

Cara Kerja Foreign Key

Table: orders
  order_id | customer_id (FK) | amount
  1        | 101              | 50000
  2        | 101              | 30000
  3        | 999              | ← ERROR! customer_id 999 tidak ada di customers

Table: customers
  customer_id (PK) | name
  101              | Andi
  102              | Budi

Constraint Behavior (ON DELETE / ON UPDATE)

ActionBehavior
RESTRICT (default)Error - tidak bisa hapus parent yang masih direferensikan
CASCADEHapus/update child secara otomatis saat parent dihapus/diupdate
SET NULLSet FK = NULL saat parent dihapus
SET DEFAULTSet ke nilai default saat parent dihapus

FK di Konteks Data Warehouse

Di Data Warehouse, FK dari fact table ke dimension tables biasanya:

  • Tidak di-enforce di level DB (untuk performa bulk load)
  • Dijaga di level ETL/dbt sebagai data quality check
Lanjut Latihan

Udah paham Foreign Key? Lanjut latihan SQL dan Excel yuk!

Latihan interaktif, langsung di browser.

Mulai Latihan →