ERWin經(jīng)驗小結(jié)課件_第1頁
ERWin經(jīng)驗小結(jié)課件_第2頁
ERWin經(jīng)驗小結(jié)課件_第3頁
ERWin經(jīng)驗小結(jié)課件_第4頁
ERWin經(jīng)驗小結(jié)課件_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、ERWin經(jīng)驗小結(jié)1 版本本文所述內(nèi)容均在ERWin Data Modeler 7.2.5中實驗通過。2 基本使用2.1 常用快捷鍵快捷鍵用途Ctrl + +放大視圖Ctrl + -縮小視圖Ctrl + 切換到邏輯模型視圖Ctrl + 切換到物理模型視圖2.2 顯示級別在ERWin中可以顯示實體(表)不同級別的視圖,邏輯模型相關(guān)選項:物理模型相關(guān)選項:實體(表)級顯示,邏輯模型相關(guān)選項:實體(表)級顯示,物理模型相關(guān)選項:2.3 重新排列對象3 使用Name mapping設(shè)計好邏輯模型后,利用Name mapping的設(shè)置,可以通過2個映射文件,在物理模型里自動命名表名和列名。一般情況下邏輯

2、模型中的實體(表)和屬性(列)名都使用中文,以便于理解,而在物理模型里一般使用英文,以實現(xiàn)比較優(yōu)化的設(shè)計。3.1 映射文件范例表名映射文件范例:納稅人信息,FACT_nsrxxb列名映射文件范例:納稅人電子檔案號,nnsrdzdah設(shè)立日期,dslrq行業(yè),_HY行業(yè)名稱,_CAPTION行業(yè)代碼,_HYDM3.2 Name mapping設(shè)置依次打開菜單項:Tools-Names-ModelNaming Options選擇Name Mapping選項卡設(shè)置以下項目:項目值Enity to Table%Lookup(B1_tableC2E.txt,%EntityName)Attribute t

