Product ディメンションの変更
このトピックの実習では、名前付き計算を使用して製品ラインにわかりやすい名前を指定し、Product ディメンションに階層を定義して、その階層の (All) メンバー名を指定します。 また、属性をグループ化して別々の表示フォルダーに格納します。
名前付き計算の追加
データ ソース ビューで名前付き計算をテーブルに追加できます。 次の実習では、製品ラインの完全な名前を表示する名前付き計算を作成します。
名前付き計算を追加するには
Adventure Works DW 2012 データ ソース ビューを開くには、ソリューション エクスプローラーの [データ ソース ビュー] フォルダーで [Adventure Works DW 2012] をダブルクリックします。
ダイアグラム ペインの下部で [Product] テーブル ヘッダーを右クリックし、[新しい名前付き計算] をクリックします。
[名前付き計算の作成] ダイアログ ボックスで、[列名] ボックスに「ProductLineName」と入力します。
[式] ボックスに、次の CASE ステートメントを入力するか、またはコピーして貼り付けます。
CASE ProductLine WHEN 'M' THEN 'Mountain' WHEN 'R' THEN 'Road' WHEN 'S' THEN 'Accessory' WHEN 'T' THEN 'Touring' ELSE 'Components' END
この CASE ステートメントは、キューブ内の各製品ラインにわかりやすい名前を付けるためのものです。
[OK] をクリックすると、ProductLineName 名前付き計算が作成されます。 場合によっては、しばらく待つ必要があります。
[ファイル] メニューの [すべてを保存] をクリックします。
属性の NameColumn プロパティの変更
属性の NameColumn プロパティ値を変更するには
Product ディメンションのディメンション デザイナーに切り替えます。 これを行うには、ソリューション エクスプローラーの [ディメンション] ノードで [Product] ディメンションをダブルクリックします。
[ディメンション構造] タブの [属性] ペインで、[Product Line] をクリックします。
画面右側の [プロパティ] ウィンドウで、ウィンドウの下部にある [NameColumn] プロパティ フィールドをクリックし、参照ボタン ([...]) をクリックして、[名前列] ダイアログ ボックスを開きます (場合によっては、画面右側の [プロパティ] タブをクリックして、[プロパティ] ウィンドウを開く必要があります)。
[基になる列] ボックスの一覧の下部にある [ProductLineName] を選択し、[OK] をクリックします。
NameColumn フィールドに、テキスト "Product.ProductLineName (WChar)" が表示されるようになりました。 これで、Product Line 属性階層のメンバーが、簡略名ではなく製品ラインの完全な名前で表示されるようになりました。
[ディメンション構造] タブの [属性] ペインで、[Product Key] をクリックします。
[プロパティ] ウィンドウで、[NameColumn] プロパティ フィールドをクリックし、参照ボタン ([...]) をクリックして、[名前列] ダイアログ ボックスを開きます。
[基になる列] ボックスの一覧で [EnglishProductName] を選択し、[OK] をクリックします。
NameColumn フィールドに、テキスト "Product.EnglishProductName (WChar)" が表示されるようになりました。
[プロパティ] ウィンドウで、上にスクロールし、[Name] プロパティ フィールドをクリックして「Product Name」と入力します。
階層の作成
階層を作成するには
[属性] ペインの [Product Line] 属性を [階層] ペインにドラッグします。
[属性] ペインの [Model Name] 属性を、[階層] ペインの [<新しいレベル>] セル ([Product Line] レベルの下) にドラッグします。
[属性] ペインの [Product Name] 属性を、[階層] ペインの [<新しいレベル>] セル ([Model Name] レベルの下) にドラッグします (前のセクションで、Product Key を Product Name に名前変更しました)。
[ディメンション構造] タブの [階層] ペインで、[Hierarchy] 階層のタイトル バーを右クリックし、[名前の変更] をクリックして「Product Model Lines」と入力します。
この階層の名前が Product Model Lines になりました。
[ファイル] メニューの [すべてを保存] をクリックします。
フォルダー名およびすべてのメンバー名の指定
フォルダー名とメンバー名を指定するには
[属性] ペインで、Ctrl キーを押しながら次の各属性をクリックして選択します。
クラス
Color
Days To Manufacture
Reorder Point
Safety Stock Level
Size
Size Range
スタイル
Weight
[プロパティ] ウィンドウで、[AttributeHierarchyDisplayFolder] プロパティ フィールドに「Stocking」と入力します。
上記の属性をグループ化し、1 つの表示フォルダーに表示されるようにしました。
[属性] ペインで、次の属性を選択します。
Dealer Price
List Price
Standard Cost
[プロパティ] ウィンドウで、AttributeHierarchyDisplayFolder プロパティのセルに「Financial」と入力します。
上記の属性をグループ化し、別の表示フォルダーに表示されるようにしました。
[属性] ペインで、次の属性を選択します。
End Date
Start Date
Status
[プロパティ] ウィンドウで、AttributeHierarchyDisplayFolder プロパティのセルに「History」と入力します。
上記の属性をグループ化し、3 番目の表示フォルダーに表示されるようにしました。
[階層] ペインで [Product Model Lines] 階層をクリックします。次に、[プロパティ] ウィンドウで、AllMemberName プロパティを All Products に変更します。
[階層] ペインの空いている領域をクリックし、[プロパティ] ウィンドウの上部にある AttributeAllMemberName プロパティを、All Products に変更します。
空いている領域をクリックすると、Product ディメンション自体のプロパティを変更できます。 [属性] ペインの属性リストの上部にある Product をクリックすることもできます。
[ファイル] メニューの [すべてを保存] をクリックします。
属性リレーションシップの定義
基になるデータで属性リレーションシップがサポートされる場合、属性間の属性リレーションシップを定義する必要があります。 属性リレーションシップを定義すると、ディメンション、パーティション、およびクエリの処理速度が上がります。 詳細については、「属性リレーションシップの定義」および「属性リレーションシップ」を参照してください。
属性リレーションシップを定義するには
Product ディメンションのディメンション デザイナーで、[属性リレーションシップ] タブをクリックします。
ダイアグラムで、[Model Name] 属性を右クリックし、[新しい属性リレーションシップ] をクリックします。
[属性リレーションシップの作成] ダイアログ ボックスで、[基になる属性] に [Model Name] を指定します。 [関連属性] を [Product Line] に設定します。
時間が経過するとメンバー間のリレーションシップが変化する可能性があるため、[リレーションシップの種類] ボックスの一覧で、リレーションシップの種類の設定は [可変] のままにします。 たとえば、製品モデルが最終的に別の製品ラインに移動される場合があります。
[OK] をクリックします。
[ファイル] メニューの [すべてを保存] をクリックします。
Product ディメンションの変更の確認
Product ディメンションの変更を確認するには
SQL Server データ ツール (SSDT) で、[ビルド] メニューの [Analysis Services Tutorial の配置] をクリックします。
"配置が正常に完了しました" というメッセージが表示されたら、Product ディメンションのディメンション デザイナーの [ブラウザー] タブをクリックし、ディメンション デザイナーのツール バーにある再接続ボタンをクリックします。
[階層] ボックスで [Product Model Lines] が選択されていることを確認し、[All Products] を展開します。
All メンバーの名前が "All Products" と表示されています。 これは、このレッスンの前の手順で、この階層の AllMemberName プロパティを All Products に変更したためです。 また、Product Line レベルのメンバー名が、1 文字の簡略名から、わかりやすい名前に変わりました。