2014年11月12日 星期三

[SAP][Information Design Tool] 建立關聯 join

在 Data Foundation 中建立關聯,只要將要關聯的欄位用滑鼠點選後,拖拉至另一張表要關聯的欄位即可。

在關聯的線上,點選滑鼠兩下,可以進入 Edit Join 的畫面。

點選 Data Foundation View 中的 Insert 下拉選單也可以叫出 Edit Join 的編輯視窗。



點選 Detect 可自動偵側資料表間的關聯,通常是要欄位名稱一致或有設定 Key 值,比較能正確判別。

也可以手動設定,點選設定 Table1 及 Table2 的關聯欄位後,由 Cardinality 的下拉選單中選取,是一對一 (1,1)、一對多 (1,n)、多對一 (n,1) 或多對多 (n,n)。


即完成資料表間的關聯。


若沒有直接欄位對欄位的關聯,可以使用 Theta Join ( 是一種  Between-Type 的 Join )。
在 Edit Join 中,先選好要 JOIN 的資料表,在 Table1 選取 Customer 資料表, Table2 選取 Age_group 資料表;在 Customer 資料表中選取 age 欄位,在 Age_group 資料表中選取 age_min 及 age_max 兩欄,再點選 Detect 按鈕。


系統會自動產生 JOIN 的語法,在 Expression 中可看到 Between ....And 的字。


Outer Join 的方式也很簡單設定,在 Edit Join 的視窗中,只要勾選那一個 Table 要 Outer join 即可。




在 IDT 的 Join 中有一個特別的 Join 稱為 Shortcut Join,它是提供資料表間的替代路徑,縮短 JOIN 的聯結路徑,但必須有相關 Key 值才能使用。



使用 Column Filter 來自我限制資料 ( Self-Restricting )。
點選要限制的欄位,按滑鼠右鍵,選取 Insert Filter...,也會顯示出 Edit Join 的視窗。

修改 Expression 中的值,如 Country.country_id = 3



按下 OK 按鈕後,在 Data Foundation View 中可以看到 Country 資料表中的 country_id 的前方有個漏斗的小圖示,表示是有經篩選的資料。

 查看資料,只會有 country_id = 3 的資料。

若要刪除 Filter 只要在有設定 Filter 條件的欄位上按右鍵,選取 Delete Filter 即可。


若要讓系統自動判別關聯的基數 ( Cardinality ) ,在拖拉完成各資料表中欄位間的關聯線後,點選 Detect 的下拉選單,選取 Detect Cardinalities...。


在 Cardinalities 的欄位會顯示 Unknown 。按下 Detect Cardinalities 按鈕,在 Cardinalities 的欄位會顯示偵測的結果。


按下 Finish 按鈕即完成。


沒有留言: