Foreign Key
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)
| Action | Behavior |
|---|---|
| RESTRICT (default) | Error - tidak bisa hapus parent yang masih direferensikan |
| CASCADE | Hapus/update child secara otomatis saat parent dihapus/diupdate |
| SET NULL | Set FK = NULL saat parent dihapus |
| SET DEFAULT | Set 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
Istilah Terkait
Schema
Database & StorageBlueprint atau struktur yang mendefinisikan organisasi database - mencakup tabel, kolom, tipe data, relasi, dan constraints.
Normalization
Database & StorageProses mengorganisir tabel database untuk meminimalkan redundansi data dan mencegah anomali, menggunakan bentuk normal (1NF, 2NF, 3NF).
Primary Key
Database & StorageKolom (atau kombinasi kolom) dalam tabel database yang secara unik mengidentifikasi setiap baris, tidak boleh NULL dan tidak boleh duplikat.
Index
Database & StorageStruktur data yang mempercepat operasi pencarian pada tabel database dengan membuat lookup cepat, mirip seperti indeks di buku.
View
Database & StorageQuery SQL yang disimpan dengan nama tertentu di database, sehingga bisa diperlakukan seperti tabel - memudahkan akses data kompleks tanpa mengulang query panjang.
Join
Data ProcessingOperasi SQL yang menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang saling berhubungan, memungkinkan query lintas tabel.
Udah paham Foreign Key? Lanjut latihan SQL dan Excel yuk!
Latihan interaktif, langsung di browser.