資訊型錄管理程式管理手冊

從其它來源摘錄說明性資料

在您的資訊目錄中填寫說明性資料的最簡單方法是使用 貴公司資訊的現有說明。許多資料庫和桌面應用程式已經包含許多寶貴的說明性資料,可以讓您轉入您的資訊目錄。

使用資訊型錄管理程式標示語言,您可以:

摘錄說明性資料也可以使更新或重新整理資訊目錄的程序變得更容易。 您可以使用任何能匯入及匯出 ASCII 文字檔的文書處理程式,編輯標示語言檔案。

使用資訊型錄取出程式取出說明性資料

資訊型錄管理程式隨附有一組程式,可以從不同的來源取出說明性資料。您可以在安裝資訊型錄管理程式時或隨時安裝這些取出程式。Windows 資訊型錄管理程式 會將 它們放在 \SQLLIB\SAMPLES\DGEXTxxx 次目錄中。

使用摘錄程式時,您必須熟悉這些摘錄程式執行的特定作業環境。有關執行您需要的特定摘錄程式的資訊,請參閱附錄 A, 資訊型錄管理程式摘錄程式

撰寫自訂的說明性資料摘錄程式

如果您要從現存的型錄複製資料,而不是從資訊型錄管理程式提供取出程式的型錄複製, 則您可能需要撰寫一取出程式。您的摘錄程式必須要將此說明性資料轉換為資訊型錄管理程式標示語言。然後,您可以將您的說明性資料直接匯入資訊型錄管理程式作為物件類型及物件。

規劃您的摘錄程式之輸入和輸出

您的現有資料的格式即為預設的輸入格式。您的摘錄程式必須產生一個標示語言檔案作為輸出。不過,您的資訊來源包含的屬性會判斷您的摘錄程式應該產生的標示語言輸出。

此輸出標示語言檔可以包含下列的某些或所有的標籤:

:DISKCNTL.
識別目前的磁片序號,並指定是否還有其它磁片包含此檔案

:ACTION.
指定動作(新增、更新、刪除、附加或合併)發生時牽涉到物件類型、物件或關係

:OBJECT.
識別物件類型及其屬性

:PROPERTY.
識別您要定義的物件類型屬性

:INSTANCE.
識別物件或關係

:RELTYPE.
識別您要新增或刪除的關係類型

:COMMIT.
識別 資訊目錄 資料庫確定點

:COMMENT.
可讓您新增註解到標示語言檔

:NL.
可讓您併入多行屬性值(對於非 UUI 屬性)

:TAB.
可讓您插入欄標到非 UUI 屬性值中

有關資訊型錄管理程式標示語言的詳細資訊,請參閱附錄 D, 標示語言以及附錄 E, 標示語言檔的格式

格式化輸出標示語言檔

如果您把您的標示語言檔儲存在一片以上的磁片上時,您的摘錄程式必須放置一個 :DISKCNTL. 標籤在標示語言檔的開頭,讓資訊型錄管理程式知道有多少磁片含有您的檔案。

例如,在磁片上指定:

:DISKCNTL.SEQUENCE(1, +)

這個 :DISKCNTL. 標籤必須是每一片磁片上的檔案的第一個標籤。

使用摘錄程式建立物件類型和物件

在資訊型錄管理程式中,說明性資料會儲存為物件的屬性。物件類型是說明每一個物件具有的 一組屬性。如果您取出的說明性資料含有一組未定義的屬性,則您的取出程式 必須產生會建立物件類型的標示語言。

例如,您的資料庫之資料庫型錄可能說明數個在資料庫中的表格。 此目錄包含下列您要儲存在您的資訊目錄內的屬性:

欲產生含有這些屬性的物件類型,您的取出程式必須產生一標示語言檔案,而檔案中含有如圖 11 所示的標籤。

圖 11. 從一個摘錄程式的建立物件類型產生的標示語言輸出

