UML软件工程组织

探究 Rational Data Architect 中的数据库工具
  Rupesh Kartha (rkartha@us.ibm.com), 软件工程师, IBM
Tanya Couch (couch@us.ibm.com), 软件工程师, IBM
    Sarah Jeong (sjeong@us.ibm.com), 全球产品销售经理, IBM
Joseph Yeh (jyeh@us.ibm.com), 软件工程师, IBM

概述

我们的场景是一个 DB2 UDB 的端到端的任务流,您在其中开发和调试一个 SQL 的存储过程。开始建立一个到 DB2 LUW 数据库的连接,该数据库提供数据开发工程的环境,在其中您将开发一个过程。开发工程连接到此连接上,所以您可以获得创建 SQL 的完整帮助,及部署和调试存储过程的功能。您将生成一条包含于您将开发的 SQL 存储过程中的 SQL 语句。

此场景中的步骤包括:

连接到 DB2 数据库
 创建一个 Data Development 工程
 生成并执行一条 SQL 语句
 生成并编辑一个 SQL 过程
 部署并调试存储过程
 在 CVS 中共享一个工程
 连接 DB2 数据库

第一步是添加一个到数据库的连接。您将利用 IBM DB2 Universal JDBC 驱动器连接到 SAMPLE1 数据库。

在 Database Explorer 中,单击 New Connection 创建一个新的连接。

图 1. Database Explorer
 
 Connection 向导启动了,在此向导中您将填写特定数据库服务器的信息。如图 2 所示,您正连接到 DB2 for LUW V8.2 数据库。橘色框中的文本框在 DB2 安装到工作台上时已经预填写了。

图 2. New Connection


 单击 Test Connection,观察到数据库的连接是否正常工作。如果成功,您应该看到如图 3 中所示的消息。

图 3. Test Connection 成功
 

单击 OK 然后单击 Finish,完成数据库的连接。Database Explorer 刷新了,连接文件夹添加到了连接树上。当点击该连接时,Properties 浏览器中显示出连接的信息。

图 4. 激活的 Connection 属性
 

既然您有了到 DB2 的连接,那么就创建一个数据开发工程:

在 File 菜单中选择 New > Data Development Project。
 New Development Project 向导启动了。注意默认值。输入工程名称,然后单击 Next。对于此实例,使用 EmpAnalysis。
 选择 Connection,如图 5 所示,选择 Use an existing connection 及刚才创建的 MyDB2Luw 连接。这样就为工程建立了一个数据库连接。此工程中对象的开发是依赖此目标数据库的。单击 Finish。

图 5. New Data Development Project
 

新建的工程加入到了 Data Project Explorer 中。

图 6. Data Project Explorer 中的新工程
 

生成一条 SQL 语句

利用 EmpAnalysis 工程创建一条 SQL 语句。

展开 EmpAnalysis 工程并右键单击 SQL Scripts 文件夹,打开 New SQL Statement 窗口。在第一个面板中单击 Next,在 EmpAnalysis 工程中进行开发。为创建的 SQL 语句输入一个名称,如 MinSalary。保留 Statement Template 和编辑器的默认值,并单击 Finish。SQL 构造器在编辑器窗格中打开。

 根据指示在构造器用户界面中的 Tables 窗格中单击右键,并选择 Add Table 菜单,开启 Add Table 窗口。
展开恰当的方案,选择 DEPARTMENT 和 EMPLOYEE 并单击 OK。还可以通过从数据库浏览器中拖动来添加表格。

图 7. 向 SQL 构造器中添加表格
 

在适当的表格中选择列。如图 8 所示,在 EMPLOYEE 表格中选择列 FRSTNAME 和 LASTNAME。在 DEPARTMENT 表格中选取DEPTNAME。

图 8. 在表格中选取的列
 

利用表达式构造器可以向查询结果中加入一个表达式。

在列格中,双击 DEPARTMENT.DEPTNAME 之后的行。下滚到底部,并在列表中选择 Build Expression...,并选择Enter。Expression Builder 启动了。选择最后一个单选按钮,Build up expression by operators。

 图 9. Building up expressions by operators
 

