Ich würde mir schon auch eine Schicht dazwischen gönnen. Das hat sich auf jeden Fall bewährt.
Das Umfeld Datawarehousing ist mehr ein Fan von pur, aber ich habe in der Regel nicht mal Foreigen Key Contraints. Die werden auch in einem Dictionary verwaltet. Im Datawarehousing werden auch NULLs im logischen Primärschlüssel erlaubt und später ergänzt. Wir sagen, vor der nächsten Übertragung müssen Schlüssel da sein.
Oder es werden die Datensätze geprüft und in 2 verschiedene Partitionen geschrieben usw..
Beziehungswissen auf einer Ebene oberhalb der Tabellen ist auch im Fall von OLTP kein Schaden. Dort stellt sich wieder eher die Frage, kann 'jede' zugelassene Technologie auf die Daten schreibend und ändernd hingreifen ohne dieses informelle Beziehungswissen auszuhebeln. Aber sonst ...
Ansonsten bin ich da voll bei Bernhard. Wenn Du eine gescheite Middleware reinziehst, dann bist Du von dem eigentlichen System unabhängig und kannst dann je nach Bedarf beim Kunden individuell entscheiden welche
DB passt.