Является ли этот пример нарушением схемы звезды? - PullRequest
0 голосов
/ 29 апреля 2020

Я строю простую звездообразную схему в хранилище данных с двумя измерениями, основанными на бизнес-объектах: dim_loan и dim_borrower. Есть также несколько таблиц фактов, таких как fact_loan_status, в которых для каждой ссуды указывается одна строка в месяц, показывающая остаток на тот момент, и значение FK возвращается к dim_loan.

Так вот мой вопрос: если dim_loan имеет FK для borrower_id назад к dim_borrower, это нарушает схему звезды? Почти все обсуждения звездной схемы вращаются вокруг отдельных дим-таблиц, которые имеют только отношения FK с таблицами фактов, а не с другими. Делать fact_loan_borrower не имеет смысла для этого простого отношения один к одному.

Любой совет будет приветствоваться!

1 Ответ

0 голосов
/ 29 апреля 2020

если dim_borrower и dim_loan имеют одинаковую мощность, то сохранение обоих идентификаторов (loan_id, loaner_id) в fact_loan_borrower поможет вам повысить производительность. Вам нужно только одно объединение, чтобы получить информацию о заемщике или займе из соответствующих измерений. Если вы сохраняете loaner_id как FK в dim_loan, вам нужно использовать два объединения, если вам нужно предоставить информацию о заемщиках.

Если два измерения имеют различную кардинальность, то целесообразно присоединить измерение с низкой кардинальностью к таблице фактов - это поможет сохранить таблицу фактов небольшой.

Выбор схемы звезды и снежинки полностью зависит от вас.

...