Разница между кортежем и множеством в MDX - PullRequest
11 голосов
/ 01 марта 2012

В чем разница между tuple и set в MDX.Как мы можем различать и то, и другое, когда мы их используем.

Ответы [ 4 ]

16 голосов
/ 13 сентября 2012

Придя в MDX с более математической точки зрения, я подхожу к вопросу:

Представьте, что у вас есть 3D-куб с размерами X, Y и Z. Количество ячеек вкуб - это число членов в X, умноженное на количество членов Y, умноженное на количество членов Z.

Каждая ячейка с координатой в кубе основана на значении из X,Y и Z. Эта координата является кортежем .

Итак, скажем:

  • X равно Меры ,
  • Y равно Годы ,
  • Z - Продукты ,

Тогда одна единица может быть продажей ноутбука в 1999 году. Координата ячейки будет: логически (X, Y, Z) и физически это кортеж, такой как

(Measures.Sales, Years.[1999], Products.[Laptop])  

Теперь предположим, что нам нужно несколько ячеек , тогда нам нужно несколько кортежей, верно?Да, Набор в основном состоит из нескольких кортежей .Фактически по кратным я включаю 0 и 1. Таким образом, расширяя наш пример, мы могли бы иметь ноутбуки с 1999 года и настольные компьютеры с 2001 года:

{ 
    (Measures.Sales, Years.[1999], Products.[Laptop]) ,
    (Measures.Sales, Years.[2001], Products.[Desktop]) 
}

Таким образом, вы можете видеть, что у вас есть несколько предметов с набором, иодин элемент с кортежем ......

13 голосов
/ 01 марта 2012

Кортеж - это отдельный элемент иерархии, взятый из всех измерений.Предположим, Time.[2nd half] - это кортеж измерения времени.В то же время мы можем иметь несколько кортежей и представлять их в скобках «(», «)».Например:

(Time.[2nd half], Color.Dark.Red).

Это не что иное, как математическое пересечение узлов.мы можем представить узлы в математике как (2,1) так же, как вышеприведенное выражение будет работать.

Теперь перейдем к множествам.Набор содержит один или несколько кортежей, которые могут также обнуляться.мы представляем их в {,} фигурных скобках.Например:

{ (Time.[1st half], Color.Dark.Red), (Time.[2nd half], Color.Dark.Blue) }
5 голосов
/ 01 марта 2012

В этой статье подробно описываются условия Член , Кортеж и Набор .

Я попробуючтобы объяснить это простым способом.

Проще говоря, кортеж - это атомарный фрагмент данных в измерении, а set - набор кортежей.Например, вы можете иметь размер Books с кортежами Sherlock Holmes, Tom Sawyer, CLR via C#, Code Complete и Quantum Physics for Dummies.
После этого вы можете организовать эти кортежи в именованные наборы, такие как Programming, Fiction и Natural Sciences.

[Books].&[Sherlock Holmes]                          -- Tuple
[Books].&[CLR via C#]                               -- Tuple
{ [Books].&[CLR via C#], [Books].&[Code Complete] } -- Set

В MDX существуют определенные функции , которыевозвращать наборы или кортежи, и часто полезно знать, как преобразовать кортеж в набор и наоборот.Например, функция Item(...) берет определенный набор из набора.Включение нескольких кортежей в { , , } создаст набор с этими кортежами.

Пример, который я описал, довольно частичен и не охватывает всю теорию, но может дать вам хорошее базовое понимание того, как эти понятияработа.

2 голосов
/ 11 января 2013

Вот еще одно хорошее объяснение от: http://www.onlineexpert.com/elearning/user/pdf/APPLICATIONDEVELOPMENT/SQL2KOLAP/Ch08.pdf.

Это похоже на ответ Прит Сангхи.

...