搜尋本站文章

2011-10-31

使用 Visio for Enterprise Architects 2005 進行正向工程(forward engineering),以 ORM 為例

示範環境:
Visio for Enterprise Architects 2005


實作練習:使用 Visio for Enterprise Architects 2005 進行「正向工程(forward Engineering)」,以 ORM 為例


工作1:繪製 ORM

步驟01. 執行 Visio,點選上方工作選單: 點選 [檔案]\[新增]\[資料庫]\[ORM 來源模型]。

步驟02. 在下方的 [商業規則] 視窗,點選 [事實類型],滑鼠雙擊 (按兩下此處來新增事實類型),或是按下 F2 功能鍵來啟動 [事實編輯器]。

-- 01_事實類型



步驟03. 在 [事實編輯器] 對話方塊,點選 [事實] 頁面,輸入以下的資料:

-- 02_事實編輯器_事實頁面



步驟04. 點選 [Object] 頁面,請參考下圖輸入資料:

-- 03_客戶物件



-- 04_訂單物件



步驟05. 點選 [限制式] 頁面,請參考下圖輸入資料:

-- 05_限制式



步驟06. 按下 [確定],在滑鼠雙擊 (按兩下此處來新增事實類型),或是按下 F2 功能鍵來啟動 [事實編輯器],在 [事實]頁面,請參考下圖輸入資料:

-- 06_事實頁面



步驟07. 點選 [Object] 頁面,請參考下圖輸入資料:

-- 07_Object_值



步驟08. 點選 [限制式] 頁面,請參考下圖輸入資料:

-- 08_限制式



步驟09. 再新增一份事實,請參考下圖輸入資料:

-- 09_事實頁面



步驟10. 點選 [Object] 頁面,請參考下圖輸入資料:

-- 10_Object_值



步驟11. 點選 [限制式] 頁面,請參考下圖輸入資料:

-- 11_限制式



步驟12. 按下 [確定],點選 [事實類型] 中的 [客戶 下 訂單],拖曳到繪圖頁面,在各物件類型上滑鼠右鍵\[顯示關聯],將可顯示其相關事實(Fact)。

步驟13. 點選上方工作選單 [檔案]\[儲存],存放到 C:\ORM01.vsd。點選 [檔案]\[關閉]。




工作2:產生 DDL 指令檔與建立成資料庫物件

步驟01. 點選上方工作選單 [檔案]\[新增]\[資料庫]\[資料庫模型圖]。

步驟02. 點選上方工作選單 [資料庫]\[選項]\[驅動程式],確認選取 [Microsoft SQL Server],點選 [確定]。

步驟03. 點選上方工作選單 [資料庫]\[專案]\[新增現有文件]\選擇先前建立的ORM 模型檔案 C:\ORM01.vsd 。

步驟04. 點選 [資料庫]\[專案]\[建立],將其存放於 C:\PRJ_ORM01.vsd 。

步驟05. 點選 [資料庫]\[產生],在 [產生精靈] 對話方塊,勾選[產生 DDL Script 的文字檔] 與 [產生新資料庫],點選 [下一步]。

-- 12_產生精靈



步驟06. 在 [安裝的 Visio 驅動程式],選擇 [Microsoft SQL Server],點選 [建立資料庫]。

-- 13_建立資料庫



步驟07. 點選 [新增]\[使用者資料來源],點選 [下一步],選擇 [SQL Native Client],點選 [下一步],點選 [完成]。

步驟08. 在 [建立新的資料來源至 SQL Server],點選 [下一步],請參考圖示來輸入:

-- 14_SQL資料來源



步驟09. 點選 [整合式 Windows 驗證],點選 [下一步],請參考圖示來輸入:

-- 15_整合式驗證



步驟10. 接受預設值,點選 [下一步],點選 [完成],點選 [完成],點選 [確定]。

-- 16_預設資料庫



-- 17_預設語系



-- 18_確定



步驟11. 輸入資料庫名稱: dbORM,點選 [下一步]。

-- 19_輸入DB名稱



步驟12. 在 [連接資料來源] 登入驗證對話方塊,點選 [確定]。

-- 20_連接資料來源之驗證



步驟13. 在 [檢視將建立的表格],點選 [下一步]。

-- 21_檢視將建立的表格



步驟14. 在 [實體驗證完成]頁面,點選 [完成],點選 [關閉]。

步驟15. 點選 [要檢視產生的 DDL Script],請檢視 [程式碼編輯器]所產生的內容,關閉 [程式碼編輯器]。

-- 22_由程式碼編輯器產生的DDL



