資料倉儲中心管理手冊


結合來源直欄

如果您選取多個來源,您也需要指定這些直欄的列要如何連結到表格的結合中。您可以使用 SQL Assist 來定義結合。

您必須在定義結合之前,先將來源鏈結到步驟上。

若要結合來源表格:

  1. 定義 SQL 步驟。(請參閱選取及插入資料。)
  2. 開啟步驟。
  3. 按一下 SQL 陳述式標籤。
  4. 按一下建置 SQL ,以自動產生 SQL。(或者,您可以鍵入自己的 SQL。)

    如此會開啟 SQL Assist。

  5. 按一下表格標籤,並驗證來源已列示。
  6. 按一下直欄欄標。
    「SQL 陳述式」頁上的 GEOGRAPHIES SELECT 陳述式。
  7. 可用的直欄清單中,選取一個直欄,然後按一下 >

    該直欄即會從可用的直欄清單移到選取的直欄清單中。

    按一下 >>,將可用的直欄清單中的全部直欄新增到選取的直欄清單中。

  8. 按一下結合標籤。
  9. 在其中一個表格中選取直欄。這些表格以其在選取的表格清單中顯示的次序顯示在「表格」頁上。
  10. 在另一個表格中選取直欄。

    如果直欄中有相容的資料類型,則會顯示一條連接直欄的灰線,此時可以使用「結合」按鈕。

    如果直欄中沒有相容的資料類型,則在視窗底端的狀態區中會顯示錯誤訊息。

  11. 按一下結合類型按鈕,以建立結合。

    SQL Assist 會在所選取的直欄之間畫一條紅線,表示表格已結合到該直欄。


    「結合」頁上的圖形式結合

  12. 若需要其它結合,請重複前面的步驟。

    若要除去結合:

    1. 選取已結合的直欄,或者按一下 ><,以導覽到您要除去的結合。紅線會指出目前選取的結合。其它的結合則會以藍線指出。
    2. 按一下解除結合。即會除去結合線。
  13. 按一下複查標籤,以檢視您剛建立的 SQL 陳述式。
  14. 按一下確定

    如此即會關閉 SQL Assist。
    要訣:只有來源表格存在時,您才能使用「SQL 陳述式」頁的測試按鈕。如果您指定資料倉儲中心來建立表格,則必須將鏈結到那些作為目標表格之表格的步驟提昇為測試模式,才能建立表格。

  15. 按一下確定

    如此即會關閉「步驟內容」筆記本。

轉換字碼

在許多生產環境中,來源資料都含有編碼資訊。例如,您可能會在整個資料庫中,用某些字碼來參照一些組件號碼表。您也有一個負責將組件號碼關聯於各組件的序號與說明的表格。在這些狀況下,您要讓倉儲中的資訊能包含各組件的名稱和說明。為達到這個目的,您必須將含有編號組件號碼的來源資料和解碼表結合起來。

首先,您必須定義此解碼表和編碼產品編號表,使它們成為倉儲來源的一部份。之後,再將那些表格選取為步驟的來源表格。然後,您在 SQL Assist 的「結合」頁上按一下結合,以結合這些表格。

另一個方法是使用 CASE 陳述式來將資料解碼。

例如,某月份直欄內的資料是以數值編碼,而您想要將這個資料轉換成含有月份縮寫的字串。您可以發出下列陳述式:

CASE TBC.ORDER_HISTORY.ORDERMONTH WHEN 1 THEN 'Jan'
WHEN 2 THEN 'Feb' WHEN 3 THEN 'Mar' WHEN 4 THEN 'Apr'
WHEN 5 THEN 'May' WHEN 6 THEN 'Jun' WHEN 7 THEN 'Jul'
WHEN 8 THEN 'Aug' WHEN 9 THEN 'Sep' WHEN 10 THEN 'Oct'
WHEN 11 THEN 'Nov' WHEN 12 THEN 'Dec'
END
 

在結合中加入空值

結合是預設為內部結合。您也可以按一下 SQL Assist 之「結合」頁上的結合類型,來要求其它型類的結合。下列是可用的結合類型:

如果資料庫支援 OUTER JOIN 關鍵字,您可以擴充 Inner Join,來新增與其它表格沒有相符列的表格其中的列。

例如,您要結合兩個表格來取得每個部門經理的姓氏。第一個表格是「部門」表格,列出每個部門經理的員工編號。第二個表格是「員工」表格,列出員工編號和每一位員工的姓氏。

不過,有些部門沒有經理,這時,部門經理的員工編號是空值。如果要併入所有部門,而不論其是否有經理,或是有經理時,也不論其經理姓氏,這時,您會產生一個 Left Outer Join Left Outer Join 會併入第一個表格中符合第二個表格的列或是空值的列。它會產生如下的 SQL 陳述式:

SELECT DEPTNO, DEPTNAME, EMPNO, LASTNAME
   FROM DEPARTMENT LEFT OUTER JOIN EMPLOYEE
      ON MGRNO = EMPNO

Right Outer Join 與 Left Outer Join 一樣,不過,它是併入第二個表格中符合第一個表格的列或空值的列。 Full Outer Join 則會併入兩個表格的相符列和空值列。

例如,您有兩個表格,「表格 1」和「表格 2」,資料如下:
表格 1
直欄 A 直欄 B
1 A
2 B
3 C


表格 2
直欄 C 直欄 D
2 X
4 2

您指定結合條件為「直欄 A」=「直欄 C」。不同結合類型的結果表格如下所示:

Inner join

直欄 A 直欄 B 直欄 C 直欄 D
2 B 2 X

Left outer join

直欄 A 直欄 B 直欄 C 直欄 D
1 A NULL NULL
2 B 2 X
3 C NULL NULL

Right outer join

直欄 A 直欄 B 直欄 C 直欄 D
2 B 2 X
NULL NULL 4 2

Full outer join

直欄 A 直欄 B 直欄 C 直欄 D
1 A NULL NULL
2 B 2 X
3 C NULL NULL
NULL NULL 4 2

如果您指定值 (a,c),會得到下列結果:
1
2
3
4

產生星形結合

您可以產生一種星形結合 (Star Join),它是由星狀綱目來定義之來源表格的結合。 星狀綱目是一種由下列表格類型組成的特殊設計:

例如,如果您有一項銷售書籍的郵購業務,則您會有「客戶」、「書籍」、「型錄」和「會計年度」等維度表格。 事實表格則含有在該會計年度期間,每個客戶在各個型錄中所訂購之書籍的相關資訊。

每個維度表格都有一個主要鍵,它是您選取的一或多個直欄,用以識別表格中的某一列。 事實表格則含有外來鍵,對應於維度表格內的各個主要鍵。 外來鍵是表格中的一個直欄,它的容許值必須是另一個表格的主要鍵。

當您要求星形結合時,資料倉儲中心會將維度表格的主要鍵和事實表格的外來鍵結合起來。 在前面的範例中,「客戶」表格的主要鍵是「客戶編號」,每本書的主要鍵則是它的「書籍編號 (ISBN)」。每個表格中的每一項訂購中,都會有「客戶編號」和「書籍編號」這兩個外來鍵。星形結合會將客戶與書籍的相關資訊和各個訂購項目結合起來。

在資料倉儲中心中定義主要鍵及外來鍵的相關資訊,請參閱定義倉儲目標。定義星狀綱目並將其匯至 OLAP Integration Server 的相關資訊,請參閱從資料倉儲中心內建立星狀綱目


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]