用Rational Rose來(lái)建立數(shù)據(jù)庫(kù)表
這里以MS SQL Server2000中已有的一個(gè)Northwind庫(kù)為例,我們命名新的數(shù)據(jù)庫(kù)名為NorthwindRose;我們只挑其中的兩個(gè)表 Customers和Employees做示例,另外我們?cè)傩陆ㄒ粋€(gè)Card表,來(lái)建立表間關(guān)系,其他依此類推;前提當(dāng)然是你已經(jīng)安裝了Rose 2003和 SQL Server2000,OK,我們開始
注:對(duì)文章中提到的一些概念,如模式、表空間,請(qǐng)參考書《UML數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)用》,人民郵電出版社出版
先看最終效果
圖一、SQLServer2000中的關(guān)系圖
圖二、Rose2003中的關(guān)系圖
第一步:在Rose2003中新建一個(gè)MDL文檔,命名為Northwind.mdl
第二步:展開Componet View,New一個(gè)DataBase,命名為NorthwindRose,這就是會(huì)出現(xiàn)在SQLServer中的新庫(kù)名,這里可以注意到,Rose自動(dòng) 在“Logical View”中新建了兩個(gè)包“Global Data Types”以及“Schemas”
圖三、新建DataBase
第三步:右鍵選中“NorthwindRose”,打開“Open Specification”,選擇Target為“Micfosoft
SQL Server2000.x”,如果要導(dǎo)入到別的類型的數(shù)據(jù)庫(kù),同樣可以選擇,目前我還沒(méi)有試過(guò),歡迎大家寫其他各種版本的參考手冊(cè)
圖四、選擇目標(biāo)數(shù)據(jù)庫(kù)類型
第四步:新建NorthwindRose的表空間,右鍵打開“NorthwindRose”-“Data
Modeler”-“New”-“Tablespace”,一般情況下,請(qǐng)把表空間命名成“PRIMARY”,例子里我將表空間命名為
NorthwindSpace,這里待會(huì)還要重點(diǎn)講一下,因?yàn)閷?dǎo)入SQLServer2000的時(shí)候可不是隨便什么表空間名都可以的,必須與
SQLServer中的“文件組”中的項(xiàng)目相對(duì)應(yīng)。
圖五、新建表空間
第五步:右鍵選中“Logical View”中的“Schemas”,新建一個(gè)Schema,我這里命名為Schema_Actor,大家可以隨意命名,自己理解就行;
圖六、建立一個(gè)模式
第六步:右鍵打開“Schema Actor”,新建一個(gè)Data Model Diagram,取名為Main,雙擊這個(gè)Main圖標(biāo),我們可以看到工具欄的變化,如下圖
圖七、建立數(shù)據(jù)模型視圖,并雙擊打開,出現(xiàn)新的Toolbar
第七步:右鍵打開"Schema_Actor"的“Open Specification”,將DataBase選擇為"NorthwindRose",表明從屬關(guān)系,同時(shí)新建一個(gè)Table
圖八、在模式下新建表格
第八步:在模式“Schema_Actor”下新建三個(gè)表Card、Customers和Employees,這里我以建立Card表為例,介紹怎么在Rose2003中建立表格,以及如何設(shè)置主鍵、選擇數(shù)據(jù)類型以及數(shù)據(jù)長(zhǎng)度等
1、將工具欄的“Table”拖放入Main數(shù)據(jù)視圖,出現(xiàn)T_5表格
2、雙擊T_5表格,設(shè)置表格參數(shù)將Name設(shè)置為Card,選擇Tablespace為NotrhwindSpace
3、選擇“Columns”,右鍵空白區(qū)域選擇“Insert”插入新列
4、編輯新建的列屬性,將Name設(shè)置為CardID,注釋為卡的ID,主鍵
5、選擇“Type”設(shè)置CardID的數(shù)據(jù)類型和長(zhǎng)度,并設(shè)置成主鍵
6、同樣建立一個(gè)名為CardType的列設(shè)置數(shù)據(jù)類型為nvarchar,長(zhǎng)度為10
第九步:模仿第八步提到的方法,建立Customers表和Employees表,并使用Toolbar中的Identifying Relationship和Non-identifying Relationship兩個(gè)工具建立三個(gè)表之間的關(guān)系,Identifying Relationship表示主外鍵關(guān)系,拖動(dòng)方向應(yīng)該是從父表指向子表,下圖中的Card表為父表,Customers和Employees表為子表, CardID為其他兩個(gè)表的主鍵和外鍵;Non-identifying Relationship則僅僅是建立外鍵關(guān)系
注意:先選中工具,然后選擇Parent表,拖動(dòng)連線指向子表即可
圖十二:建好后的表關(guān)系圖
建立好表關(guān)系之后,就可以導(dǎo)入數(shù)據(jù)庫(kù)了,請(qǐng)按照以下步驟進(jìn)行操作
第十步:打開SQLServer的“企業(yè)管理器”,新建一個(gè)名為“NorthwindRose”的數(shù)據(jù)庫(kù),與Rose中的DB同名,打開屬性,在“文件組”一欄加上“NorthwindSpace”,這里就是對(duì)應(yīng)Rose中的Tablespace
圖十三、Tablespace和文件組的關(guān)系
第十一步:右鍵打開“NorthwindRose”,并選擇“Forward
Engineer”,點(diǎn)擊“下一步”,選擇想導(dǎo)入的部分,再“下一步”,選擇“Execute”,填入SQLServer的登陸帳號(hào)密碼,選擇剛才建立的
“NorthwindRose”數(shù)據(jù)庫(kù),選擇下一步導(dǎo)入
圖十四、導(dǎo)入過(guò)程
檢查一下SQLServer2000,應(yīng)該可以看到表都已經(jīng)自動(dòng)建立好了,如果導(dǎo)入不成功,基本上是以下幾個(gè)原因:
1、 在建立表的時(shí)候,沒(méi)有選擇相應(yīng)的Tablespace
2、 Rose中的Tablespace在SQLServer2000中的文件組中找不到對(duì)應(yīng)項(xiàng)
圖十五、導(dǎo)入后的表結(jié)構(gòu)
到這里,貌似一切都很順利應(yīng)該成功了,我們?cè)囍贑ard表里添加一條數(shù)據(jù)看看,會(huì)出現(xiàn)如下錯(cuò)誤提示:
圖十六、新建數(shù)據(jù)時(shí)候的錯(cuò)誤
可以看出,我們自己命名的“NorthwindSpace”的表空間是有問(wèn)題的,這時(shí)候我們還是把Rose2003的Tablespace改為 “PRIMARY”;重新導(dǎo)入,再試試看。重新導(dǎo)入之前,要先把NorthwindRose庫(kù)里的表先刪除。最后可以看到一個(gè)可以使用的庫(kù)了
好的,下次我再寫寫Rose2003和SQLServer的數(shù)據(jù)視圖、存儲(chǔ)過(guò)程導(dǎo)入以及如何保持兩者同步
posted on 2007-11-08 10:50 百科 閱讀(603) 評(píng)論(1) 編輯 收藏