步驟16. 執行 [SQL Server Management Studio],檢視資料庫與其物件。

-- 23_產生實體資料庫





Visio for Enterprise Architects 2005

Visio for Enterprise Architects 包含在 MSDN Premium Subscription 中,而且適用於 Visual Studio Professional 和 Visual Studio Team System 角色架構版本。

除了 Microsoft Office Visio Professional 2003 的所有功能以外,透過 Visio for Enterprise Architects,您還可以針對含有 UML Model 圖表 (Diagram) 的軟體以及含有 Database、ER 和 ORM Source Model 圖表的資料庫執行正反向工程。

Visio for Enterprise Architects 是獨立於 Visual Studio 的程式。

若要使用正反向工程,請先安裝 Visual Studio,然後再安裝 Visio for Enterprise Architects。這兩個程式必須安裝在相同的電腦上。


以下整理了支援資料庫「正向工程(forward engineering)」功能的 Visio 版本:

1. Visio 2000 Enterprise。

2. Visio for Enterprise Architects 2003 (VEA 2003) (based on Visio 2002 and included with Visual Studio .NET 2003 Enterprise Architect)。

3. Office Visio for Enterprise Architects 2005 (VEA 2005) (based on Visio 2003 and included with Visual Studio 2005 Team Suite and Team Architect editions)。



參考資料

使用 Visio for Enterprise Architects 2005 進行反向工程(reverse engineering),以 ORM 為例
http://sharedderrick.blogspot.com/2011/10/visio-for-enterprise-architects-2005.html

Visio for Enterprise Architects
http://msdn.microsoft.com/zh-tw/library/ms182014(v=vs.80).aspx

Visual Studio 2005 Team System 塑模策略及 FAQ
http://msdn.microsoft.com/zh-tw/library/ms379623(v=vs.80).aspx

使用 Visio for Enterprise Architects 2005 進行反向工程(reverse engineering),以 ORM 為例

示範環境:
Visio for Enterprise Architects 2005

實作練習:使用 Visio for Enterprise Architects 2005 進行「反向工程(reverse engineering)」,以 ORM 為例

步驟01. 執行 Visio,點選上方工作選單: [檔案]\[新增]\[資料庫]\[ORM 來源模型]。

步驟02. 點選上方工作選單 [資料庫]\[反向工程],在 [方向工程精靈]對話方塊,在 [安裝的 Visio 驅動程式],下拉選擇 [標準 OLE DB 提供者],點選[下一步]。

-- 01_反向工程精靈



步驟03. 在 [資料連結內容] 對話方塊的[提供者]頁面中,選擇 [SQL Native Client],點選 [下一步]。

-- 02_資料連結內容視窗



步驟04. 在[連線]頁面中,填入以下的資料,[資料來源]:localhost,[使用 Windows NT 整合安全],初始化目錄:Northwind 後,按下 [確定]。

-- 03_連線頁面



步驟05. 在 [選取要反向工程的物件類型]頁面中,取消勾選 [檢視] 與 [預存程序],點選 [下一步]。

-- 04_選擇「物件類型」



步驟06. 在 [選取要反向工程的表格或/檢視]頁面,點選[全選],選取全部的表格和檢視,點選 [下一步],點選 [完成]。

-- 05_選取要執行反向工程的物件



步驟07. 建立模型圖表,選擇下方 [商業規則] 視窗的 [物件類型] 中的 [Orders],拖曳到繪圖頁面上。

-- 06_商業規則_物件類型



步驟08. 當您將 [商業規則] 視窗中的物件類型拖曳到繪圖頁面上後,在 [Orders]物件類型上滑鼠右鍵\[顯示關聯],將可顯示其相關事實(Fact)。

-- 07_顯示相關連的事實



步驟09. 點選上方工作選單 [檔案]\[關閉]\[否],完成此練習。





Visio for Enterprise Architects 2005

Visio for Enterprise Architects 包含在 MSDN Premium Subscription 中,而且適用於 Visual Studio Professional 和 Visual Studio Team System 角色架構版本。

除了 Microsoft Office Visio Professional 2003 的所有功能以外,透過 Visio for Enterprise Architects,您還可以針對含有 UML Model 圖表 (Diagram) 的軟體以及含有 Database、ER 和 ORM Source Model 圖表的資料庫執行正反向工程。

Visio for Enterprise Architects 是獨立於 Visual Studio 的程式。

若要使用正反向工程,請先安裝 Visual Studio,然後再安裝 Visio for Enterprise Architects。這兩個程式必須安裝在相同的電腦上。


以下整理了支援資料庫「正向工程(forward engineering)」功能的 Visio 版本:

