技术开发 频道

使用PowerDesigner设计数据库

数据库的结构(例如表、关系、视图和触发器)称为数据库模式。可使用 SQL 语句创建这些元素并按照所需的方式进行排列,但是如果不使用图形工具,则可能会造成混淆。

PowerDesigner 提供了一种数据库结构的图形表示。只需绘制新表或输入信息,即可更好地修改数据库的结构或创建全新的表。在设计完成后,PowerDesigner 可生成一个 SQL 脚本以生成新的数据库。

下面的图示显示了示例数据库的结构,可以使用 PowerDesigner 方便地创建此图示。

数据库的性能主要取决于设计。一般地,应将不同类型对象的信息(例如雇员或产品)存储在单独的表中。

可以使用参照来确定这些表之间的关系,即用一个表中的外键来标识另一个表中的特定行。参照可以表示多对一和一对多关系。多对多关系需要两个参照和另外一个表。

有关数据库设计的详细信息,请参见设计数据库。

若要了解 PowerDesigner 的详细信息,请单击 PowerDesigner 主窗口工具栏中的 [Help] 以访问下面三本书:PowerDesigner General Features Guide、PowerDesigner PDM User''s Guide 和 PowerDesigner Report User''s Guide。

要获得更多 PowerDesigner 教程,请打开 PowerDesigner。从 [Help] 菜单中选择 [Where to Start]  >  [PDM Getting Started]。此操作可访问 Physical Data Model Getting Started 一书。

PowerDesigner 可以从用于创建数据库的脚本文件读取数据库的结构。但是,通常更简便的方法是:从 PowerDesigner 连接到数据库并使用反向工程特性直接抽取设计。

下面的教程将示例数据库作为起点。此教程在阐述 PowerDesigner 时对示例数据库进行了修改,以改进示例数据库的设计。

当前,始终从 product 表中读取每种产品的价格。因此,如果更新价格,就会相应地更改以前所有订单上该产品的销售价格。在 sales_order_items 表中添加 unit_price 列,即可解决此问题。这样,就可以分别存储每个客户的实际销售价格。product 表中的价格记录当前的列表价格。

启动 PowerDesigner:

从 [开始] 菜单,选择 [程序]  >  [SQL Anywhere 9]  >  [PowerDesigner 9]  >  [PowerDesigner]。

此时,就会出现 PowerDesigner 主窗口:


 

PowerDesigner 主窗口包含对象浏览器(左侧)和输出窗口(底部)。

从 [File] 菜单中选择 [New]。

即会出现 [New] 对话框。

在 [New] 对话框中,选择 [Physical Data Model],然后单击 [OK]。

即会出现 [New Physical Data Model] 对话框。

在 [General] 选项卡上,从下拉列表中选择 [Sybase AS Anywhere 9]。

对剩余选项使用缺省设置,然后单击 [OK]。

此时,在浏览器和标题栏中就会出现模型名称 PhysicalDataModel_1。

在本节中,可通过对示例数据库执行反向工程,以便给其生成一个物理数据模型 (PDM)。

对数据库执行反向工程:

单击 diagram 窗口(PowerDesigner 中心的大窗格)。

从 [Database] 菜单中选择 [Reverse Engineering Database]。

即会出现 [Database Reverse Engineering] 对话框:

确保选中了 [Using an ODBC Data Source],并且数据源是 [ASA 9.0 Sample]。

如果未出现 [ASA 9.0 Sample],请单击数据源字段右侧的图标。此时,就会出现 [连接到 ODBC 数据源] 对话框。选择 [计算机数据源],然后从下拉列表中选择 [ASA 9.0 Sample]。输入用户 ID DBA 和口令 SQL。单击 [连接] 以返回到 [Database Reverse Engineering] 对话框。

在 [Database Reverse Engineering] 对话框中,单击 [OK]。

此时,就会出现 [ODBC Reverse Engineering] 对话框:

该对话框的下半部分有 7 个复选框,用于选择键、索引等。这些都是反向工程选项。确保选中除 [Permissions] 复选框(缺省值)外的所有选项。还应确保已选中所有的表(也是缺省设置)。

单击 [OK] 以进行数据库反向工程。

示例数据库的图形表示将出现在图示窗口中,模型对象将出现在浏览器中:

从 [Tools] 菜单中选择 [Display Preferences] 以查看修改显示的方式。单击左侧的每个选项以查看显示首选项参数页。单击每页底部的 [Help] 以查看全部信息。

查看图示。可以使用 F6 键和 F7 键放大和缩小图示以便于查看。

数据库中的每个表均由一个框表示。表的名称显示在框的顶部。其下面是列的列表。带有下划线的列名是该表主键的一部分。每个列的数据类型显示在右侧。在反向工程后,某些表可能会发生重叠。从 [Symbol] 菜单中,选择 [Auto-Layout] 重新对其进行排列。

这些表之间的引用是用箭头表示的。这些箭头指向父表,即包含主键的表。在每个标识引用的箭头旁边有一个等式。

重新排列这些表以便于查看图示。若要重新排列,请用鼠标拖动这些表。引用箭头自动随这些表一起移动。可通过在单击时按下 Shift 键来选择多个对象。

下面就是一种可能的排列方式:

 

0