Ich glaube, dass die Mehrheit der Leute, die Datenbankanwendungen von beträchtlicher Größe entwickelt haben, Ihnen sagen werden, dass Ersatzschlüssel die einzig realistische Lösung sind.
Ich weiß, dass die akademische Gemeinschaft anderer Meinung sein wird, aber das ist der Unterschied zwischen theoretischer Reinheit und Praktikabilität .
Jede vernünftig große Abfrage, die Joins zwischen Tabellen durchführen muss, die Nicht-Ersatzschlüssel verwenden, wobei einige Tabellen zusammengesetzte Primärschlüssel haben, wird schnell nicht mehr wartbar.