快速上手,使用PowerDesigner做數(shù)據(jù)庫設(shè)計(jì)(一)

使用PowerDesigner進(jìn)行數(shù)據(jù)庫設(shè)計(jì),去年是第一次使用,使用它完成了一次小型的數(shù)據(jù)庫設(shè)計(jì)。今年是第二次使用,中間間隔了幾個(gè)月,再次打開PowerDesigner時(shí),已經(jīng)把使用步驟忘記個(gè)差不多了,有些還需要再去查找一下資料。為了能夠把PowerDesigner使用步驟刻在腦子里,這次對(duì)PowerDesigner的常規(guī)使用步驟做一些記錄,來加深印象,日后忘記時(shí),有的查找,畢竟自己寫過的東西能夠再現(xiàn)出使用場景來。

為了能夠爐火純青地使用PowerDesigner,還特意買了一本從入門到精通的書,作為參考,最近又把這本書翻了一遍,果真是本參考書,把PowerDesigner里面的菜單全都翻譯了一遍,好好地詳細(xì)地翻譯了一遍。如果PowerDesigner使用的不熟練,只有兩方面原因,第一:英文不好,第二:使用的少。本人是兩者都占到了。

圖-1


作為一名使用PowerDesigner的小白,如何快速上手呢,為何強(qiáng)調(diào)快速上手,主要因?yàn)橛貌坏降臅r(shí)候不愿意主動(dòng)學(xué)習(xí),用到的時(shí)候多半是任務(wù)緊迫,要在有限的時(shí)間內(nèi)做出設(shè)計(jì)來??峙逻@時(shí),連翻書都沒有耐心翻下去了。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 初識(shí)PowerDesigner

使用PowerDesigner做數(shù)據(jù)庫設(shè)計(jì),主要用到兩個(gè)大的模型,第一個(gè)是CDM,第二個(gè)是PDM。使用步驟大抵如下,先創(chuàng)建CDM,然后把CDM轉(zhuǎn)化成PDM,最后把PDM轉(zhuǎn)化成數(shù)據(jù)庫sql執(zhí)行語句,還可以把PDM轉(zhuǎn)化成word可視化數(shù)據(jù)庫文檔。可執(zhí)行的sql語句和可視化word文檔是做設(shè)計(jì)的最終成果,sql語句用于創(chuàng)建數(shù)據(jù)庫,可視化word文檔用于團(tuán)隊(duì)成員的溝通、開發(fā)及后期維護(hù)。PowerDesigner工具的亮點(diǎn)就是生成可執(zhí)行的sql語句、可視化的word數(shù)據(jù)庫文檔。能不能快速高效地做出一份數(shù)據(jù)庫設(shè)計(jì),關(guān)鍵在于CDM的設(shè)計(jì)。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 概念數(shù)據(jù)模型CDM介紹

CDM是ConceptualDataMode的英文簡稱,概念數(shù)據(jù)模型的意思。在CDM中,有幾個(gè)要素需要熟識(shí)一下,第一個(gè)是實(shí)體entity,第二個(gè)是實(shí)體entity中的屬性attributes,也就是列。第三個(gè)是domains,域是對(duì)屬性attributes的歸類,可以提前創(chuàng)建域。在設(shè)置實(shí)體entity中的屬性attributes時(shí),先創(chuàng)建好屬性的名稱name和編碼code,然后選擇合適的域domains,就可以設(shè)定屬性的數(shù)據(jù)類型datatype和長度length。第四個(gè)是關(guān)系relationship,也就是兩個(gè)實(shí)體之間的關(guān)聯(lián)關(guān)系,是一對(duì)一的關(guān)系,還是一對(duì)多的關(guān)系,還是多對(duì)多的關(guān)系。第五個(gè)是關(guān)聯(lián)association,關(guān)聯(lián)是實(shí)體的多對(duì)多關(guān)系,在做數(shù)據(jù)設(shè)計(jì)時(shí),一對(duì)多時(shí),可以把一存儲(chǔ)在多的表中做外鍵,多對(duì)多時(shí),需要另外建一個(gè)表進(jìn)行關(guān)聯(lián),這就是關(guān)聯(lián)association。在CDM中表現(xiàn)為關(guān)聯(lián)association,用于區(qū)別一般的實(shí)體。還漏掉了一個(gè)就是標(biāo)識(shí)符identifier就是實(shí)體中的主鍵。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CDM創(chuàng)建,手把手實(shí)際操作

