用Rational Rose来建立数据库表
这里以MS SQL Server2000中已有的一个Northwind库为例,我们命名新的数据库名为NorthwindRose;我们只挑其中的两个表Customers和Employees做示例,另外我们再新建一个Card表,来建立表间关系,其他依此类推;前提当然是你已经安装了Rose 2003和 SQL Server2000,OK,我们开始
注:对文章中提到的一些概念,如模式、表空间,请参考书《UML数据库设计应用》,人民邮电出版社出版
先看最终效果 
图一、SQLServer2000中的关系图

图二、Rose2003中的关系图
第一步:在Rose2003中新建一个MDL文档,命名为Northwind.mdl
第二步:展开Componet View,New一个DataBase,命名为NorthwindRose,这就是会出现在SQLServer中的新库名,这里可以注意到,Rose自动在“Logical View”中新建了两个包“Global Data Types”以及“Schemas”
图三、新建DataBase
第三步:右键选中“NorthwindRose”,打开“Open Specification”,选择Target为“Micfosoft SQL Server2000.x”,如果要导入到别的类型的数据库,同样可以选择,目前我还没有试过,欢迎大家写其他各种版本的参考手册 
图四、选择目标数据库类型
第四步:新建NorthwindRose的表空间,右键打开“NorthwindRose”-“Data Modeler”-“New”-“Tablespace”,一般情况下,请把表空间命名成“PRIMARY”,例子里我将表空间命名为NorthwindSpace,这里待会还要重点讲一下,因为导入SQLServer2000的时候可不是随便什么表空间名都可以的,必须与SQLServer中的“文件组”中的项目相对应。 
图五、新建表空间
第五步:右键选中“Logical View”中的“Schemas”,新建一个Schema,我这里命名为Schema_Actor,大家可以随意命名,自己理解就行;

图六、建立一个模式
第六步:右键打开“Schema Actor”,新建一个Data Model Diagram,取名为Main,双击这个Main图标,我们可以看到工具栏的变化,如下图

图七、建立数据模型视图,并双击打开,出现新的Toolbar
第七步:右键打开"Schema_Actor"的“Open Specification”,将DataBase选择为"NorthwindRose",表明从属关系,同时新建一个Table

图八、在模式下新建表格
第八步:在模式“Schema_Actor”下新建三个表Card、Customers和Employees,这里我以建立Card表为例,介绍怎么在Rose2003中建立表格,以及如何设置主键、选择数据类型以及数据长度等

1、将工具栏的“Table”拖放入Main数据视图,出现T_5表格
2、双击T_5表格,设置表格参数将Name设置为Card,选择Tablespace为NotrhwindSpace 
3、选择“Columns”,右键空白区域选择“Insert”插入新列
4、编辑新建的列属性,将Name设置为CardID,注释为卡的ID,主键 
5、选择“Type”设置CardID的数据类型和长度,并设置成主键
6、同样建立一个名为CardType的列设置数据类型为nvarchar,长度为10
第九步:模仿第八步提到的方法,建立Customers表和Employees表,并使用Toolbar中的Identifying Relationship和Non-identifying Relationship两个工具建立三个表之间的关系,Identifying Relationship表示主外键关系,拖动方向应该是从父表指向子表,下图中的Card表为父表,Customers和Employees表为子表,CardID为其他两个表的主键和外键;Non-identifying Relationship则仅仅是建立外键关系

注意:先选中工具,然后选择Parent表,拖动连线指向子表即可
图十二:建好后的表关系图
建立好表关系之后,就可以导入数据库了,请按照以下步骤进行操作
第十步:打开SQLServer的“企业管理器”,新建一个名为“NorthwindRose”的数据库,与Rose中的DB同名,打开属性,在“文件组”一栏加上“NorthwindSpace”,这里就是对应Rose中的Tablespace

图十三、Tablespace和文件组的关系
第十一步:右键打开“NorthwindRose”,并选择“Forward Engineer”,点击“下一步”,选择想导入的部分,再“下一步”,选择“Execute”,填入SQLServer的登陆帐号密码,选择刚才建立的“NorthwindRose”数据库,选择下一步导入 
图十四、导入过程
检查一下SQLServer2000,应该可以看到表都已经自动建立好了,如果导入不成功,基本上是以下几个原因:
1、 在建立表的时候,没有选择相应的Tablespace
2、 Rose中的Tablespace在SQLServer2000中的文件组中找不到对应项 
图十五、导入后的表结构
到这里,貌似一切都很顺利应该成功了,我们试着在Card表里添加一条数据看看,会出现如下错误提示:

