建立數(shù)據(jù)庫(kù)時(shí)我們需要考慮數(shù)據(jù)之間的關(guān)系,為了理清數(shù)據(jù)之間的關(guān)系我們需要對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一的整理。對(duì)于較復(fù)雜的數(shù)據(jù)庫(kù)我們需要建立數(shù)據(jù)庫(kù)模型,具體可分為兩步:首先對(duì)數(shù)據(jù)庫(kù)進(jìn)行結(jié)構(gòu)分析并使用樹、表等描述數(shù)據(jù),然后分析數(shù)據(jù)庫(kù)的操作方法,規(guī)定數(shù)據(jù)庫(kù)的增刪改查操作,這兩個(gè)步驟就構(gòu)成了我們通常所說的數(shù)據(jù)庫(kù)模型。
數(shù)據(jù)庫(kù)模型有多重分類,通常所說的ER圖是圖模型,除此之外還有層次模型、網(wǎng)狀模型、關(guān)系模型等。這其中比較簡(jiǎn)單的當(dāng)數(shù)ER圖,也稱實(shí)體-聯(lián)系圖(Entity RelationshipDiagram),它提供了表示實(shí)體類型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。一般的ER圖畫法是采用圓、正方形、菱形來描述實(shí)體及他們之間的關(guān)系,這三者在圖中分別代表了屬性、實(shí)體、聯(lián)系,如下圖為一般ER圖。
對(duì)ER圖進(jìn)行建模時(shí)提倡使用PowerDesigner(功能強(qiáng)大,形式多樣),因?yàn)镻owerDesigner能夠直接將ER圖導(dǎo)出為T-SQL代碼。PowerDesigner能夠做到Visio就不能嗎?其實(shí)Visio本身沒有太大的毛病,而且操作簡(jiǎn)單,但是功能相對(duì)較少和其他開發(fā)程序交互較弱。
Visio沒有提供專門的模板來繪制一般的ER圖,有一種比較折中的辦法:先在“更多形狀”-->“流程圖”-->“基本流程圖”中找到長(zhǎng)方形和菱形,分別右鍵“添加到我的形狀”-->“添加到新模具”在彈出的對(duì)話框中填入“ER圖”,這樣我們就把菱形和方塊添加到了新模具“ER圖”中。用同樣的思路,在“數(shù)據(jù)庫(kù)”-->“ORM圖表”找到橢圓和直線,添加到模具“ER圖”中。
添加完成后,我們就可以在畫ER圖時(shí)打開該模具(文件->形狀->打開模具),ER圖所有的元素都會(huì)在一個(gè)模具中顯示出來了。
Visio提供了兩種形式繪制ER圖,一種是通過數(shù)據(jù)庫(kù)選項(xiàng)卡內(nèi)的反向工程,它通過Visio和其他數(shù)據(jù)庫(kù)驅(qū)動(dòng)器進(jìn)行交互,將已有的數(shù)據(jù)庫(kù)架構(gòu)轉(zhuǎn)換為ER圖;另一種是通過圖形工具自己創(chuàng)建ER圖。下面以一個(gè)收費(fèi)系統(tǒng)的數(shù)據(jù)庫(kù)的ER圖為例,為大家介紹visio繪制ER圖的方法。
打開Visio后選擇“文件”-->“新建”-->“軟件和數(shù)據(jù)庫(kù)”,然后雙擊創(chuàng)建數(shù)據(jù)庫(kù)模型圖。創(chuàng)建后的控制面板左邊分別有三個(gè)針對(duì)數(shù)據(jù)庫(kù)ER模型的七個(gè)專用工具,最常用的是最上面的兩個(gè)分別代表了數(shù)據(jù)庫(kù)表及外鍵關(guān)系。操作簡(jiǎn)單在使用時(shí)只需將實(shí)體拖到頁(yè)面上,隨后會(huì)在下面出現(xiàn)數(shù)據(jù)庫(kù)屬性,在其中添加或修改數(shù)據(jù)表的一些屬性。
可以通過更改實(shí)體的屬性進(jìn)行增加列、設(shè)置列數(shù)據(jù)類型、設(shè)置主鍵等功能。下圖創(chuàng)建了一個(gè)名為T_Admin的實(shí)體,主鍵為chSerial。
實(shí)體間的關(guān)系,在visio中有兩種表示表示方法;分別為下圖所示:
visio默認(rèn)為第一種形式,箭頭的指向?yàn)閷?shí)體的父表??梢酝ㄟ^數(shù)據(jù)庫(kù)----管理----顯示選項(xiàng)----文檔----同時(shí)選中關(guān)系和魚尾紋進(jìn)行設(shè)置改變?yōu)榈诙N顯示方式。
使用關(guān)系連接線連接后,會(huì)自動(dòng)生成外鍵。生成的外鍵會(huì)在從表中自動(dòng)創(chuàng)建父表中的主鍵列,可通過“數(shù)據(jù)庫(kù)屬性”----“定義”----選中兩表中相互關(guān)聯(lián)的列----“斷開連接”來斷開列,同樣也可以使用該方法來連接兩表中的列作為外鍵。效果圖如下圖所示:
使用Visio畫的ER圖基本的操作步驟已介紹完畢,在使用Visio建模時(shí)一定要細(xì)心,在畫圖前期一定要分析好每個(gè)實(shí)體及實(shí)體屬性的命名規(guī)范。
上面的方法是通過使用圖形工具來自己創(chuàng)建ER圖,另外一種方法是通過“數(shù)據(jù)庫(kù)”----“反響工程”自動(dòng)生成某個(gè)數(shù)據(jù)庫(kù)的ER圖,操作簡(jiǎn)單、方便,建議大家使用下并和自己創(chuàng)建的ER圖進(jìn)行比較來糾正自己的使用誤區(qū)。
Visio沒有提供直接的導(dǎo)出方法,想要將畫好的ER圖導(dǎo)出為SQL腳本只依賴Visio是遠(yuǎn)遠(yuǎn)不夠的,而要使用其他工具。一種方法是使用Visio的導(dǎo)入/導(dǎo)出功能,將模型圖導(dǎo)出為ERwin文件,然后使用PowerDesigner或者ERwin打開,最后轉(zhuǎn)換為SQL即可,但是這種方法在Visio2010中已不存在,Visio2010不支持將ER圖導(dǎo)出為ERwin格式,只支持導(dǎo)入。這就需要我們的第二種方法。
另外一種方法是使用OrthogonalToolBox小工具,它是專門負(fù)責(zé)VisioER轉(zhuǎn)出的小工具,這個(gè)工具會(huì)通過XSLT模板來產(chǎn)生對(duì)應(yīng)的SQLScript。
1.下載并安裝OrthogonalToolBox(注:需要先安裝.Net Framework 1.1.4322,下載地址http://download.csdn.net/detail/zhang_xinxiu/5788193);
2.把下載下來的xslt文檔Copy到:C:\Program Files(X86)\OrthogonalSoftware Corporation\Orthogonal Toolbox\StyleSheets;
3.若在Visio工具列沒有看到OrthogonalToolbox,在目前的工具列上檢視 - 工具列 – OrthogonalToolbox 打勾,便可看到;
4. 選擇“加載項(xiàng)”-->“OrthogonalToolbox”-->選中需要導(dǎo)出的ER圖-->“Export XML”-->選中Set StyleSheet-->并選中OTERtoSQL.xslt模板
5.按下 Export會(huì)產(chǎn)生一個(gè)xml文件,使用IE打開該XML文件即可看見我們創(chuàng)建數(shù)據(jù)庫(kù)的SQL腳本。
有問題就會(huì)有解決方法,我們需要耐心去找到它,有時(shí)幾分鐘,有時(shí)甚至幾小時(shí)又或者幾天,解決問題的關(guān)鍵在于是否有耐心,在這個(gè)過程中學(xué)到的知識(shí)比結(jié)果更重要。
來源:http://blog.csdn.net/zhang_xinxiu/article/details/9392429聯(lián)系客服