使用PowerDesigner進(jìn)行數(shù)據(jù)庫設(shè)計(jì)锋边,去年是第一次使用,使用它完成了一次小型的數(shù)據(jù)庫設(shè)計(jì)编曼。今年是第二次使用豆巨,中間間隔了幾個月,再次打開PowerDesigner時掐场,已經(jīng)把使用步驟忘記個差不多了往扔,有些還需要再去查找一下資料。為了能夠把PowerDesigner使用步驟刻在腦子里熊户,這次對PowerDesigner的常規(guī)使用步驟做一些記錄萍膛,來加深印象,日后忘記時嚷堡,有的查找蝗罗,畢竟自己寫過的東西能夠再現(xiàn)出使用場景來。
為了能夠爐火純青地使用PowerDesigner蝌戒,還特意買了一本從入門到精通的書串塑,作為參考,最近又把這本書翻了一遍北苟,果真是本參考書桩匪,把PowerDesigner里面的菜單全都翻譯了一遍,好好地詳細(xì)地翻譯了一遍友鼻。如果PowerDesigner使用的不熟練傻昙,只有兩方面原因,第一:英文不好彩扔,第二:使用的少妆档。本人是兩者都占到了。
作為一名使用PowerDesigner的小白借杰,如何快速上手呢过吻,為何強(qiáng)調(diào)快速上手,主要因?yàn)橛貌坏降臅r候不愿意主動學(xué)習(xí),用到的時候多半是任務(wù)緊迫纤虽,要在有限的時間內(nèi)做出設(shè)計(jì)來乳绕。恐怕這時逼纸,連翻書都沒有耐心翻下去了洋措。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 初識PowerDesigner
使用PowerDesigner做數(shù)據(jù)庫設(shè)計(jì),主要用到兩個大的模型杰刽,第一個是CDM菠发,第二個是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中氛谜,有幾個要素需要熟識一下掏觉,第一個是實(shí)體entity区端,第二個是實(shí)體entity中的屬性attributes,也就是列澳腹。第三個是域domains织盼,域是對屬性attributes的歸類,可以提前創(chuàng)建域酱塔。在設(shè)置實(shí)體entity中的屬性attributes時沥邻,先創(chuàng)建好屬性的名稱name和編碼code,然后選擇合適的域domains羊娃,就可以設(shè)定屬性的數(shù)據(jù)類型datatype和長度length唐全。第四個是關(guān)系relationship,也就是兩個實(shí)體之間的關(guān)聯(lián)關(guān)系,是一對一的關(guān)系邮利,還是一對多的關(guān)系弥雹,還是多對多的關(guān)系。第五個是關(guān)聯(lián)association延届,關(guān)聯(lián)是實(shí)體的多對多關(guān)系剪勿,在做數(shù)據(jù)設(shè)計(jì)時,一對多時方庭,可以把一存儲在多的表中做外鍵厕吉,多對多時,需要另外建一個表進(jìn)行關(guān)聯(lián)械念,這就是關(guān)聯(lián)association头朱。在CDM中表現(xiàn)為關(guān)聯(lián)association,用于區(qū)別一般的實(shí)體龄减。還漏掉了一個就是標(biāo)識符identifier就是實(shí)體中的主鍵髓窜。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CDM創(chuàng)建,手把手實(shí)際操作
第一步欺殿,創(chuàng)建概念數(shù)據(jù)模型CDM寄纵,并對其命名。
打開PowerDesigner工具脖苏,在工具欄點(diǎn)擊文件程拭,在打開的菜單欄中,選擇第一個選項(xiàng)->建立新模型棍潘,在建立新模型的窗口恃鞋,選擇第二個模型,在modelname中對模型重新命名亦歉,最后點(diǎn)擊OK按鈕恤浪。
第二步,創(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)如下窗口:
2) ?在此窗口,添加name呵恢、code鞠值,code可以不填,讓其自動填充渗钉,并設(shè)置數(shù)據(jù)類型datatype和長度length彤恶,設(shè)置數(shù)據(jù)類型和長度是關(guān)鍵,后面的實(shí)體屬性會繼承這里的數(shù)據(jù)類型和長度,最后點(diǎn)擊ok按鈕進(jìn)行保存声离,如下圖所示:
第三步歇竟,創(chuàng)建實(shí)體entity。
1) 在窗口的右上角有一個懸浮框palette抵恋,有一個四方形的圖表焕议,鼠標(biāo)移上去時會有一個entity的標(biāo)識,沒錯弧关,就是它了盅安,點(diǎn)擊這個圖表,在空白的地方世囊,點(diǎn)擊一下就繪出實(shí)體entity的圖表
2) 點(diǎn)擊懸浮框palette中的箭頭pointer圖表别瞭,讓鼠標(biāo)恢復(fù)狀態(tài),然后雙擊其中的一個實(shí)體株憾,即可對實(shí)體進(jìn)行name和code的命名蝙寨,命名之后點(diǎn)擊應(yīng)用。點(diǎn)擊應(yīng)用不會關(guān)閉當(dāng)前窗口嗤瞎,點(diǎn)擊確定會關(guān)閉當(dāng)前窗口墙歪。
第四步,創(chuàng)建實(shí)體entity中的屬性attribute贝奇。
1) 接著上一個窗口虹菲,在entity窗口中,點(diǎn)擊屬性attribute掉瞳,在這一欄目里可進(jìn)行屬性的name和code創(chuàng)建毕源,name對應(yīng)的是中文描述,code對應(yīng)的數(shù)據(jù)庫字段名稱陕习。
2) 接著為每個字段選擇對應(yīng)的domain,點(diǎn)擊domain下的None區(qū)域時霎褐,會出現(xiàn)下拉列表,從下拉列表選擇合適的domain该镣,domain不存在時冻璃,可以再次新增,新增后重新打開窗口再次選擇對應(yīng)的domain拌牲。
3) 如果此時想添加備注俱饿,但是列表中并沒有備注歌粥,可點(diǎn)擊菜單欄下塌忽,漏斗下帶筆的小圖標(biāo)勾選出備注comment,這時就可以看到備注一欄了失驶。
4) 在上圖中有一個細(xì)節(jié)土居,就是在備注comment之前,有三個字母,每個字母下面有個復(fù)選框擦耀,這是什么意思呢棉圈,P是PrimaryIdentifier是否為主鍵表述的縮寫,勾選了P就代表當(dāng)前被勾選字段是該表的主鍵眷蜓。M是Mandatory的縮寫,屬性值是否允許為空的意思分瘾。D是displayed的縮寫,表示是否在實(shí)體圖形符號中顯示該屬性吁系。
5) 還有一個Identifiers標(biāo)識符德召,可以把主鍵的code拷貝過去,設(shè)置這個的好處是汽纤,可以在關(guān)系圖中上岗,一下子就能清楚地看到某個表的主鍵是哪個,是否有設(shè)置蕴坪。
第五步肴掷,創(chuàng)建實(shí)體entity之間的一對一、一對多關(guān)系的關(guān)聯(lián)relationship背传。
1) 現(xiàn)在有兩個實(shí)體呆瞻,一個是班級,一個是學(xué)生径玖,一個班級存在多名學(xué)生栋烤,一個學(xué)生只能在一個班級上課,這就是一對多的關(guān)系挺狰,在右邊懸浮框palette中有一個提示文字為Raletionship的圖標(biāo)明郭,就是關(guān)系的映射,點(diǎn)擊這個圖標(biāo)丰泊,按住鼠標(biāo)的左鍵薯定,從一個實(shí)體拖往另一個實(shí)體,通常是從一對多的關(guān)系開始拖這個圖標(biāo)瞳购,到多的實(shí)體停止這個圖標(biāo)话侄。
2) 鼠標(biāo)拖過之后,再次點(diǎn)擊箭頭pointer圖標(biāo)学赛,恢復(fù)鼠標(biāo)狀態(tài)年堆,然后雙擊關(guān)系這條線,對關(guān)系進(jìn)行編輯盏浇,對關(guān)系的name和code進(jìn)行命名变丧。
3) 點(diǎn)擊cardinalities欄目,可以對關(guān)系重新設(shè)置绢掰,設(shè)置班級和學(xué)生的關(guān)系是0對N關(guān)系痒蓬,還是1對N關(guān)系童擎,最后點(diǎn)擊OK按鈕保存。
第六步攻晒,創(chuàng)建實(shí)體entity之間的多對多關(guān)聯(lián)association顾复。
1) 在實(shí)際場景中,一個學(xué)生可以選擇多個課程鲁捏,一個課程也可以被多個學(xué)生選擇芯砸,這就是多對多的關(guān)系,在右邊懸浮框palette中選擇association圖表给梅,在空白區(qū)域創(chuàng)建一個association乙嘀,association可以看做是關(guān)系變形成的實(shí)體,對association極其屬性進(jìn)行命名破喻。
2) ?接著繪制學(xué)生和這張關(guān)系的關(guān)聯(lián)虎谢,在右邊懸浮框中,有一個association link圖標(biāo)曹质,這個圖標(biāo)就是代碼實(shí)體域關(guān)聯(lián)關(guān)系之間的連接婴噩,點(diǎn)擊這個圖標(biāo),從實(shí)體拖向association羽德,即可建立關(guān)系几莽。
至此,概念數(shù)據(jù)模型cdm的創(chuàng)建已經(jīng)告一個段落了宅静,你get到了嗎章蚣?