Я интерпретирую «программирование отношений» как значение для наложения ограничений внешнего ключа на таблицы.
Нет, в хранилище данных не следует накладывать ограничения на первичный ключ или внешний ключ для таблиц фактов.
Вы упомянули некоторые проблемы, а другая проблема заключается в том, что эти ограничения накладывают накладные расходы на производительность при вставке строк, что удорожает процесс ETL.
Для тех, кто имеет опыт работы только с проектированием транзакционных баз данных, это может пойти вразрез со всем, что они узнали и испытали. Ограничения внешнего ключа имеют жизненно важное значение для баз данных, где у вас есть несколько процессов, изменяющих данные одновременно. Существует определенный риск того, что два процесса каким-то образом испортят данные, несмотря на все усилия разработчиков. Ограничения являются принципиально важной сетью безопасности.
В многомерной модели база данных заполняется только одним процессом ETL и строго контролируется. Это значительно снижает риск повреждения данных до такой степени, что дополнительные затраты на ограничения просто не стоят этого.