Как обрабатывать один ко многим в звездной схеме?

Мне нужен способ связать одного или нескольких долевых владельцев с самолетом в следующей звездообразной схеме (см. диаграмму ниже). введите здесь описание изображения

Является ли следующая диаграмма и пример правильным способом моделирования этой связи в хранилище данных?

введите здесь описание изображения

Наиболее распространенная потребность, которая у меня, вероятно, возникнет, — это потребность в отчете о самолетах по общему количеству долевых владельцев. Есть ли более «правильный» способ моделирования этого?


person ra9r    schedule 23.10.2018    source источник


Ответы (1)


Объединение двух таблиц фактов — плохая идея. Многие инструменты BI даже не позволят вам это сделать (разрешены только отношения 1:M).

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

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

  1. Подсчитайте количество долевых владельцев на самолет в хранилище данных и добавьте его как факт в таблицу фактов. Преимущество такого подхода — это максимально простая и надежная конструкция. Недостаток — если вам нужно увидеть имена владельцев, вы не сможете это сделать (хотя вы можете частично решить эту проблему, объединив нескольких владельцев в строку и добавив ее в качестве атрибута).

  2. В качестве альтернативы, вы можете изменить свою таблицу фактов. В настоящее время зерном таблицы фактов является самолет. Вы можете изменить его на «собственность самолета» (т. е. самолет + владелец). Затем владельцев можно добавить в качестве измерения и подключить к таблице фактов. Преимущества: модель по-прежнему проста (без моста), а также надежна, но при этом у вас будет полная видимость владельцев и их атрибутов. Недостатки: новое зерно может быть менее интуитивно понятным для аналитиков; размер таблицы фактов увеличивается (т. е. если у вас в среднем 3 владельца на самолет, ваша таблица фактов увеличится втрое). Кроме того, если у вас есть какие-либо дополнительные факты, такие как затраты и т. д., их необходимо будет распределить по владельцам (т. е. разделить поровну или разделить по проценту владения, если у вас есть данные), чтобы избежать двойного учета.

person RADO    schedule 03.11.2018
comment
Спасибо @RADO, это было очень полезно. - person ra9r; 12.11.2018