选择 Next 转到 Expressions by Operators 面板。
 双击网格并下滚选择列 EMPLOYEE.SALARY。从运算符选项卡中选择一个运算符(+)。重复这些步骤,直到您到达BONUS,如图 10 所示。选择Enter,然后单击 Finish。

图 10. Expression Builder
 

必要时增加条件和主机变量,如 图 11 所示。例如,
在 Conditions 选项卡中选择 DEPARTMENT.DEPTNO,在 Operator 列中选择 =,选择 Value EMPLOYEE.WORKDEPT,并在 AND/OR 列中选择 AND。
在 Columns 选项卡中网格的第二行,输入 SALARY + BONUS 并在 Operator 选项卡中选择 <=。在 Value 列中选择 Build Expression...,然后选择 Enter。

图 11. 添加条件和主变量
 

在 Expression Types 面板中,选择 Constant-numeric, string or host variable,然后选择 Next。
 在 Constant Expression 面板上,选择单选按钮 String Constant,并选择 Next。
 在 String Constant Builder 面板上,选择 Host variable name 并在文本框中输入 minsal,如图 12 所示。选择 Finish。 保存该语句。

图 12. String Constant Builder
 

执行 SQL 语句

在 Data Project Explorer 下的 SQL 语句(MinSalary.sql)上单击右键,并选择 Run SQL 执行该语句。如果需要一个主变量值,就会打开一个窗口,用来输入主变量的值,如图 13 所示。输入值 50000,按下 Enter,并选择 Finish。

 图 13. 输入变量值的窗口
 

输入视图显示出执行状态和结果。

图 14. 执行状态和结果
 

创建一个 SQL 存储过程

既然您已经创建并执行了一条 SQL 语句,那么是时候创建一个存储过程了。

在工程 EmpAnalysis 中右键单击 Stored Procedures 文件夹,并选择 New > Stored Procedure。New Stored Procedure 向导启动了。(或者,您可以通过 File > New > Stored Procedure。)

 在向导的第一个面板中,选择在 创建一个数据开发工程部分中创建的工程,并选择Next。

 在 Name and Language 面板中,将默认名称改为更有含义的名称,如 MINPAID,并选择 Next。保留语言为 SQL,因为要创建一个 SQL 过程。

 如果还没建立连接,那么向导将提示输入用户标识符和密码。

 在 SQL Statement 面板上,选择 Remove 用以去除默认的 SQL 语句。仍旧在同一个面板上,选择 Import。

 Import SQL Statements 窗口出现了。选择在 生成一条 SQL 语句部分中创建的语句。在窗口的底部选择 Import。验证语句详情面板中出现的语句,并选择 Next。

图 15. 导入 SQL 语句
 

在 Parameters 面板中,验证表格中出现参数 In,如图 16 所示。该参数用作 SQL 语句中的主变量。选择 Next。

图 16. 参数
 

在 Deploy Options 面板中,选择 Deploy 复选框,并选择 Finish。新的过程出现在工程及 SQL 编辑器中。
将 SQL 存储过程部署到目标数据库中。Data Output 视图将显示出存储过程成功部署。

图 17. Data Output 视图
 

编辑 SQL 过程

要编辑一个 SQL 过程:

双击 Data Project Explorer 中的存储过程,以在编辑器中打开。 添加一个 OUT 参数。例如, OUT MINPAY DECIMAL(9,2)

 在 SQL 存储过程 END 语句之前插入一条新的 SQL 语句,如图 18 所示。例如,SELECT MIN(DISTINCT SALARY) INTO MINPAY FROM STAFF

 在编辑区中单击右键,并选择 Save,或者在工具栏上选择 Save 来保存该存储过程。

图 18. 在 SQL 存储过程中插入一条新的 SQL 语句
 

部署存储过程

在数据开发工程中创建的过程可以通过 Deploy Routines 向导部署到目标数据库上。

