SCD 1 измерение без суррогатного ключа - PullRequest
0 голосов
/ 18 марта 2020

Эта ссылка на группу Кимбалла гласит, что все измерения должны иметь суррогатные ключи, за исключением некоторого очень предсказуемого, например, даты освобождения от даты.

У меня точно такой же случай, как описано в SCD Вики-страница типа 1 :

Технически суррогатный ключ не требуется, поскольку строка будет уникальной по естественному ключу (Код_поставщика).

Данные загружаются из операционной системы без суррогатного ключа, в то время как я вычисляю суррогатный ключ в ETL на основе единственного и уникального столбца xxx_code. Тип SCD 1, полная загрузка.

Есть ли причины использовать суррогатный ключ в моем случае вместо создания натурального ключа из столбца xxx_code?

1 Ответ

1 голос
/ 18 марта 2020

Суррогатные ключи имеют определенные преимущества:

  • Они защищают данные, поэтому встроенные ключи не нужно видеть везде.
  • Они позволяют заменять суррогатный ключ .
  • Суррогатными ключами обычно являются числа, которые более эффективны, чем составные ключи или строки.

При всем этом естественные ключи иногда могут быть весьма полезны. Например, я работаю с довольно сложными цепочками систем. Введение новых ключей в каждую систему только начинает сбивать с толку - например, это код продукта.

Несмотря на мой уклон к суррогатным ключам, в таких случаях могут пригодиться естественные ключи. Важно, чтобы такие ключи были первичными ключами, чтобы они действительно не могли изменять значения и чтобы они были - предпочтительно - числами (которые более эффективны для отношений с внешним ключом).

...