Выбор ответа Junior Моделирование: Кимбалл, звезда, SCD спрашивают часто обновлено
Гранулярность факта
Вопрос
В таблице фактов лежат и строки позиций чека, и строка с итогом чека. Что произойдёт при SUM(amount) по таблице?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Выручка задвоится: суммы позиций и итоги чеков сложатся. Гранулярность одна. Одна таблица фактов должна иметь одну гранулярность: одна строка = одна позиция или одна строка = один чек.
Варианты ответа
- Выручка задвоится: суммы позиций и итоги чеков сложатся. Гранулярность однаправильный ответ
- Ничего: СУБД сама отличит итоговые строки по NULL в колонке товара чека
- Запрос упадёт с ошибкой нарушения уникальности ключа чека в агрегате
- Сумма будет верной, но запрос станет медленнее из-за лишних строк итогов
Разбор
Одна таблица фактов должна иметь одну гранулярность: одна строка = одна позиция или одна строка = один чек. Смешение даёт задвоение любых сумм. СУБД ничего не знает о смысле строк. Ошибки не будет, будет тихо неверный результат, что хуже.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Моделирование: Кимбалл, звезда, SCD»
- Аддитивность мер
- Типы таблиц фактов
- Типы SCD
- Data Vault: хабы, линки, сателлиты
- Point-in-time JOIN
- SCD 1 против SCD 2
- Лишние версии в SCD 2
- Полуаддитивные меры