使用PowerDesigner作數據庫設計(一)sql
使用PowerDesigner進行數據庫設計,去年是第一次使用,使用它完成了一次小型的數據庫設計。今年是第二次使用,中間間隔了幾個月,再次打開PowerDesigner時,已經把使用步驟忘記個差很少了,有些還須要再去查找一下資料。爲了可以把PowerDesigner使用步驟刻在腦子裏,此次對PowerDesigner的常規使用步驟作一些記錄,來加深印象,往後忘記時,有的查找,畢竟本身寫過的東西可以再現出使用場景來。
E-R:實體關係模型--》到不一樣的數據庫,數據庫開發人員能夠根據ER圖,設計出不一樣數據庫的表。數據庫
需求分析 概要設計 詳細設計 數據庫設計dom
PowerDesigner:做用,用來作數據庫建模,設計概念模型 物理模型 ,最終都反映到數據庫,以及設計的正向和逆向工程導入使用。數據庫設計
Sybase公司的工具集。ide
做爲一名使用PowerDesigner的小白,如何快速上手呢,爲什麼強調快速上手,主要由於用不到的時候不肯意主動學習,用到的時候多半是任務緊迫,要在有限的時間內作出設計來。恐怕這時,連翻書都沒有耐心翻下去了。工具
初識PowerDesigner學習
使用PowerDesigner作數據庫設計,主要用到兩個大的模型,第一個是CDM,第二個是PDM。使用步驟大抵以下,先建立CDM,而後把CDM轉化成PDM,最後把PDM轉化成數據庫sql執行語句,還能夠把PDM轉化成word可視化數據庫文檔。可執行的sql語句和可視化word文檔是作設計的最終成果,sql語句用於建立數據庫,可視化word文檔用於團隊成員的溝通、開發及後期維護。PowerDesigner工具的亮點就是生成可執行的sql語句、可視化的word數據庫文檔。能不能快速高效地作出一份數據庫設計,關鍵在於CDM的設計。編碼
概念數據模型CDM介紹設計
CDM是ConceptualDataMode的英文簡稱,概念數據模型的意思。在CDM中,有幾個要素須要熟識一下,第一個是實體entity,第二個是實體entity中的屬性attributes,也就是列。第三個是域domains,域是對屬性attributes的歸類,能夠提早建立域。在設置實體entity中的屬性attributes時,先建立好屬性的名稱name和編碼code,而後選擇合適的域domains,就能夠設定屬性的數據類型datatype和長度length。第四個是關係relationship,也就是兩個實體之間的關聯關係,是一對一的關係,仍是一對多的關係,仍是多對多的關係。第五個是關聯association,關聯是實體的多對多關係,在作數據設計時,一對多時,能夠把一存儲在多的表中作外鍵,多對多時,須要另外建一個表進行關聯,這就是關聯association。在CDM中表現爲關聯association,用於區別通常的實體。還漏掉了一個就是標識符identifier就是實體中的主鍵。code
CDM建立,手把手實際操做
第一步,建立概念數據模型CDM,並對其命名。
打開PowerDesigner工具,在工具欄點擊文件,在打開的菜單欄中,選擇第一個選項->創建新模型,在創建新模型的窗口,選擇第二個模型,在modelname中對模型從新命名,最後點擊OK按鈕。
圖-2
第二步,建立域domains,也能夠從其餘現成的地方拷貝過來。
1) 在 CDM模型 數據庫設計 上點擊鼠標右鍵,選中list of,在出現的列表中選中domains,出現以下窗口:
圖-3
2) 在此窗口,添加name、code,code能夠不填,讓其自動填充,並設置數據類型datatype和長度length,設置數據類型和長度是關鍵,後面的實體屬性會繼承這裏的數據類型和長度,最後點擊ok按鈕進行保存,以下圖所示:
圖-4
第三步,建立實體entity。
1) 在窗口的右上角有一個懸浮框palette,有一個四方形的圖表,鼠標移上去時會有一個entity的標識,沒錯,就是它了,點擊這個圖表,在空白的地方,點擊一下就繪出實體entity的圖表
圖-5
圖-6
2) 點擊懸浮框palette中的箭頭pointer圖表,讓鼠標恢復狀態,而後雙擊其中的一個實體,便可對實體進行name和code的命名,命名以後點擊應用。點擊應用不會關閉當前窗口,點擊肯定會關閉當前窗口。
圖-7
第四步,建立實體entity中的屬性attribute。
1) 接着上一個窗口,在entity窗口中,點擊屬性attribute,在這一欄目裏可進行屬性的name和code建立,name對應的是中文描述,code對應的數據庫字段名稱。
圖-8
2) 接着爲每一個字段選擇對應的domain,點擊domain下的None區域時,會出現下拉列表,從下拉列表選擇合適的domain,domain不存在時,能夠再次新增,新增後從新打開窗口再次選擇對應的domain。
圖-9
3) 若是此時想添加備註,可是列表中並無備註,可點擊菜單欄下,漏斗下帶筆的小圖標勾選出備註comment,這時就能夠看到備註一欄了。
圖-10
圖-11
4) 在上圖中有一個細節,就是在備註comment以前,有三個字母,每一個字母下面有個複選框,這是什麼意思呢,P是PrimaryIdentifier是否爲主鍵表述的縮寫,勾選了P就表明當前被勾選字段是該表的主鍵。M是Mandatory的縮寫,屬性值是否容許爲空的意思。D是displayed的縮寫,表示是否在實體圖形符號中顯示該屬性。
5) 還有一個Identifiers標識符,能夠把主鍵的code拷貝過去,設置這個的好處是,能夠在關係圖中,一會兒就能清楚地看到某個表的主鍵是哪一個,是否有設置。
圖-12
第五步,建立實體entity之間的一對1、一對多關係的關聯relationship。
幾種關係:一對一 一對多 多對一 多對多
1) 如今有兩個實體,一個是班級,一個是學生,一個班級存在多名學生,一個學生只能在一個班級上課,這就是一對多的關係,在右邊懸浮框palette中有一個提示文字爲Raletionship的圖標,就是關係的映射,點擊這個圖標,按住鼠標的左鍵,從一個實體拖往另外一個實體,一般是從一對多的關係開始拖這個圖標,到多的實體中止這個圖標。
圖-13
2) 鼠標拖過以後,再次點擊箭頭pointer圖標,恢復鼠標狀態,而後雙擊關係這條線,對關係進行編輯,對關係的name和code進行命名。
圖-14
3) 點擊cardinalities欄目,能夠對關係從新設置,設置班級和學生的關係是0對N關係,仍是1對N關係,最後點擊OK按鈕保存。
圖-15
第六步,建立實體entity之間的多對多關聯association。
1) 在實際場景中,一個學生能夠選擇多個課程,一個課程也能夠被多個學生選擇,這就是多對多的關係,在右邊懸浮框palette中選擇association圖表,在空白區域建立一個association,association能夠看作是關係變造成的實體,對association極其屬性進行命名。
圖-16
圖-17
2) 接着繪製學生和這張關係的關聯,在右邊懸浮框中,有一個association link圖標,這個圖標就是代碼實體域關聯關係之間的鏈接,點擊這個圖標,從實體拖向association,便可創建關係。
至此,概念數據模型cdm的建立已經告一個段落了,你get到了嗎?