Выбор ответа Junior Моделирование: Кимбалл, звезда, SCD спрашивают часто обновлено

Гранулярность факта

Вопрос

В таблице фактов лежат и строки позиций чека, и строка с итогом чека. Что произойдёт при SUM(amount) по таблице?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Выручка задвоится: суммы позиций и итоги чеков сложатся. Гранулярность одна. Одна таблица фактов должна иметь одну гранулярность: одна строка = одна позиция или одна строка = один чек.

Варианты ответа

  1. Выручка задвоится: суммы позиций и итоги чеков сложатся. Гранулярность однаправильный ответ
  2. Ничего: СУБД сама отличит итоговые строки по NULL в колонке товара чека
  3. Запрос упадёт с ошибкой нарушения уникальности ключа чека в агрегате
  4. Сумма будет верной, но запрос станет медленнее из-за лишних строк итогов

Разбор

Одна таблица фактов должна иметь одну гранулярность: одна строка = одна позиция или одна строка = один чек. Смешение даёт задвоение любых сумм. СУБД ничего не знает о смысле строк. Ошибки не будет, будет тихо неверный результат, что хуже.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.