1. Visio 2000 Enterprise。

2. Visio for Enterprise Architects 2003 (VEA 2003) (based on Visio 2002 and included with Visual Studio .NET 2003 Enterprise Architect)。

3. Office Visio for Enterprise Architects 2005 (VEA 2005) (based on Visio 2003 and included with Visual Studio 2005 Team Suite and Team Architect editions)。





參考資料

Visio for Enterprise Architects
http://msdn.microsoft.com/zh-tw/library/ms182014(v=vs.80).aspx

Visual Studio 2005 Team System 塑模策略及 FAQ
http://msdn.microsoft.com/zh-tw/library/ms379623(v=vs.80).aspx

2011-10-29

下載與安裝被 Visio 2010 移除的圖形(shapes)與樣板(stencils)

目前可以分成兩種:

(1) Microsoft 提供的 Visio 圖形(shapes)與樣板(stencils)

(2) The ORM Foundation 網站提供的 Visio 樣板(stencils)




(1) Microsoft 提供的 Visio 圖形(shapes)與樣板(stencils)

在 Visio 2010 版本,因故移除了先前版本(Visio 2007、Visio 2003)所包含的圖形之樣板:

(1) ROOM:Real-Time Object-Oriented Modeling。


(2) Jackson:Jackson Structured Design。


(3) ORM: Object Role Modeling。


(4) Express-G:Express-G 是 ISO 標準 10303-11 中所述之 Express 正規資訊需求規格語言的圖形元件。
Express 和 Express-G 是 STEP (產品模型資料交換標準) 的元件,STEP 是電腦解譯表示和產品資料交換的國際標準。

若需要安裝前述的圖形之樣板,請先到此下載所需的樣板:

Software and Database Shapes for Microsoft Visio


-- 01_下載資料庫圖形之樣板



檔案說明:
SWDB_M.zip:使用 metric units。
SWDB_U.zip:使用 U.S. measurement units。


完成下載後,請解壓縮這 .zip 檔案,內含了數個 .vss 樣板檔案(stencil files)。

-- 02_壓縮檔案的內容檔案




接下來,請將這些. vss 樣板檔案(stencil files) 複製到「我的文件」的「我的圖形」資料夾內。
例如:

C:\Documents and Settings\yourname\My Documents\My Shapes

或是

C:\Users\yourname\Documents\My Shapes

在 Visio 2010 上,在左邊的「圖形」窗格,點選「其他圖形」\「我的圖形」,應該就可以看這些新增的樣板檔案。



(2) The ORM Foundation 網站提供的 Visio 樣板(stencils)

The ORM Foundation 網站也提供了 Visio Stencils。

註冊登入後,可以下載:

Visio Stencils_The ORM Foundation
http://www.ormfoundation.org/files/folders/visio_stencils/default.aspx?PageIndex=1





參考資料

Visio 2010 並沒有特定圖形與樣板隨附產品
http://support.microsoft.com/kb/980536

Software and Database Shapes for Microsoft Visio
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=25110

VisioCafe free visio stencils download site
http://www.visiocafe.com/microsoft.htm

Visio Stencils_The ORM Foundation
http://www.ormfoundation.org/files/folders/visio_stencils/default.aspx?PageIndex=1

2011-10-27

SSIS:使用 Excel 2010 (例如:附檔名為 xlsx)為來源或是目的地

示範環境:
SQL Server 2008 R2 x64 位元。

實作練習:
SSIS 使用 Excel 2010 (例如:附檔名為 xlsx)為來源或是目的地

準備工作:
請事先安裝好 Microsoft Office Access Database Engine OLE DB Provider 驅動程式

工作1:使用 Excel 2010 當做資料來源

步驟01. 在「資料流程」頁面,在左邊的工具箱,在「資料流程來源」區域,選擇「OLE DB 來源」,拖曳到封裝設計頁面。

步驟02. 選取此「OLE DB 來源」,滑鼠右鍵,選擇「編輯」。

步驟03. 在「OLE DB 來源編輯器」視窗,設定以下的參數:

在左邊窗格,點選「連接管理員」,在右邊窗格,在「OLE DB 連接管理員」區域,點選「新增」。

在「設定 OLE DB 連接管理員」視窗,點選「新增」。

在「連接管理員」視窗,在「提供者」區域,下拉選擇:「原生 OLE DB\Microsoft Office 12.0 Access Database Engine OLE DB Provider」。

-- 01_使用 ACE 12:Microsoft Office 12.0 Access Database Engine OLE DB Provider



-- 01_US_選擇ACE12