:ACTION.OBJTYPE(ADD)
:OBJECT.TYPE(MYTABLE)
        CATEGORY(GROUPING)
        EXTNAME(在我的資料來源中的表格)
:PROPERTY.EXTNAME(資料來源名稱)
          DT(C) DL(8) SHRTNAME(DSNAME) UUISEQ(2) NULLS(N)
:PROPERTY.EXTNAME(表格名稱)
          DT(C) DL(10) SHRTNAME(TABNAME) UUISEQ(1) NULLS(N)
:PROPERTY.EXTNAME(表格說明)
          DT(V) DL(80) SHRTNAME(TABDESC) NULLS(Y)
:PROPERTY.EXTNAME(表格擁有者)
          DT(V) DL(8) SHRTNAME(TABOWNER) NULLS(Y)

當您產生新物件類型時,您必須至少指定一個屬性是有 UUISEQ 選項,並且其值為 1。 您最多可以指定 四個具有 UUISEQ 選項且其值是 2、3、4 或 5 的附加屬性。UUISEQ 會指定 UUI 中的屬性位置,作為對資訊目錄的物件的唯一識別。

資料庫目錄可能有您要儲存在資訊目錄中的三個表格的說明性資料。您的取出程式可以 從資料庫型錄中讀取這三個表格的說明性資料,並撰寫標示語言檔以產生 MYTABLE 物件類型的三個物件。

假設您的表格具有下列屬性:
來源名稱 表格名稱 表格說明 擁有者
MYDATA EMPLOYEE 公司員工的人事資訊 LONGO
MYDATA SALES 2000 年最新銷售資料 VALDEZ
MYDATA CUSTOMER 客戶的出貨資訊 MARSH

您的取出程式必須產生如圖 12 所示的標籤,且您必須將 那些標籤插入標示語言檔案中定義物件類型的標籤後面。

圖 12. 物件類型 MYTABLE 之標示語言輸出

:ACTION.OBJINST(ADD)
:OBJECT.TYPE(MYTABLE)
:INSTANCE.NAME(人事資訊)
          DSNAME(MYDATA)
          TABNAME(EMPLOYEE)
          TABDESC(公司員工的人事資訊)
          TABOWNER(LONGO)
:INSTANCE.NAME(年度銷售資訊)
          DSNAME(MYDATA)
          TABNAME(SALES)
          TABDESC(1997 年最新銷售資料)
          TABOWNER(VALDEZ)
:INSTANCE.NAME(客戶出貨資訊)
          DSNAME(MYDATA)
          TABNAME(CUSTOMER)
          TABDESC(客戶的出貨資訊)
          TABOWNER(MARSH)

重覆使用現存的物件類型定義: 用來產生物件類型定義的標示語言是與資訊型錄管理程式一起出貨,可供您用來複製或併入您自己的取出程式。標示語言位在您安裝 DB2 Universal Database 的磁碟機之 SQLLIB\DGWIN\TYPES 目錄中。若需資料倉儲中心隨附的其它描述資料模版的相關資訊,請參閱 Data Warehouse Center Application Integration Guide

合併物件類型與物件

您可能需要多次使用您的摘錄程式來摘錄說明性資料,以重新整理您的資訊目錄。在此情形下,您必須合併您的物件類型及物件, 如此就不會在每一次匯入標示語言檔案時都要新增新的物件。

如果有兩個資訊型錄含有相同的物件類型,您必須在合併任何物件之前, 先合併物件類型。如果您不確定資訊型錄是否含有相同的物件類型, 您也應合併物件類型。

例如,您要將包含「表格」物件類型的資訊目錄(來源) 內容,匯入其它也有包含「表格」物件類型的資訊目錄(目標)中。您不確定物件類型 是否有相同的屬性。物件類型定義必須相似,您才可以合併物件。如果物件類型有相同的屬性,您就可以合併它們,不會有問題。如果沒有相同的屬性, 則 UUI 屬性必須相同,且在來源資訊目錄中物件類型的所有屬性都必須 符合目標資訊目錄中物件類型的屬性。

