Loading AI tools
механизм отслеживания изменений данных об измерениях Из Википедии, свободной энциклопедии
Медленно меняющиеся измерения (от англ. Slowly Changing Dimensions, SCD) — механизм отслеживания изменений в данных измерения в терминах хранилища данных[1][2]. Применяется в случае, если данные меняются не очень часто и не по расписанию. Примером могут служить географические данные (местонахождение склада, юридический адрес организации), статус заказчика по программе лояльности или отдел компании, в котором работает её сотрудник[3].
Выделяют несколько типов SCD[4].
Нулевой тип (SCD0) является пассивным методом, так как предполагается, что значения атрибутов такого типа не будут меняться. Примерами могут служить дата создания записи, дата и место рождения, серийный номер устройства[5].
Пример:
Серия и номер паспорта | ФИО | Место рождения |
---|---|---|
1800 223111 | Иванов Сергей Петрович | г. Кызыл |
Первый тип (SCD1) использует простое затирание: данные в таблице полностью заменяются на новые (самые актуальные). Историчность при этом полностью теряется, то есть после обновления невозможно отследить цепочку изменений[6].
Пример:
Суррогатный ключ (ID записи) остаётся прежним. Значения полей «Должность» и «Отдел» заменяются на новые. Бизнес-ключ (Табельный номер) в данном примере не меняется, но может быть изменён при необходимости по аналогии с другими полями.
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок |
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж |
Второй тип (SCD2) использует добавление новой строки и дополнительных столбцов. Такой подход позволяет сохранить историчность.
Дополнительно можно добавить служебные столбцы, которые могут отвечать за версионирование, статус, временной интервал, в течение которого данные строки можно считать актуальными.
Пример: Суррогатный ключ (ID записи) создаётся новый. Бизнес-ключ (Табельный номер) не меняется, что позволяет связать добавленную строку с оригинальной[3].
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок |
Добавилась только строка
В добавленной строке содержатся новые значения полей «Должность» и «Отдел».
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж |
Добавилась строка и столбец с флагом
В добавленной строке содержатся новые значения полей «Должность» и «Отдел». В добавленном столбце содержится статус записи в таблице. Помимо такого статуса может использоваться любой другой флаг, например, этап согласования.
ID записи | Табельный номер | ФИО | Должность | Отдел | Статус |
---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок | FALSE |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж | TRUE |
Добавилась строка и столбец с версией
ID записи | Табельный номер | ФИО | Должность | Отдел | Версия |
---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок | 0 |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж | 1 |
С каждым новым изменением номер версии инкрементально растёт.
Добавилась строка и столбцы с диапазоном
ID записи | Табельный номер | ФИО | Должность | Отдел | Дата начала | Дата окончания |
---|---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок | 2000-01-01T00:00:00 | 2008-08-08T00:00:00 |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж | 2008-08-08T00:00:00 | NULL |
Вместо NULL в значении столбца «Дата окончания» для обозначения того, что строка наиболее актуальная, можно использовать значение «9999-12-31T00:00:00».
Значение даты окончания предыдущей строки совпадает со значением даты начала следующей строки.
Добавилась строка и столбцы с датой вступления изменения в силу
ID записи | Табельный номер | ФИО | Должность | Отдел | Дата вступления в силу | Статус |
---|---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок | 2000-01-01T00:00:00 | TRUE |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж | 2008-08-08T00:00:00 | FALSE |
Третий тип (SCD3) использует добавление новых столбцов-атрибутов, хранящих предыдущее значение для поддержания историчности. Такой тип в чистом виде возникает редко[7], и нужен бизнесу для ситуаций, когда необходимо отслеживать изменения только по конкретным параметрам.
Пример[8]:
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок |
ID записи | Табельный номер | ФИО | Прежняя должность | Текущая должность | Прежний отдел | Отдел | Дата вступления в силу |
---|---|---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Главный специалист | Отдел оптовых закупок | Отдел продаж | 2000-01-01T00:00:00 |
Третий тип сохраняет лишь ограниченную историчность (с точностью только до предыдущего значения), что делает его менее содержательным по сравнению с типом 2[9].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.