Sejauh yang saya bisa temukan banyak DBMS (misalnya mysql, postgres, mssql) menggunakan kombinasi fk dan pk hanya untuk membatasi perubahan pada data, tetapi jarang digunakan untuk secara otomatis memilih kolom untuk bergabung (seperti natural join dengan nama). Mengapa demikian? Jika Anda sudah mendefinisikan hubungan antara 2 tabel dengan pk / fk, mengapa database tidak dapat mengetahui bahwa jika saya bergabung dengan tabel tersebut, saya ingin bergabung dengan mereka di kolom pk / fk?
EDIT: untuk sedikit memperjelas ini:
misalkan saya punya table1 dan table2. table1 satu memiliki kunci asing pada kolom a, yang merujuk ke kunci utama pada table2, kolom b. Sekarang jika saya bergabung dengan tabel ini, saya harus melakukan sesuatu seperti ini:
SELECT * FROM table1
JOIN table2 ON table1.a = table2.b
Namun, saya sudah mendefinisikan menggunakan kunci saya bahwa table1.a merujuk ke table2.b, jadi bagi saya sepertinya tidak sulit untuk membuat sistem DBMS secara otomatis menggunakan table1.a dan table2.b sebagai kolom gabungan, sehingga orang hanya dapat menggunakan:
SELECT * FROM table1
AUTO JOIN table2
Namun, banyak DBMS tampaknya tidak mengimplementasikan sesuatu seperti ini.