SCD - slowly changing dimension (медленно меняющиеся измерения)
Любимый вопрос на собеседования рядом с базами данных (от больших хранилищ до маленьких баз) - это вопрос про SCD. Если кратко, то это приёмы хранения различных справочников объектов, атрибуты которых меняются, но не так часто как таблицы фактов. В рускоязычной вики описаны три типа SCD, но на самом деле различают до семи типов.
0️⃣ вырожденный случай, в котором атрибуты не меняются никогда.
Пример: справочник химических элементов.
1️⃣ тип хранения, в котором не хранится историчность, а значения атрибута перезаписываются при его обновлении.
Пример: Состояние табло аэропорта, отображающего время и место вылета самолётов.
2️⃣ тип хранения, в котором уже сохраняются предыдущие значения справочника. Для того, чтобы выбрать актуальное состояние добавляется поле с версией объекта или флаг того, что строка актуальная и смотреть нужно именно на неё или же описываются даты начала и окончания действия строки.
Пример: справочник тарифов за коммуналку. Там важно знать именно периоды действия тарифа, чтобы иметь возможность делать перерасчеты.
3️⃣тип хранения, при котором добавляется новая колонка для нового состояния атрибута и, в некоторых случаях, дата смены атрибута.
Пример: справочник специалистов, которые ведут приём. Может статься так, что периодически специалист меняет кабент, но клиенту важно знать в каком кабинете он был в прошлый раз.
… продолжение следует
Post #213
340