3、o Column%Decl(test,_)%=(test,%Lookup(B1_C2E.txt,%AttName)%If(%=(%Substr(%:test,1,1),_)%Substr(%:test,2)%else%:test其中黑體字為映射文件名,這2個文件需要與erwin文件保存在同一目錄中。3.3 常見問題為什么在物理模型中不能通過映射文件自動修改表名?1. 可能映射文件修改后,并沒有被ERWin重新載入,把ERWin關(guān)閉后,重新打開再試2. 物理模型的表名已經(jīng)有值,所以沒有通過映射文件自動修改表名,把表名清空后再試3. 打開.erwin文件后,提示映射文件找不到這種情況可能發(fā)生在直接

4、雙擊.erwin文件時,在開始菜單中打開ERWin,然后通過菜單打開.erwin文件即可解決。4 外鍵的使用在設(shè)計多維模型時,為維表和事實表建立外鍵關(guān)系,可以直觀展示維表和事實表的關(guān)聯(lián)關(guān)系。觀察一個事實表和與它直接相關(guān)聯(lián)的維表,則可以看到一個清晰的星形模型。一般情況下維表與事實表的關(guān)系是:維表是主表,事實表是子表,維表中的一行數(shù)據(jù)對應(yīng)事實表中的多行數(shù)據(jù),維表與事實表使用維表的唯一關(guān)鍵字(即主鍵)關(guān)聯(lián)。在ERWin中建立外鍵關(guān)聯(lián)時,前提條件是在主表上創(chuàng)建了主鍵。以下例子中均以事實表作為子表,維表作為主表建立外鍵關(guān)系。4.1 相同列名建立外鍵關(guān)聯(lián)建立外鍵關(guān)聯(lián)最簡單的情況是維表的主鍵列與事實表的維度

5、列具有相同的名稱。具體操作如下:1. 點擊工具條中的,然后再點擊維表(主表),最后點擊事實表(子表)2. 此時將彈出如下提示框:直接點擊“OK”按鈕3. 這時外鍵關(guān)系已經(jīng)建好了,在事實表中與維表主鍵列同名的列上會加上“FK”外鍵標(biāo)識。4.2 不同列名建立外鍵關(guān)聯(lián)在很多情況下,事實表的維度列列名往往與維表主鍵列列名不一樣,這時的處理方法有所不同,在下例中,我們希望將事實表的“行業(yè)”列與維表相關(guān)聯(lián)。1. 點擊工具條中的,然后再點擊維表(主表),最后點擊事實表(子表)2. 此時外鍵關(guān)系已創(chuàng)建,但是事實表上新建了一個與維表主鍵列相同的列“行業(yè)代碼”作為外鍵,并沒有提示選擇事實表使用的關(guān)聯(lián)字段3. 雙擊

6、兩表之間的連接線,在“Relationships”提示框中,選擇“Rolename”選項卡,在Rolename輸入框中,輸入期望的關(guān)聯(lián)字段:行業(yè),點擊“OK”按鈕。4. 此時彈出提示框,直接點擊“OK”按鈕。5. 自動增加的“行業(yè)代碼”列刪除,外鍵移到“行業(yè)”列上。注意:要在邏輯模型視圖下做此操作,如果在物理模型做此操作,在邏輯模型中,事實表的維度列名將會被修改為維表的主鍵列名。4.3 同一維表關(guān)聯(lián)事實表的多個字段有時候,事實表的多個維度列都需要與同一個維表關(guān)聯(lián),在下例中,事實表已經(jīng)通過“行業(yè)代碼”列與維表關(guān)聯(lián),我們還希望再將事實表的“行業(yè)”列與維表相關(guān)聯(lián)。1. 點擊工具條中的,然后再點擊維表

7、(主表),最后點擊事實表(子表)2. 此時新增加了一個外鍵關(guān)系,但實際上關(guān)聯(lián)字段仍是“行業(yè)代碼” 3. 在新增加的外鍵關(guān)系上,把Rolename改為“行業(yè)”,即可讓新增的外鍵使用“行業(yè)”列關(guān)聯(lián)。在此步會有提示框,直接點擊“OK”即可。4.4 維表關(guān)聯(lián)到事實表上非默認列當(dāng)事實表中有與維表主鍵列名相同的列時,新建的外鍵關(guān)系默認會放在此列上。如果希望外鍵關(guān)系在其他列上,則在建立外鍵的對話框中,需要選擇另一個選項。如:希望事實表使用“行業(yè)”列與維表關(guān)聯(lián)。新建外鍵關(guān)系時,在彈出提示框中,選擇第3項“Rolename migrating attribute”,輸入“行業(yè)”,點擊“OK”按鈕在緊接著的提示框

8、中,直接點擊“OK”即可達到目標(biāo)4.5 刪除外鍵關(guān)系刪除外鍵關(guān)系時,會自動刪除事實表上的外鍵列,而往往此列并不希望被刪除掉??梢允褂靡韵罗k法解決:1. 復(fù)制實體(表)2. 刪除外鍵關(guān)聯(lián)3. 將復(fù)制表中的列拖到原表中4. 刪除復(fù)制表5 使用Subject Area當(dāng)模型里的表比較多,特別是事實表很多,又有很多維表,關(guān)聯(lián)有關(guān)系很多時,在ERWin(或其他建模工具)里顯示比較混亂,不容易清晰地看到各主題和維表之間的關(guān)系。下圖是農(nóng)發(fā)行賬戶模型中的E-R圖的局部:下圖是農(nóng)發(fā)行賬戶模型中的E-R圖的整體:在我們常用的星型模型結(jié)構(gòu)中,整個模型實際是由一個個相對獨立的星形模型組成的,只是各個星形模型之間會共用

9、許多維表,這樣就形成了上圖那樣的蜘蛛網(wǎng)結(jié)構(gòu)。實際上我們觀察模型時,希望得到的效果是:關(guān)注哪個星形模型時,只需要顯示出與此星形相關(guān)的事實表和維表,其他無關(guān)的表不希望看到。實際上這種功能,在ERWin中是可以提供的。ERWin提供了Subject Area(主題域)功能,主題域相當(dāng)于一個視圖區(qū)域,在此視圖區(qū)域里可以為各實體建立快捷方式,讓指定的實體在此視圖中顯示,而實體上原先定義的各種屬性在此視圖中可以正常顯示。所有的Subject Area單個Subject Area視圖:利用此功能,我們可以把一個星形模型中涉及的一個事實表和多個維表放到Subject Area中,此時即可以清晰地看到各表之間的

10、關(guān)系,又不至于太亂,同時在此Subject Area中對實體做的任何修改都會反映到實體本身。在ERWin里,所有對象會全部顯示在Main Subject Area中。在界面左側(cè)樹形菜單上,通過右鍵即可創(chuàng)建一個新的Subject Area,如“測試”修改此Subject Area的屬性: 在Members選項卡中,加入實體到Subject Area中,添加時只需要選擇事實表,再通過“級聯(lián)添加”的方式,即可把一個事實表和所有與其直接關(guān)聯(lián)的維表加入到Subject Area中。在級聯(lián)的選項中注意選擇:Ancestors:1,Descendants:0。注意:不要使用復(fù)制、粘貼的方式從Main Sub

11、ject Area中向新建的Subject Area中復(fù)制對象,這種方式會復(fù)制出重復(fù)的對象,而不是創(chuàng)建快捷方式,這種方式也得不到我們預(yù)期的原始對象與Subject Area中對象同步的效果。6 反向工程6.1 使用反向工程創(chuàng)建ERWin模型文件使用反向工程,可以從已有的數(shù)據(jù)庫生成ERWin模型文件。6.2 將邏輯模型的名稱顯示為物理模型的Comment如果在數(shù)據(jù)庫中,表和列上都已經(jīng)寫了COMMENT,使用反向工程生成ERWin文件后,查看模型的時候,無論是物理模型還是邏輯模型都顯示的是英文表名和列名,但實際上相應(yīng)的COMMENT信息實際已經(jīng)讀入并寫入到了模型中。在物理模型中,列的COMMENT

12、值保存在列的Comment屬性上。在邏輯模型中,列的COMMENT值保存在列的Definition屬性上。但是一般情況下為了便于理解,我們希望在邏輯模型中,表名和列名都能顯示為中文,即COMMENT?,F(xiàn)在知道了Comment在哪里,需要做的事,就是在邏輯模型里把Definition的值寫到Name上。為達到此目的,可以利用ERWin API編寫一段小程序來實現(xiàn)。以下是一段Python腳本(此腳本在python2.6, pywin32-214調(diào)試通過):#!/usr/bin/python# -*- coding: cp936 -*- import win32com.client #創(chuàng)建COM對象

13、 scapi = win32com.client.Dispatch('AllFusionERwin.SCAPI') # conn=win32com.client.Dispatch('ADODB.Connection')#建立與持久裝置中模型的連接 #源文件filename = "c:adbcdw-lx.erwin"#目標(biāo)文件newfilename = "c:adbcdw-lx2.erwin"scPUnit = scapi.PersistenceUnits.Add(filename,"RDO=yes")

14、#建立存取內(nèi)存中模型數(shù)據(jù)的連接 scSession = scapi.Sessions.Add() scSession.Open(scPUnit,0,0) #事務(wù)控制 scTranId = scSession.BeginTransaction() #獲取所有Entity模型對象 scMObjects = scSession.ModelObjects.Collect(scSession.ModelObjects.Root,'Entity',1) for scObj in scMObjects: #取Definition屬性的值 try: scDefineName = scObj.P

15、roperties('Definition').Value except Exception,ex: scDefineName = '' try: scName = scObj.Properties('Name').Value except Exception,ex: scName = '' #對象名賦值 scObj.Properties('Physical Name').Value = scName scObj.Properties('Name').Value = scDefineName #獲取

16、該Entity的所有Attribute對象 scAttrObjects = scSession.ModelObjects.Collect(scObj,'Attribute',1) for scAttrObj in scAttrObjects: #取Definition屬性的值 # scAttrDefineName = scAttrObj.Properties('Definition').Value # scAttrName = scAttrObj.Properties('Name').Value try: scAttrDefineName = s

17、cAttrObj.Properties('Definition').Value except Exception,ex: scAttrDefineName = '' try: scAttrName = scAttrObj.Properties('Name').Value except Exception,ex: scAttrName = '' #對象名賦值 scAttrObj.Properties('Physical Name').Value = scAttrName scAttrObj.Properties(&#

18、39;Name').Value = scAttrDefineName scSession.CommitTransaction(scTranId) #另存為一個新的文件 scPUnit.Save(newfilename,'OVF=yes') 7 在DW項目中的應(yīng)用方法7.1 使用ERWin來生成模型文檔在目前的項目實施過程中,建模工具還沒有廣泛使用,但作為項目文檔資料,E-R模型關(guān)系圖還是一個比較通用、易于理解和交流的方式,因此建議使用ERWin來生成模型的文檔。這種方式主要適用于未使用ERWin的項目,包括進行中的項目和已經(jīng)完成的項目。應(yīng)用方式:1. 使用反向工程生成ERWin模型文件2. 將邏輯模型中的表名、列名更新為中文3. 在邏輯模型中為各事實表和維表建立外鍵關(guān)系4. 以事實表為單位建立主題域(Subject Area),每個主題域中只包含一個星型模型通過以上方式,將數(shù)據(jù)庫中的表創(chuàng)建為模型文件中的星型模型。這種方式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論