在创建的 SQL 存储过程上单击右键,上下文菜单启动了。选择 Deploy...。
 Deploy Routines 向导出现了。在 Deploy Options 面板上,接受默认值并选择 Next。
 在 Routine Options 面板上选择 Enable debugging,在下一个步骤中允许过程的调试。选择 Next。
 在 Summary 面板上,选择 Finish。
 检查结果,从 Data Output 视图中部署。

图 19. Data output 视图
 

调试存储过程

要设置断点:

如果存储过程没打开,就在编辑器中打开该存储过程(本例中为 MINPAID)。
 在将要设置期望断点的语句前面双击前置区域(例如,第一个 SELECT 语句)。出现了一个断点。
 调试初始化:

右键单击存储过程(MINPAID),并选择 Debug。一个新的 Stored Procedure Debugger 启动配置打开了。

图 20. Stored Procedure Debugger 启动配置
 

如果该过程有输入参数,那么在 Main 选项卡上,Argument 列表右边选择 Edit...,并输入值。对于此实例,输入工资 50000.00,如图 20 所示。

在 Preference 选项卡上,可以变更过程应返回的最大行数。选择 Apply,然后选择 Debug。

如果提示切换到 Debug 透视图,就选择OK。调试器打开过程源码,并且执行到断点处停止。
在断点处,用户可以单步执行每条可执行语句并在 Variables 视图中观察变量。已经单步执行过代码之后,在调试视图工具栏中选择 Resume 来运行到存储过程的末尾。

执行存储过程

仅仅执行存储过程的测试调用来确保其工作情况而不是对其调试是可能的。要通过执行测试调用来运行存储过程:

选择工程中的存储过程(本实例中是 EmpAnalysis 和 MINPAID),单击右键并选择 Run(或者在 Database Explorer 视图中,方案和存储过程文件夹下选择 Run a procedure,只要列表中的已部署的过程定位了)。

 如果该过程有一个输入参数,那么会出现一个窗口提示您输入参数值。该过程返回的结果集显示在 Data Output 视图中。探究 Output 视图不同选项卡下的值。

 共享一个工程

此部分罗列出在 CVS 中共享一个工程所需的步骤(如果您有权访问 CVS)。Rational Data Architect 还与 IBM Rational ClearCase 充分集成。

启用 Team 功能:
 到 Windows > Preferences处。
 展开 Workbench,并选择 Capabilities。
 确保 Team 及其下面的两项都选上了。
 打开 CVS Repositories 视图:打开 CVS Repository Exploring 透视图,或者 Windows > Show View > Other...> CVS > CVS Repositories。
 添加一个 CVS 存储库:
 在 CVS Repository 视图中,上下文菜单上选择 New > Repository Location.. 并输入:
 Host:主机名
 Repository path:存储库路径
 User:用户标识符
 Password:密码
 选择Save password
 选择 Finish。
 启动 Share Project 向导:
 在 Project Explorer 中选择该工程。
 单击右键快速打开上下文菜单。
 选择 Team > Share Project...。
 选择 CVS 存储库:
 验证选择了 Use existing repository location 和适当的存储库。
 选择 Next。
 为工程输入文件夹和名称:
 选择 Use specified module name。
 输入 test/project-name 。
 选择 Next。
 回顾并确认工程资源:
 为避免确认所有资源,选择并单击右键。在上下文菜单中选择 Add to cvsignore...,且 Add 窗口出现了。选择 OK 来通过名称添加资源。
 单击 Finish。
 总结

Rational Data Architect 是数据建模和集成设计工具,其特定的集成使您通过一个单一的界面建模、构建、测试并部署 DB2 数据库。本教程介绍了有关利用 Rational Data Architect 执行数据库开发的基本概念。然而,本教程中的信息只是对 Rational Data Architect 丰富的功能走马观花。

如果您是一个数据架构师或数据库管理员,我强烈推荐您更详细地研究 Rational Data Architect 的其他特性。这些特性包括发现、映射、建模,和集成设计。要充分了解 Rational Data Architect 提供的所有功能,请下载试用代码并研究此产品的功能。


版权所有:UML软件工程组织