关于 PowerDesigner

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

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

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

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

可以使用参照来确定这些表之间的关系,即用一个表中的外键来标识另一个表中的特定行。参照可以表示多对一和一对多关系。多对多关系需要两个参照和另外一个表。
入门
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。
添加列
现在,就可以向 sales_order_items 表中添加 unit_price 列了。可通过 [Table property] 表访问列的列表来完成此任务。

步骤如下:

1.选择 sales_order_items 表。

2.从 [View] 菜单中选择 [Properties]。

即会出现 [Table Properties] 对话框。


3.单击 [Columns] 选项卡。

即会出现列的列表。


4.添加新列以存储单价。

单击 [Insert a Row] 按钮。

此时,在行首就会出现一个箭头,并显示使用缺省名称 (Column_6) 的列。

5.在名称列中键入 unit_price。将此名称自动作为代码进行复制。

在 [Data Type] 列,从下拉列表中选择 [Numeric]。

[Data] 字段可能因太窄而无法查看。可以拖动列的两侧以扩展列。

6.列属性 P、F 和 M 分别表示 [主键]、[外键] 和 [强制](解释如下):

[主键] 指定的列的值唯一地标识表中的行。

[外键] 指定的列取决于另一个表中的主键列,并且是从该主键列迁移的。

[强制] 要求必须给指定的列赋值。

7.选择 [强制],然后单击 [OK]。

8.检查所做的更改对数据库图示产生的影响。

现在,sales_order_items 表包含一个称为 unit_price 的新列。