如果來源資訊目錄內的物件類型之屬性比目標資訊目錄內的屬性多時, 您可以在合併這兩個物件類型之前,先更新目標資訊目錄內的物件類型。

您的摘錄程式必須建立如圖 13所示之合併物件類型與物件的標籤。資訊型錄管理程式在合併處理的過程中,不會更新物件類型的外部名稱或其圖示。

圖 13. 合併物件類型的標示語言輸出

:ACTION.OBJTYPE(MERGE)
:OBJECT.TYPE(short_name_of_object_type)
     CATEGORY(category_of_object type)
     EXTNAME(extended_name_of_object_type)
     ICOFILE(OS/2_icon_file_name)
     ICWFILE(Windows_icon_file_name)
:PROPERTY.SHRTNAME(short_name) DT(data_type) DL(size)
     UUISEQ(position_in_UUI) NULLS(y_or_n) EXTNAME(extended_name)

限制

您不能合併「程式」或「註解」物件類型。

欲合併物件,您的取出程式必須建立如圖 14所示的標籤。

圖 14. 合併物件的標示語言輸出

:ACTION.OBJINST(MERGE)
:OBJECT.TYPE(short_name_of_object_type)
:INSTANCE.NAME(extended_name_of_object)
     UUI_short_name(value_for_property)
     .
     .
     short_name(value_for_property)
     .
     .

確定 資訊目錄資料庫的變更

當資訊型錄管理程式匯入標示語言檔案時,它會將在標示語言檔中定義的說明性資料儲存在 資訊目錄資料庫。然而,資訊型錄管理程式要到抵達標示語言檔的尾端時,才會自動 對其資料庫確定這些新增的變動。資訊型錄管理程式會尋找檢查點 (:COMMIT.),它會告知要對資料庫發出確定呼叫。 如果標示語言檔很長,您的摘錄程式應該要放置 :COMMIT. 標籤於標示語言檔的固定間隔處。每一個查核點標籤都應該要有一個在您的標示語言檔中的唯一 ID。

例如,您可能希望您的摘錄程式包括一個 :COMMIT. 標籤於 :ACTION. 標籤的完整指定之後 (在指定動作之所有資訊後)。 您的程式可以放置一個 :COMMIT. 標籤於標示語言檔中,在其產生建立物件類型或物件 的所有標籤的後面。

如果資訊型錄管理程式無法匯入部份的標示語言檔,您必須回到上一個順利完成的檢查點上開始匯入檔案的其餘部份。 資訊型錄管理程式會對資料庫發出回捲指令,使其回到前一個檢查點。 當您試著重新匯入此檔案時,資訊型錄管理程式會從符合前次確定的檢查點的 ID 開始。 例如,您可能希望您的程式放置下列查核點於標示語言檔中,在建立物件類型的標籤後面:

:COMMIT.CHKPID(objtype1)

摘錄程式的限制

當您的取出程式產生屬性的值時,資訊型錄管理程式不會除去前導的空白。例如,如果您的程式為一個定義成只包含 8 個位元組的屬性產生了 TABNAME(EMPLOYEE) 而不是 TABNAME(EMPLOYEE) 時,資訊型錄管理程式會傳回一個錯誤訊息, 因為其值是 10 個位元組長,而不是在物件類型定義中 TABNAME 屬性定義的 8 個位元組。

如果您的取出程式對含有括弧的值產生標示語言,則必須以單引號括住括弧。否則,括弧會被視為分隔字元。例如,如果值是電話號碼 (800) 555-1234, 則您的取出程式必須以 PHONENUM('('800')' 555-1234) 表示此值。

當資訊型錄管理程式匯入標示語言檔時,它會忽略其十六進位值少於 X'20' 的任何字元。您的說明性資料只能包含文數字元或時間戳記。


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