第一步,創(chuàng)建概念數(shù)據(jù)模型CDM,并對(duì)其命名。

打開PowerDesigner工具,在工具欄點(diǎn)擊文件,在打開的菜單欄中,選擇第一個(gè)選項(xiàng)->建立新模型,在建立新模型的窗口,選擇第二個(gè)模型,在modelname中對(duì)模型重新命名,最后點(diǎn)擊OK按鈕。

圖-2

第二步,創(chuàng)建域domains,也可以從其他現(xiàn)成的地方拷貝過來。

1) 在 CDM模型 數(shù)據(jù)庫設(shè)計(jì) 上點(diǎn)擊鼠標(biāo)右鍵,選中l(wèi)ist of,在出現(xiàn)的列表中選中domains,出現(xiàn)如下窗口:

圖-3

2) ?在此窗口,添加name、code,code可以不填,讓其自動(dòng)填充,并設(shè)置數(shù)據(jù)類型datatype和長度length,設(shè)置數(shù)據(jù)類型和長度是關(guān)鍵,后面的實(shí)體屬性會(huì)繼承這里的數(shù)據(jù)類型和長度,最后點(diǎn)擊ok按鈕進(jìn)行保存,如下圖所示:

圖-4

第三步,創(chuàng)建實(shí)體entity。

1) 在窗口的右上角有一個(gè)懸浮框palette,有一個(gè)四方形的圖表,鼠標(biāo)移上去時(shí)會(huì)有一個(gè)entity的標(biāo)識(shí),沒錯(cuò),就是它了,點(diǎn)擊這個(gè)圖表,在空白的地方,點(diǎn)擊一下就繪出實(shí)體entity的圖表

圖-5
圖-6

2) 點(diǎn)擊懸浮框palette中的箭頭pointer圖表,讓鼠標(biāo)恢復(fù)狀態(tài),然后雙擊其中的一個(gè)實(shí)體,即可對(duì)實(shí)體進(jìn)行name和code的命名,命名之后點(diǎn)擊應(yīng)用。點(diǎn)擊應(yīng)用不會(huì)關(guān)閉當(dāng)前窗口,點(diǎn)擊確定會(huì)關(guān)閉當(dāng)前窗口。

圖-7

第四步,創(chuàng)建實(shí)體entity中的屬性attribute。

1) 接著上一個(gè)窗口,在entity窗口中,點(diǎn)擊屬性attribute,在這一欄目里可進(jìn)行屬性的name和code創(chuàng)建,name對(duì)應(yīng)的是中文描述,code對(duì)應(yīng)的數(shù)據(jù)庫字段名稱。

圖-8

2) 接著為每個(gè)字段選擇對(duì)應(yīng)的domain,點(diǎn)擊domain下的None區(qū)域時(shí),會(huì)出現(xiàn)下拉列表,從下拉列表選擇合適的domain,domain不存在時(shí),可以再次新增,新增后重新打開窗口再次選擇對(duì)應(yīng)的domain。

圖-9

3) 如果此時(shí)想添加備注,但是列表中并沒有備注,可點(diǎn)擊菜單欄下,漏斗下帶筆的小圖標(biāo)勾選出備注comment,這時(shí)就可以看到備注一欄了。

圖-10
圖-11

4) 在上圖中有一個(gè)細(xì)節(jié),就是在備注comment之前,有三個(gè)字母,每個(gè)字母下面有個(gè)復(fù)選框,這是什么意思呢,P是PrimaryIdentifier是否為主鍵表述的縮寫,勾選了P就代表當(dāng)前被勾選字段是該表的主鍵。M是Mandatory的縮寫,屬性值是否允許為空的意思。D是displayed的縮寫,表示是否在實(shí)體圖形符號(hào)中顯示該屬性。

5) 還有一個(gè)Identifiers標(biāo)識(shí)符,可以把主鍵的code拷貝過去,設(shè)置這個(gè)的好處是,可以在關(guān)系圖中,一下子就能清楚地看到某個(gè)表的主鍵是哪個(gè),是否有設(shè)置。