在「OLE DB 提供者」區域,點選「資料連結」。

在「資料連結內容」視窗,在「連線」頁面,在「資料來源」方塊,輸入 Excel 2010 來源檔案的路徑與檔案名,例如:C:\mySSIS\myTransactionHistory.xlsx。

-- 02_輸入資料來源



點選「全部」頁籤,在「名稱」區域,點選「Extended Properties」屬性,點選「編輯內容值」。

在「編輯內容值」視窗,在「內容值」方塊,輸入:Excel 12.0 Xml,點選「確定」。

-- 03_編輯內容值_填入Excel 12.0 Xml



-- 04_設定Extended Properties屬性值



在「資料連結內容」視窗,點選「確定」。

在「連接管理員」視窗,點選「測試連接」,在「連接管理員」視窗之連接測試成功訊息方塊,點選「確定」\「確定」。

-- 05_完成_驅動程式的相關屬性設定



-- 05_US_完成_驅動程式的設定




-- 05_CHT_1_檢視進階屬性



-- 05_US_1_檢視進階屬性




在「設定 OLE DB 連接管理員」視窗,點選「確定」。

-- 06_選擇已經設定好的資料連接



在「OLE DB 來源編輯器」視窗,在「資料表或檢視表的名稱」方塊,下拉選擇指定的 Excel 頁籤名稱,例如:TransactionHistory$。

附註:

1. 「工作表(worksheet )」,例如:Sheet1$,以附加到工作表名稱的 $ 符號識別。
2. 「具名範圍(named ranges)」,例如:MyRange,以沒有 $ 符號的方式識別


-- 07_選擇資料表或檢視表的名稱



點選「預覽」,在「預覽查詢結果」視窗,點選「關閉」。

在「OLE DB 來源編輯器」視窗,點選「確定」。



工作2:使用 Excel 2010 當做資料目的地

步驟01. 在「資料流程」頁面,在左邊的工具箱,在「資料流程目的地」區域,選擇「OLE DB 目的地」,拖曳到封裝設計頁面。

步驟02. 點選先前建立的「OLE DB 來源」,拖曳綠色線路的「資料流程」到「OLE DB 目的地」。

步驟03. 選取此「OLE DB 目的地」,滑鼠右鍵,選擇「編輯」。

步驟04. 在「OLE DB 目的地編輯器」視窗,設定以下的參數:

在左邊窗格,點選「連接管理員」,在右邊窗格,在「OLE DB 連接管理員」區域,點選「新增」。

在「設定 OLE DB 連接管理員」視窗,點選「新增」。

在「連接管理員」視窗,在「提供者」區域,下拉選擇:「原生 OLE DB\Microsoft Office 12.0 Access Database Engine OLE DB Provider」。

在「OLE DB 提供者」區域,點選「資料連結」。

在「資料連結內容」視窗,在「連線」頁面,在「資料來源」方塊,輸入 Excel 2010 來源檔案的路徑與檔案名,例如:C:\mySSIS\myTransactionHistory_Out.xlsx。

點選「全部」頁籤,在「名稱」區域,點選「Extended Properties」屬性,點選「編輯內容值」。

在「編輯內容值」視窗,在「內容值」方塊,輸入:Excel 12.0 Xml,點選「確定」。

在「資料連結內容」視窗,點選「確定」。

在「連接管理員」視窗,點選「測試連接」,在「連接管理員」視窗之連接測試成功訊息方塊,點選「確定」\「確定」。

在「設定 OLE DB 連接管理員」視窗,點選「確定」。

在「OLE DB 目的地編輯器」視窗,點選「新增」。

在訊息視窗:「將 SSIS 類型對應到所選 .NET 資料提供者的資料類型的相關資訊不足。因此,您可能需要在下一個畫面中修改 SQL 陳述式的預設資料行名稱」,點選「確定」。

-- 08_在訊息視窗



在「建立資料表」視窗,修改其所建立的 Excel 頁籤名稱,例如:TransactionHistory (原本是 OLE DB 目的地),點選「確定」。

-- 09_在「建立資料表」視窗



在「資料表或檢視表」方塊,下拉選取:TransactionHistory$。

-- 10_在「資料表或檢視表」方塊



在左邊窗格,點選「對應」,確認輸入與目的地之資料行,點選「對應」,點選「確定」。


工作3:檢視執行成果

步驟01. 執行此封裝。

-- 11_執行此封裝






若是沒有安裝 Microsoft Office Access Database Engine OLE DB Provider

將遭遇以下的錯誤訊息:

SQL Server Business Intelligence Development Studio 的執行記錄:

[連接管理員 "C:\mySSIS\myTransactionHistory.xlsx"] 錯誤: SSIS 錯誤碼 DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR。
要求的 OLE DB 提供者 Microsoft.ACE.OLEDB.12.0 並未註冊 -- 可能是沒有 64 位元提供者可用。錯誤碼: 0x00000000。
有 OLE DB 記錄可用。來源: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  描述: "類別未登錄"。

「作業」的紀錄:

訊息
以下列使用者的身分執行: xxx\Administrator。
Microsoft (R) SQL Server 執行封裝公用程式  Version 10.50.2500.0 for 64-bit  Copyright (C) Microsoft Corporation 2010. All rights reserved.    
已啟動:  18:08:30  錯誤: 2011-10-27 18:08:30.92     代碼: 0xC0209303     來源: Excel_2010_ACE12 連接管理員 "C:\mySSIS\myTransactionHistory.xlsx"     描述: SSIS 錯誤碼 DTS_E_OLEDB_NOPROVIDER_64BIT_ERROR。
要求的 OLE DB 提供者 Microsoft.ACE.OLEDB.12.0 並未註冊 -- 可能是沒有 64 位元提供者可用。
錯誤碼: 0x00000000。  有 OLE DB 記錄可用。來源: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  描述: "類別未登錄"。  
錯誤結束  錯誤: 2011-10-27 18:08:30.93     代碼: 0xC020801C     來源: 資料流程工作 OLE DB 來源 [1]     描述: SSIS 錯誤碼 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。對 "C:\mySSIS\myTransactionHistory.xlsx" 連接管理員呼叫 AcquireConnection 方法失敗,錯誤碼為 0xC0209303。
在此之前可能已公佈過錯誤訊息,說明 AcquireConnection 方法呼叫為何失敗的詳細資訊。  
錯誤結束  錯誤: 2011-10-27 18:08:30.93     代碼: 0xC0047017     來源: 資料流程工作 SSIS.Pipeline     描述: 元件 "OLE DB 來源" (1) 驗證失敗,傳回錯誤碼 0xC020801C。  錯誤結束  錯誤: 2011-10-27 18:08:30.93     代碼: 0xC004700C     來源: 資料流程工作 SSIS.Pipeline     描述: 一個或多個元件驗證失敗。 
 錯誤結束  錯誤: 2011-10-27 18:08:30.93     代碼: 0xC0024107     來源: 資料流程工作      描述: 工作驗證期間發生錯誤。  錯誤結束  DTExec: 封裝執行傳回 DTSER_FAILURE (1)。  
已啟動:  18:08:30  已完成: 18:08:30  經過時間:  0.125 秒.  封裝執行失敗。.  步驟失敗。


-- 12_錯誤訊息_作業_記錄



-- 13_錯誤訊息_手動執行封裝



-- 14_錯誤訊息_手動執行封裝





認識 Excel 的「工作表(worksheet )」與「具名範圍(named ranges)」

在 Excel 中,工作表或範圍相當於資料表或檢視。
「Excel 來源」及「Excel 目的地」編輯器中的可用資料表清單,僅會顯示現有工作表 (以附加到工作表名稱的 $ 符號識別,例如 Sheet1$) 及具名範圍 (以沒有 $ 符號的方式識別,例如 MyRange)。

整理如下:

1. 「工作表(worksheet )」,例如:Sheet1$,以附加到工作表名稱的 $ 符號識別。

2. 「具名範圍(named ranges)」,例如:MyRange,以沒有 $ 符號的方式識別



下載 Microsoft Office Access Database Engine OLE DB Provider

2007 Office system 驅動程式:資料連線元件
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891

Microsoft Access Database Engine 2010 可轉散發套件
http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=zh-tw



參考資料

Excel 目的地
http://msdn.microsoft.com/zh-tw/library/ms137643.aspx

無法匯入超過 65,536 列是文字檔到 Excel 97、 Excel 2000、 Excel 2002 和 Excel 2003
http://support.microsoft.com/kb/120596/zh-tw

SQL Server 2008:SSIS 2008 與 Excel 2007(*.xlsx、*.xlsb)
http://sharedderrick.blogspot.com/2009/11/sql-server-2008ssis-2008-excel.html

SSIS 2005 與 Excel 2007 (*.xlsx , *.xlsb)
http://sharedderrick.blogspot.com/2008/01/ssis-excel-2007-xlsx-xlsb.html

SSIS 2005 與 Access 2007 (*.accdb)
http://sharedderrick.blogspot.com/2008/05/ssis-access-2007.html