




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ERWin經驗小結1 版本本文所述內容均在ERWin Data Modeler 7.2.5中實驗通過。2 基本使用2.1 常用快捷鍵快捷鍵用途Ctrl + +放大視圖Ctrl + -縮小視圖Ctrl + 切換到邏輯模型視圖Ctrl + 切換到物理模型視圖2.2 顯示級別在ERWin中可以顯示實體(表)不同級別的視圖,邏輯模型相關選項:物理模型相關選項:實體(表)級顯示,邏輯模型相關選項:實體(表)級顯示,物理模型相關選項:2.3 重新排列對象3 使用Name mapping設計好邏輯模型后,利用Name mapping的設置,可以通過2個映射文件,在物理模型里自動命名表名和列名。一般情況下邏輯
2、模型中的實體(表)和屬性(列)名都使用中文,以便于理解,而在物理模型里一般使用英文,以實現比較優化的設計。3.1 映射文件范例表名映射文件范例:納稅人信息,FACT_nsrxxb列名映射文件范例:納稅人電子檔案號,nnsrdzdah設立日期,dslrq行業,_HY行業名稱,_CAPTION行業代碼,_HYDM3.2 Name mapping設置依次打開菜單項:Tools-Names-ModelNaming Options選擇Name Mapping選項卡設置以下項目:項目值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關閉后,重新打開再試2. 物理模型的表名已經有值,所以沒有通過映射文件自動修改表名,把表名清空后再試3. 打開.erwin文件后,提示映射文件找不到這種情況可能發生在直接
4、雙擊.erwin文件時,在開始菜單中打開ERWin,然后通過菜單打開.erwin文件即可解決。4 外鍵的使用在設計多維模型時,為維表和事實表建立外鍵關系,可以直觀展示維表和事實表的關聯關系。觀察一個事實表和與它直接相關聯的維表,則可以看到一個清晰的星形模型。一般情況下維表與事實表的關系是:維表是主表,事實表是子表,維表中的一行數據對應事實表中的多行數據,維表與事實表使用維表的唯一關鍵字(即主鍵)關聯。在ERWin中建立外鍵關聯時,前提條件是在主表上創建了主鍵。以下例子中均以事實表作為子表,維表作為主表建立外鍵關系。4.1 相同列名建立外鍵關聯建立外鍵關聯最簡單的情況是維表的主鍵列與事實表的維度
5、列具有相同的名稱。具體操作如下:1. 點擊工具條中的,然后再點擊維表(主表),最后點擊事實表(子表)2. 此時將彈出如下提示框:直接點擊“OK”按鈕3. 這時外鍵關系已經建好了,在事實表中與維表主鍵列同名的列上會加上“FK”外鍵標識。4.2 不同列名建立外鍵關聯在很多情況下,事實表的維度列列名往往與維表主鍵列列名不一樣,這時的處理方法有所不同,在下例中,我們希望將事實表的“行業”列與維表相關聯。1. 點擊工具條中的,然后再點擊維表(主表),最后點擊事實表(子表)2. 此時外鍵關系已創建,但是事實表上新建了一個與維表主鍵列相同的列“行業代碼”作為外鍵,并沒有提示選擇事實表使用的關聯字段3. 雙擊
6、兩表之間的連接線,在“Relationships”提示框中,選擇“Rolename”選項卡,在Rolename輸入框中,輸入期望的關聯字段:行業,點擊“OK”按鈕。4. 此時彈出提示框,直接點擊“OK”按鈕。5. 自動增加的“行業代碼”列刪除,外鍵移到“行業”列上。注意:要在邏輯模型視圖下做此操作,如果在物理模型做此操作,在邏輯模型中,事實表的維度列名將會被修改為維表的主鍵列名。4.3 同一維表關聯事實表的多個字段有時候,事實表的多個維度列都需要與同一個維表關聯,在下例中,事實表已經通過“行業代碼”列與維表關聯,我們還希望再將事實表的“行業”列與維表相關聯。1. 點擊工具條中的,然后再點擊維表
7、(主表),最后點擊事實表(子表)2. 此時新增加了一個外鍵關系,但實際上關聯字段仍是“行業代碼” 3. 在新增加的外鍵關系上,把Rolename改為“行業”,即可讓新增的外鍵使用“行業”列關聯。在此步會有提示框,直接點擊“OK”即可。4.4 維表關聯到事實表上非默認列當事實表中有與維表主鍵列名相同的列時,新建的外鍵關系默認會放在此列上。如果希望外鍵關系在其他列上,則在建立外鍵的對話框中,需要選擇另一個選項。如:希望事實表使用“行業”列與維表關聯。新建外鍵關系時,在彈出提示框中,選擇第3項“Rolename migrating attribute”,輸入“行業”,點擊“OK”按鈕在緊接著的提示框
8、中,直接點擊“OK”即可達到目標4.5 刪除外鍵關系刪除外鍵關系時,會自動刪除事實表上的外鍵列,而往往此列并不希望被刪除掉。可以使用以下辦法解決:1. 復制實體(表)2. 刪除外鍵關聯3. 將復制表中的列拖到原表中4. 刪除復制表5 使用Subject Area當模型里的表比較多,特別是事實表很多,又有很多維表,關聯有關系很多時,在ERWin(或其他建模工具)里顯示比較混亂,不容易清晰地看到各主題和維表之間的關系。下圖是農發行賬戶模型中的E-R圖的局部:下圖是農發行賬戶模型中的E-R圖的整體:在我們常用的星型模型結構中,整個模型實際是由一個個相對獨立的星形模型組成的,只是各個星形模型之間會共用
9、許多維表,這樣就形成了上圖那樣的蜘蛛網結構。實際上我們觀察模型時,希望得到的效果是:關注哪個星形模型時,只需要顯示出與此星形相關的事實表和維表,其他無關的表不希望看到。實際上這種功能,在ERWin中是可以提供的。ERWin提供了Subject Area(主題域)功能,主題域相當于一個視圖區域,在此視圖區域里可以為各實體建立快捷方式,讓指定的實體在此視圖中顯示,而實體上原先定義的各種屬性在此視圖中可以正常顯示。所有的Subject Area單個Subject Area視圖:利用此功能,我們可以把一個星形模型中涉及的一個事實表和多個維表放到Subject Area中,此時即可以清晰地看到各表之間的
10、關系,又不至于太亂,同時在此Subject Area中對實體做的任何修改都會反映到實體本身。在ERWin里,所有對象會全部顯示在Main Subject Area中。在界面左側樹形菜單上,通過右鍵即可創建一個新的Subject Area,如“測試”修改此Subject Area的屬性: 在Members選項卡中,加入實體到Subject Area中,添加時只需要選擇事實表,再通過“級聯添加”的方式,即可把一個事實表和所有與其直接關聯的維表加入到Subject Area中。在級聯的選項中注意選擇:Ancestors:1,Descendants:0。注意:不要使用復制、粘貼的方式從Main Sub
11、ject Area中向新建的Subject Area中復制對象,這種方式會復制出重復的對象,而不是創建快捷方式,這種方式也得不到我們預期的原始對象與Subject Area中對象同步的效果。6 反向工程6.1 使用反向工程創建ERWin模型文件使用反向工程,可以從已有的數據庫生成ERWin模型文件。6.2 將邏輯模型的名稱顯示為物理模型的Comment如果在數據庫中,表和列上都已經寫了COMMENT,使用反向工程生成ERWin文件后,查看模型的時候,無論是物理模型還是邏輯模型都顯示的是英文表名和列名,但實際上相應的COMMENT信息實際已經讀入并寫入到了模型中。在物理模型中,列的COMMENT
12、值保存在列的Comment屬性上。在邏輯模型中,列的COMMENT值保存在列的Definition屬性上。但是一般情況下為了便于理解,我們希望在邏輯模型中,表名和列名都能顯示為中文,即COMMENT。現在知道了Comment在哪里,需要做的事,就是在邏輯模型里把Definition的值寫到Name上。為達到此目的,可以利用ERWin API編寫一段小程序來實現。以下是一段Python腳本(此腳本在python2.6, pywin32-214調試通過):#!/usr/bin/python# -*- coding: cp936 -*- import win32com.client #創建COM對象
13、 scapi = win32com.client.Dispatch('AllFusionERwin.SCAPI') # conn=win32com.client.Dispatch('ADODB.Connection')#建立與持久裝置中模型的連接 #源文件filename = "c:adbcdw-lx.erwin"#目標文件newfilename = "c:adbcdw-lx2.erwin"scPUnit = scapi.PersistenceUnits.Add(filename,"RDO=yes")
14、#建立存取內存中模型數據的連接 scSession = scapi.Sessions.Add() scSession.Open(scPUnit,0,0) #事務控制 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項目中的應用方法7.1 使用ERWin來生成模型文檔在目前的項目實施過程中,建模工具還沒有廣泛使用,但作為項目文檔資料,E-R模型關系圖還是一個比較通用、易于理解和交流的方式,因此建議使用ERWin來生成模型的文檔。這種方式主要適用于未使用ERWin的項目,包括進行中的項目和已經完成的項目。應用方式:1. 使用反向工程生成ERWin模型文件2. 將邏輯模型中的表名、列名更新為中文3. 在邏輯模型中為各事實表和維表建立外鍵關系4. 以事實表為單位建立主題域(Subject Area),每個主題域中只包含一個星型模型通過以上方式,將數據庫中的表創建為模型文件中的星型模型。這種方式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 門急診護理質量持續改進案例
- 昆明學院《歐美設計規范釋義》2023-2024學年第二學期期末試卷
- 咸寧市重點中學2024-2025學年高三第二學期4月模擬考試歷史試題含解析
- 天津市河東區天鐵一中學2024-2025學年初三下學期統練四生物試題含解析
- 江蘇省姜堰區實驗中學2025年高三月考試題(二)生物試題試卷含解析
- 珠海市2025年三下數學期末監測模擬試題含解析
- 武漢航海職業技術學院《筆譯理論與實踐》2023-2024學年第二學期期末試卷
- 四川省自貢市普高2024-2025學年高三下學期3月聯考歷史試題含解析
- 浙江農業商貿職業學院《行草行書草書技法》2023-2024學年第一學期期末試卷
- 蘇州科技大學天平學院《火電廠煙氣凈化Ⅰ》2023-2024學年第二學期期末試卷
- (正式版)JTT 1496-2024 公路隧道施工門禁系統技術要求
- TB 10303-2020鐵路橋涵工程施工安全技術規程
- 神經外科顱內動脈瘤血管內介入栓塞治療手術知情同意書
- 小美滿合唱五線譜總譜
- 山東省濟南市章丘區2023-2024學年三年級下學期4月期中語文試題
- 《電力負荷聚合服務商需求響應系統技術規范》
- MOOC 基于STM32CubeMX和HAL驅動庫的嵌入式系統設計-電子科技大學 中國大學慕課答案
- 物業設施設備管理指南
- 2024年上海市閔行區高三語文二模作文指導與佳作:“溫故”和“知新”可以是什么關系呢
- 國外導引頭技術現狀及發展趨勢
- 小麥病蟲害防治無人機服務技術方案
評論
0/150
提交評論