Говоря неточно, внешние ключи связывают вас с таблицами, которые разбивают вашу таблицу фактов на категории и подкатегории.
Итак, если таблица фактов была
create table stores (id, kindOfStore, sales)
Тогда kindOfStore будет вашим измерением - если это так, то вы можете утверждать, что отдельная таблица для kindOfStore является излишней (за исключением потерянного пространства, говорящего kind store = "Food" вместо "Kind_id = 8". Если у вас есть подкатегории, имеет смысл сделать ссылку на таблицу уменьшения типа
create table kindOfStore (id, Variety, Specialization, Subspecialization)
Было бы недостаточно места для хранения в таблице фактов разнообразия, специализации и подспециализации.
В результате получается схема типа «звезда», и хранилища данных оптимизированы для работы с этими схемами, хотя новые и более быстрые механизмы хранилища данных кажутся настолько быстрыми, что даже схема, не относящаяся к звездам, довольно быстрая.
Хранилища данных денормализуют (используют меньше таблиц) таблицы фактов по сравнению с базой данных OLTP, но это ни в коем случае не означает, что вам следует стремиться к решению с одной таблицей.