实验指导说明书
. 右击Component View 并选Data Modeler ? New Database . 默认名称DB_0
. 右击DB_0 并选 Open Specification
. 选定目标数据库,比如: Oracle 9.x (或SQL Server 2000等) (2) 创建模式(《Schema》)
. 在Logical View下创建名为《Schema》S_0模式
. 右击Logical View选Data Modeler ? New ? Schema 则自动创建《Schema》S_0 . 右击《Schema》S_0打开Specification , Database 选 DB_0, Target 就是Oracle 9.x (3) 创建域包和域
. 右击Global Data Type 并选 Data Modeler ? New ? Domain Package系统创建DP_0 . 双击DP_0 打开规范说明(Open Specification),将DBMS设定为Oracle . 在DP_0下创建域Domain
. 右击DP_0,选Data Modeler ? New ? Domain,出现DOM_0
. 右击DOM_0, 打开Domain 的Specification, 然后对域进行设置. 比如: Data Type 设置为Varchar2 Length 设置为10等.
选中 □ Unique Constraint和 □ Not Null (4) 在《Schema》S_0下 创建数据模型图
. 右击《Schema》S_0,选Data Modeler ? New ? Data Modeler Diagram . 自动出现NewDiagram(仔细察看)
(5)在NewDiagram 下创建表(比如:Table_0, Table_1) . 双击NewDiagram
. 在右边框图区内创建表(Table_0, Table_1)
. 在表中增加列Column(可以按教科书中例子进行设置) 2. 建立表间关系 (1)建立确定关系
使用Identifying Relationship按钮, 从主表拉向子表, 在子表中自动生成外键《FK》。 这时FK必是PK的一部分(主表和子表有共存亡关系)
16
实验指导说明书
图4—1 表之间的确定关系
(2)建立非确定关系
使用Non-Identifying Relationship按钮, 从主表拉向子表. 在子表中自动生成外键《FK》. 这时FK不是PK的一部分(子表可以单独存在),在这种情况下又分成两种情况: ①强制性非确定关系: 主表多重性为1或1..*
图4—2 表之间的强制性非确定关系
②非强制性非确定关系: 主表多重性为0..1或0..*
图4—3 表之间的非强制性非确定关系
3. 增加约束
①主键约束和唯一性约束
17
实验指导说明书
. 打开表的Specification, 选 Key Constrain . 选 Unique Constraint 或 Primary Key ② Check Constraint
选Check Constraint 标签,并在Expression 字段下输入SQL语句. ③ 增加索引
在Index标签下设置.
4.增加触发器(Trigger) (1)打开表的Specification
(2)选Trigger Event
□Insert □Delete □Update (默认为Insert,可以选Update) (3)选Trigger Type 单选框
○ before ⊙ after (默认为after) (4) 填写Action body 比如:Select * From Inserted
只要填写核心动作即可,比如: print“数据已更新!”(这时执行结果输出: 数据已更新!) 请同学自己完成较复杂或有特点的触发器。(请勿照抄) 5. 增加存储过程(SP)
(注意: 存储过程不是针对表的,只能在《Schema》下建立) (1)右击《Schema》S_0
(2)选Data Modeler ? New ? Stored procedure
(3)在浏览器中出现《SP Container》SP_00(把存储过程放入容器中) (4)右击新创建的存储过程容器, 并打开其Specification (5)选General标签, 填写有关信息
(6)必要时填写(或更改)Parameter 信息(包括:参数名称、参数类型等) (7)选Action body 标签,填写存储过程语句(以SQL Server 2000为例)
比如:假如在Table_2中有一个整数字段,并在该表中录入一定量的记录。可编写下列存储过程:
Select * from Table_2 where QTY=@par1
Exec SP1 20 (其中SP1为过程名,20 为参数值) 请同学自己完成较复杂或有特点的存储过程。(请勿照抄)
18
实验指导说明书
6. 生成SQL代码文件(以图4-1为例,生成目标数据库为Oracle 的SQL代码) (1)右击《Schema》S_0 (2)选Forward Engineer
选 Next ,并指定产生SQL文件的路径名, 单击 Finish 按钮,得到如下SQL代码:
(以上代码是在“记事本”中显示的)
注意:如果DB_0的目标数据库(target)为SOL Server 2000,所生成的代码有明显的不同。(请学生自己完成比较)
*注:如果机器中有SQL执行环境,生成过程中,可选定 Execute 选择框执行SQL代码。 (二) 对象模型和数据模型之间相互转换(参见教科书第80页至84页,请学生自己完成) 四.评分标准
1.按照“实验指导”的要求创建表,建立表间关系(确定关系和非确定关系),并完成数据模型和对象模型之间转换者,可得到60-70分。
2.在第1项工作完成的基础上能正确编制触发器和存储过程并完成正向工程者,可得到85分成绩。
3.在第1和第2项工作的基础上有创造性发挥者(比如:把在Rose下建立的表结构及其关系转移到SQL Server 2000数据库中,并在数据库视图显示出来)可得到85分以上成绩。
19
实验指导说明书
上机实验(五) 创建包图和构件图
一. 实验目的:创建UML包图和构件图,把类图通过构件生成高级语言源代码。 二. 实验内容: 1.创建包图练习
2.按教科书P105—P108的示例,练习正向工程;
3.使用D:盘中的Clock. Java 源代码进行逆向工程,并检查所生成的构件和类。 4.按照“学生选课系统”所建立的类图进行正向工程:
(1)方法1:一对一映射(即一个类映射成一个构件,然后分别生成源代码); (2)方法2:多对一映射(即多个类映射成一个构件,然后生成源代码); 5.按照“图书管理系统”所建立的类图进行正向工程;
6.按照同学自己所创建的类图进行正向工程(包括Java代码和C++代码)。 三.创建包图步骤: 1.创建一个新包 1)右击Logical View 2)选New ->Package
3)给包命名(比如:“企业综合信息管理系统”),并将其拖入右方绘图窗口 另一种方法是直接使用工具栏中的包按钮作图。 2.在包中添加元素(比如:类、子包等) 1)右击“企业综合信息管理系统”包 2)选New ->Class
3) 为类命名(比如:Class A 。同理可增加Class B等) 4)右击“企业综合信息管理系统”包 2)选New ->Package 3)取名 “财务管理系统” 4)将其拖入右方窗口观看 3.添加(显示)包中信息
1)右击作图窗口中的“企业综合信息管理系统”包 2)选Select Compartment Items?
3) 在Edit Compartment窗口选择要添加的类即可
20