2016-01-15 2 views
-1

Я иду через упражнение, размещенное ниже. Я не совсем понимаю, как представить 4-е измерение на бумаге. Если бы это был просто клиент, дата, продукт, который будет прост. Нужно ли мне сворачивать что-то, чтобы получить четвертое измерение?Как представить OLAP 4D Cuboid?

Я собирался перейти к косметике продукта, кости вовремя (чтобы получить все после января 2010 года) и нарезать косметику.

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

Начиная с основанием кубовидный [клиент, дата, продукт, магазин], какими конкретных операции OLAP (например, рулонная студент отдела (уровень)) должны быть выполнены для того, чтобы перечислить средние продажи каждого косметический продукт с января 2010 года? Поясните свой ответ.

+0

Это ужасно сформулированный вопрос об упражнении. Какую «среднюю» в «средних продажах» рассчитывают за месяц? магазин? Однако ваш собственный вопрос тоже меня смущает - что вы имеете в виду «представить четвертое измерение на бумаге»? Речь идет не о визуальном представлении описанного многомерного пространства, а о шагах, чтобы достичь правильного значения. Например, «клиент», вероятно, должен быть свернут до «Все клиенты», так как в вопросе не указывается какая-либо другая группировка. – Nathan

ответ

1

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

Звездная схема имеет, по-видимому, один факт (продажи), зерно которого не определено, но разумно предположить, что это день.

Вопрос неточный, поскольку он не определил период, в течение которого рассчитывается «среднее». Мы могли рассчитывать средний объем продаж в день, но поскольку упоминание о свертывании было упомянуто, и нам дана начальная точка месяца/года, предположим, что это средние месячные продажи.

Предположим также, что «косметика» представляет собой группу продуктов, и у нас это определено в измерении продукта.

Наше измерение даты может разумно нести атрибут года-месяца. Общепринято это видеть.

SQL-запрос может выглядеть следующим образом:

select product.name,calendar.year_month,avg(sales.amount) 
from  sales 
      left join product 
       on product.id = sales.product_id 
      left join calendar 
       on calendar.id = sales.calendar_id 
where  calendar.year_month > '2010-01' 
      and product.category = 'cosmetics' 
group by product.name,calendar.year_month 

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

Это имеет смысл?

+0

Привет Рон, спасибо. Я всегда видел 3D-Cuboid, представленный на картезианской оси, поэтому мне было интересно, как получить четвертое измерение. Я также отредактировал мой вопрос, я пропустил первый бит. Когда он говорит «самый низкий уровень», означает ли это самый низкий уровень кубоида? Даже в этом случае это не так понятно. –

+0

Да, Edoardo, «самый низкий уровень» в данном случае означает отдельные транзакции продаж.Когда вопрос задает вопрос о «других уровнях», это означает, что совокупная информация хранится в кубе, а показатель «средний объем продаж» также усредняется. На мой взгляд, есть некоторые академические достоинства в вопросе, но это ТЕРРИБАЛЬНЫЙ дизайн реального мира :) –

+0

Хорошо, спасибо. Это имеет смысл, поэтому я могу хранить больше, чем одну меру (например, продажи и подсчеты) в ячейке кубоида (в основном, моей таблицы фактов)? –