O ile mogłem się dowiedzieć, wiele DBMS (np. Mysql, postgres, mssql) używa kombinacji fk i pk tylko w celu ograniczenia zmian danych, ale rzadko są one natywnie używane do automatycznego wybierania kolumn do połączenia (tak jak naturalne łączenie robi z nazwami). Dlaczego? Jeśli już zdefiniowałeś relację między 2 tabelami za pomocą pk / fk, dlaczego baza danych nie może zrozumieć, że jeśli dołączę do tych tabel, chcę dołączyć je do kolumn pk / fk?
EDYCJA: aby to trochę wyjaśnić:
Załóżmy, że mam table1 i table2. tabela 1 ma klucz obcy w kolumnie a, która odwołuje się do klucza podstawowego w tabeli 2, kolumnie b. Teraz, jeśli dołączę do tych tabel, będę musiał zrobić coś takiego:
SELECT * FROM table1
JOIN table2 ON table1.a = table2.b
Jednak już zdefiniowałem za pomocą moich kluczy, że tabela1.a odwołuje się do tabeli2.b, więc wydaje mi się, że nie powinno być trudno, aby system DBMS automatycznie używał tabeli1.a i tabeli2.b jako kolumn łączenia, tak, że można po prostu użyć:
SELECT * FROM table1
AUTO JOIN table2
Jednak wiele DBMS nie wydaje się implementować czegoś takiego.