图十六、新建数据时候的错误
可以看出,我们自己命名的“NorthwindSpace”的表空间是有问题的,这时候我们还是把Rose2003的Tablespace改为“PRIMARY”;重新导入,再试试看。重新导入之前,要先把NorthwindRose库里的表先删除。最后可以看到一个可以使用的库了
用Rational Rose来建立数据库表的更多相关文章
- JPA中建立数据库表和实体间映射小结
在JPA中,映射数据库表和实体的时候,需要注意一些细节如下, 实体类要用@Entity的注解: 要用 @Id 来注解一个主键: 如果跟数据库相关联,要用@Table注解相关数据库表: 实体类中字段需要 ...
- Lucene学习之一:使用lucene为数据库表创建索引,并按关键字查询
最近项目中要用到模糊查询,开始研究lucene,期间走了好多弯路,总算实现了一个简单的demo. 使用的lucene jar包是3.6版本. 一:建立数据库表,并加上测试数据.数据库表:UserInf ...
- 为什么要用hibernate 与基于数据库表结构的项目开发
最近开始学习hibernate,其实并不知道要学习什么,有什么用.后来问了一下同事,他就说快捷方便简单,很多事情不用自己做他会帮你做好,但是我觉得不应该是这样的,于是我就去搜了一下,就搜到了一篇帖子, ...
- Oracle数据库实验一建立数据库
实验日期: 2019 年 09 月 24 日 实验报告日期: 2019 年 09 月 28 日 一. 实验目的 熟悉oracle环境: 熟练掌握和使用PL-SQL建立数据 ...
- 使用MySQL Workbench建立数据库,建立新的表,向表中添加数据
使用MySQL Workbench建立数据库,建立新的表,向表中添加数据 初学数据库,记录一下所学的知识.我用的MySQL数据库,使用MySQL Workbench管理.下面简单介绍一下如何使用MyS ...
- SQL Server学习之路(一):建立数据库、建立表
0.目录 1.前言 2.建立数据库 2.1 通过SSMS建立数据库 2.2 通过SQL语句建立数据库 3.建立表 3.1 通过SSMS建立表 3.2 通过SQL语句建立表 1.前言 配置是win10+ ...
- 第二篇-Django建立数据库各表之间的联系(中)
上篇中已经建立了两个table,Book和Publish.这篇介绍如何用python增删改查数据库中的数据. 在views.py中创建一个index函数 from django.shortcuts i ...
- 第一篇-Django建立数据库各表之间的联系(上)
多表操作(一对多) 遇到的问题: 执行python manage.py makemigrations后报如下错误 TypeError: __init__() missing 1 required po ...
- GG_Model 类库与数据库表对应建立实体类
3.4.GG_Model 类库与数据库表对应建立实体类 我这里不教大家写代码,直接用TT模板自动生成,省去写代码的麻烦. A. 三个文件MysqlDbhelper.ttinclude .mysqlMa ...
随机推荐
- POJ 1068 AC 2014-01-07 15:24 146人阅读 评论(0) 收藏
POJ的题目都是英文的,所以,,,还是直接贴代码吧 #include<stdio.h> int main(){ int x,y,z; int n,nm,max; scanf("% ...
- JSP/SERVLET重定向技术综述
1.RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个S ...
- VC6.0环境安装STLport-5.2.1
今天安装STLport,网上搜资料安装好久,都不行,因为STLport 的版本不对,我这是STLport-5.2.1新版本. (注意:下面的步骤都在一个cmd里操作,很简单的原因:环境变量啊) 1.首 ...
- 配置sql server2012属性 ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.zh-CHS/s10de_5techref/html/6df812ad-4d80-4503-8a23-47719ce85624.htm
服务与服务器是两个不同的概念,服务器是提供服务的计算机,配置服务器主要是对内存.处理器.安全性等几个方面配置.由于SQL Server 2005服务器的设置参数比较多,这里选一些比较常用的介绍. 配置 ...
- select count的优化
select count的优化 2011-08-02 12:01:36 分类: Oracle 一般情况下,select count语句很难避免走全表扫描,对于上百万行的表这个语句使用起来就比较吃力了, ...
- 在实体注解OneToMany时,要加上mappedby,避免产生中间表。
在实体注解OneToMany时,要加上mappedby,避免产生中间表.
- 集合、拆箱、装箱、自定义集合的foreach
集合部分 参考:http://msdn.microsoft.com/zh-cn/library/0ytkdh4s(v=vs.110).aspx 集合类型是诸如哈希表.队列.堆栈.包.字典和列表等数据集 ...
- 使用CXF与Spring集成实现RESTFul WebService
以下引用与网络中!!! 一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存 ...
- Project Euler 92:Square digit chains 平方数字链
题目 Square digit chains A number chain is created by continuously adding the square of the digits in ...
- @Override在JDK1.5和JDK1.6中用法区别
@Override 注解在jdk1.5环境下,只能用于对基类(父类)的方法的重写.而不能用于对实现的接口的方法的实现.而在jdk1.6环境下,两者都适用.