熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Powerdesigner使用建議(完整版)

2013-11-13 15:43:12  來源: Oracle 

  .Powerdesigner使用建議
  業務規則的使用(Business Rule)
  對於一些業務邏輯可能出現在多個數據表中建議封裝成Business Rule這樣便於業務邏輯的重新使用也便於業務邏輯的維護
  為了便於維護業務邏輯可以考慮將Business Rule和Domains結合起來使用將業務Business Rule應用到Domains上然後再把Domains應用到數據表的字段上
  例如在拆遷項目中拆遷業務部分管理參數業務部分房源業務部分拆遷合同部分的數據表中都有樓層這個字段因此先一個Business Rule然後定義一個Domain這樣相應的數據表的字段就可以使用這個Domain了
  自定義數據類型(Domains)的使用
  oralce提供了一些內置的數據類型但是用戶也可以根據業務的需要定義自定義的數據類型
  在自定義數據類型裡面包裝業務邏輯
  正如上面的房屋樓層我們可以定義一個獨立的數據類型(Domain)維護然後在相關數據表的字段上使用這個自定義數據類型
  一般在定義自己的數據類型時候可以在oracle基本類型上定義然後可以加上一些standard check或者Business Rules
  比如在拆遷項目中面積類別這個字段在很多數據表都出現了可以作為一個單獨的數據類型類維護定義一個 面積類別 Domains(包含的種類有 廳房面積 使用面積 單元面積 總建築面積 分攤面積)而且由於Powerdesigner的提供關聯作用這樣便於當業務邏輯發生了變動能夠很快查詢出那些對象受到影響
  序列號(Sequence)的使用
  在powersigner的模型裡面定義一堆了Sequence接下來的是要把他們和數據表的相關字段關聯起來特別是那些用於多個數據表字段的Sequence
  一個數據表原則上只允許一個字段使用Sequence並且在數據表的字段使用Sequence前應該把該Sequence添加到數據表的Extended Dependencies中
  如果一個數據表有個字段或者更多字段使用了Sequence那模型檢查時會給出提示信息
  使用的規則一般是只能應用到數據表的主鍵字段上
  主鍵字段建議是 數據表+ID或者 編號構成
  例如房屋整合面積 數據表那它的主鍵字段=房屋整合面積編號對應的Sequence為SEQ_房屋整合面積其它數據表可能也使用到了這個Sequence那也需要在使用前設置引用關系
  (在數據表的Extended Dependencies 上設置引用關系)
   Oracle Package的使用
  在Oracle Package裡面可以定一些procedure 但是Oracle包引用的數據庫對象到底有哪些呢這些信息建議手動維護起來特別是Oracle Package使用了哪些數據表視圖以及Oracle Packag等信息建議維護起來
  包的使用
  PowerDesigner的包相當於文件夾用戶可以把它當作一個維護業務邏輯的容器PowerDesigner包一般建議按照業務模塊來建立如果模塊需要細分可以考慮建立PowerDesigner子包來完成
  建議容器裡保存的是模型對象的快捷方式原始信息建議不要放到容器裡面因為在要是把這些信息放到容器裡在PowerDesigner的模型合並或者逆向工程時這種方式的信息可能得不到維護
  PowerDesigner的包下面的PhysicalDiagram建議采用象ERWin的Subject Area那樣按照某個主題或者業務角度的方式來組織PhysicalDiagram包含的對象使得每個PhysicalDiagram的功能明確
  
  視圖(View)的使用
  視圖一般是數據表或者視圖上建立得來的(當然也可能引用了某個存儲過程)一般視圖的模型中應該維護視圖的數據來源的引用信息
  在我們現在的項目中數據庫模型沒有對視圖進行維護為此需要在建立視圖的Powerdesigner
  模型
  我在Powerdesigner環境下通過逆向工程不能夠獲得視圖(view)的腳本通過修改相關配
  置參數還是不能夠獲得腳本
  可以通過以下方法獲得視圖(view)的腳本
  方法使用powerdesigner的逆向工程獲得視圖的腳本然後在Powerdesigner中把視
  圖的模型合並進來這樣就可以對視圖進行維護了
  方法使用Erwin逆向工程獲得視圖的Erwin模型然後再把模型保存為ERX類型的文件
  在Powerdesigner中導入該文件然後進行合並模型就可以了
  PowerDesigner的視圖模型處理能力比較差不能構維護視圖的依賴關系(也就是建立視圖對數據源的依賴關系)這一點明顯不如ERWin
  
  同義詞(synonym)的使用
  同義詞相當於給數據庫對象一個別名提供了位置和數據的獨立性在跨數據庫用戶訪問對象時可以考慮建立同義詞結合權限分配簡化數據庫對象的訪問
  
  .數據表的使用
  數據表的注釋語句的更新
  業務背景
  在我們的項目中Erwin模型中的數據表的注釋語句沒有同步到Oracle數據庫現在需要更數據庫中的數據表的注釋語句
  可能可以采取的實現方法
  方法Erwin直接正向工程但是從Erwin直接正向工程由於注釋語句中有回車符號更新會失敗
  方法如果把Erwin模型轉換成為powerdesigner模型再更新數據表的注釋語句這樣就可以避免回車符號的問題按正常情況是可以行得通的但是由於Erwin模型中的邏輯模型和物理模型不一致甚至它們出現的順序不一致這樣獲得powerdesigner模型就不正確了生成的修改數據庫的腳本也就不正確了
  實際采用的方法
  把Erwin模型轉換成powerdesigner模型在Erwin中保存為ERX類型然後在PowerDesigner導入模型)並且把文件保存為PDM類型(XML格式)刪除模型中的視圖domainsBusiness Rulereference等信息只留下相關數據表本身的信息然後把模型文件的後綴修改XML並且采用XMLSPY生成這個文件的DTD文件再采用Java編寫了一個基於SAX的程序去解析XML文件把各個數據表以及字段的注釋語句提取出來然後更新數據庫中數據表和字段的注釋語句這樣就可以了
  
  .ERWin升級到PowerDesigner的相關問題
   Domain的升級
  從Erwin升級到PowerDesignerDomain信息和數據表的關聯關系會丟失需要手動重新添加者間的關系當然可以通過編程修改PowerDesigner的模型文件添加者之間的關聯關系一般的PowerDesigner模型文件較大只要有個幾十張數據表肯定模型文件有MB建議采用SAX的方式添加信息
  注意添加數據表字段使用的Domain時候需要設置數據表對Domain的引用關系(也就是Extended Dependencies)
   Business Rule的升級
  從Erwin升級到PowerdesignerBusiness Rule的表達式(腳本)需要修改的把所有的
  Business Rule的表達式中的@column 修改成%COLUMN%
  具體實現的方式可以直接在Powerdesigner裡面修改或者把模型保存為XML格式(文件類為 pdm)通過UltraEdit或者XMLSpy等工具來修改一個查找替換舊搞定了當然的注意
  只能修改<c:BusinessRules> </c:BusinessRules>裡面的內容否則會修改一些不應該修改的地方
  同Domain一樣從Erwin升級到PowerDesignerBusiness信息和數據表的關聯關系也會丟失如果Business Rule 不是太多建議手動修改模型文件
  
  Sequence的升級
  Sequence的升級建議采用和Domain的方式編程實現維護
  物理圖的升級
  從Erwin升級到Powerdesigner物理圖同樣能夠倒入Powerdesigner但是Powerdesigner的升級功能有些問題在生成的物理圖中數據表的信息有些問題物理圖中的數據表的字段顯示不完全而且很多時候數據表字段的類型都不能顯示完全我使用java采用sax的方式把升級後的模型文件進行解析然後重新生成物理圖中數據表的位置信息(數據表的個坐標左上角坐標右下角坐標)另外根據業務需要可以生成自己的Powerdesigner包並且可以創建物理圖把數據表添加到物理圖上
  
  其他說明
  從Erwin升級到Powerdesigner我寫了一些java程序解決了相關問題如果哪位同行遇到相似的問題
  可以交流一下
  
  .關於powerdesigner中的數據結構的變更管理
  目前拆遷項目中數據結構的有些失控在結合powerdesigner包的概念的基礎山上提出如下一些建議
  .數據結構按照業務模塊進行維護
  模型中所有的數據結構都在一個文件中而且在頂層文件夾中各個業務模塊維護的是數據結構的快捷方式
  .數據結構按照其生命周期進行分類管理
  在各個業務模塊的包下面建立如下的包
  臨時測試數據結構
  是一些當前業務模塊測試時使用的數據結構可以隨時被刪除
  討論中數據結構
  是數據結構處於討論中還沒有確定下來
  需要更新的數據結構
  是數據結構已經確定下來但是還沒有更新到數據庫中
  正式數據結構
  在數據庫中被業務正常使用的數據結構
  作廢中的數據結構
  在數據庫中以前被業務正常使用現在已經不再使用但是還沒有進行被作廢的數據表中數據的遷移沒有完全作廢的數據結構如果要把這些數據結構進行作廢需要先進行數據遷移以及其他相關處理
  已經作廢的數據結構
  在數據庫已經不再被使用的業務數據表相關的數據遷移已經完成但是數據表還沒有刪除相關的文檔沒有更新
From:http://tw.wingwit.com/Article/program/Oracle/201311/17191.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.