圖-12

第五步,創(chuàng)建實(shí)體entity之間的一對(duì)一、一對(duì)多關(guān)系的關(guān)聯(lián)relationship。

1) 現(xiàn)在有兩個(gè)實(shí)體,一個(gè)是班級(jí),一個(gè)是學(xué)生,一個(gè)班級(jí)存在多名學(xué)生,一個(gè)學(xué)生只能在一個(gè)班級(jí)上課,這就是一對(duì)多的關(guān)系,在右邊懸浮框palette中有一個(gè)提示文字為Raletionship的圖標(biāo),就是關(guān)系的映射,點(diǎn)擊這個(gè)圖標(biāo),按住鼠標(biāo)的左鍵,從一個(gè)實(shí)體拖往另一個(gè)實(shí)體,通常是從一對(duì)多的關(guān)系開始拖這個(gè)圖標(biāo),到多的實(shí)體停止這個(gè)圖標(biāo)。

圖-13

2) 鼠標(biāo)拖過之后,再次點(diǎn)擊箭頭pointer圖標(biāo),恢復(fù)鼠標(biāo)狀態(tài),然后雙擊關(guān)系這條線,對(duì)關(guān)系進(jìn)行編輯,對(duì)關(guān)系的name和code進(jìn)行命名。

圖-14

3) 點(diǎn)擊cardinalities欄目,可以對(duì)關(guān)系重新設(shè)置,設(shè)置班級(jí)和學(xué)生的關(guān)系是0對(duì)N關(guān)系,還是1對(duì)N關(guān)系,最后點(diǎn)擊OK按鈕保存。

圖-15

第六步,創(chuàng)建實(shí)體entity之間的多對(duì)多關(guān)聯(lián)association。

1) 在實(shí)際場景中,一個(gè)學(xué)生可以選擇多個(gè)課程,一個(gè)課程也可以被多個(gè)學(xué)生選擇,這就是多對(duì)多的關(guān)系,在右邊懸浮框palette中選擇association圖表,在空白區(qū)域創(chuàng)建一個(gè)association,association可以看做是關(guān)系變形成的實(shí)體,對(duì)association極其屬性進(jìn)行命名。

圖-16
圖-17

2) ?接著繪制學(xué)生和這張關(guān)系的關(guān)聯(lián),在右邊懸浮框中,有一個(gè)association link圖標(biāo),這個(gè)圖標(biāo)就是代碼實(shí)體域關(guān)聯(lián)關(guān)系之間的連接,點(diǎn)擊這個(gè)圖標(biāo),從實(shí)體拖向association,即可建立關(guān)系。

至此,概念數(shù)據(jù)模型cdm的創(chuàng)建已經(jīng)告一個(gè)段落了,你get到了嗎?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、概念數(shù)據(jù)模型概述數(shù)據(jù)模型是現(xiàn)實(shí)世界中數(shù)據(jù)特征的抽象。數(shù)據(jù)模型應(yīng)該滿足三個(gè)方面的要求:1)能夠比較真實(shí)地模擬現(xiàn)實(shí)...
    AFinalStone閱讀 12,097評(píng)論 1 5
  • 一、概念數(shù)據(jù)模型概述 數(shù)據(jù)模型是現(xiàn)實(shí)世界中數(shù)據(jù)特征的抽象。數(shù)據(jù)模型應(yīng)該滿足三個(gè)方面的要求: 1)能夠比較真實(shí)地模擬...
    ozil_oo閱讀 15,176評(píng)論 0 7
  • 近段時(shí)間學(xué)習(xí)了mybatis和spring。那么我們需要通過實(shí)踐來認(rèn)證自己的知識(shí)掌握度。當(dāng)然也是說一種自己對(duì)于數(shù)據(jù)...
    探索的影子閱讀 1,052評(píng)論 0 11
  • 本篇文章主要內(nèi)容如下: 概述 數(shù)據(jù)庫建模 搭建spring boot開發(fā)環(huán)境 利用JPA實(shí)現(xiàn)網(wǎng)站數(shù)據(jù)層概述學(xué)習(xí)sp...
    想象美閱讀 2,298評(píng)論 0 0
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,689評(píng)論 1 32

友情鏈接更多精彩內(nèi)容