0
点赞
收藏
分享

微信扫一扫

使用PowerDesigner设计数据库

素的盐 2022-02-21 阅读 104


 ​关于 PowerDesigner

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


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


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

使用PowerDesigner设计数据库_database

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


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

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


在阐述 PowerDesigner 时对示例数据库进行了修改,以改进示例数据库的设计。


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


启动 PowerDesigner:


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


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

使用PowerDesigner设计数据库_脚本_02


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] 对话框。

使用PowerDesigner设计数据库_generation_03


3.单击 [Columns] 选项卡。


即会出现列的列表。

使用PowerDesigner设计数据库_数据库_04


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 的新列。

检查所做的工作


PowerDesigner 还可用于快速检测新模型中的数据库设计错误。


检查新的模式:


从 [Tools] 菜单中选择 [Check Model]。


此时,就会出现 [Check Model Parameters] 对话框。可以使用缺省参数。


单击 [确定]。


此时,在 [Result List] 中就会显示 [Check Model] 的结果。


保存更改并生成数据库

    在 PowerDesigner 中,将描述数据库设计的物理组件(包括表和列)的模型称为物理数据模型 (Physical Data Models, PDM)。PowerDesigner 将这些模型存储在文件(扩展名为 .PDM)中。


保存物理数据模型 (PDM):


1.从 [File] 菜单中选择 [Save As]。


2.键入文件名 c:/Temp/NewDemo.pdm。


3.单击 [Save]。


可以使用 PowerDesigner 生成一个 SQL 脚本,该脚本用于实施模型的所有组件。然后,使用 SQL 脚本生成一个数据库。


生成 SQL 脚本以新建数据库:

1.从 [Database] 菜单中选择 [Generate Database]。


此时,就会出现 [Database Generation] 对话框:

使用PowerDesigner设计数据库_database_05


2.在 [Directory] 字段中键入 c:/Temp/,并在 [File Name] 字段中键入 NewDemo.sql。


3.确保选中了 [Script Generation]。


4.单击 [Database] 选项卡,并确保选中了 [Create Database]。


浏览其它选项卡,以查看控制所生成脚本的许多其它属性的选项。


5.单击 [确定]。


创建脚本后,就会出现 [Result] 对话框。


6.单击 [Edit] 以查看脚本。


检查脚本中是否反映了所做的更改。例如,检查下面显示的新 office 表的定义。


/* ========================================= */

/* Table: office */

/* ========================================= */

create table office

(

id integer not null

default autoincrement

check (

id >= 100),

name char(15) not null,

street char(30) not null,

city char(20) not null,

state char(2) not null,

zip char(5) not null,

phone char(10) ,

fax char(10) ,

primary key (id)

);

7.完成后,关闭该对话框:在 [Result] 对话框中,单击 [Close]。


现在,就可以从 Interactive SQL 新建数据库了。


新建数据库:


1.启动 Interactive SQL。


2.从 [开始] 菜单中,选择 [程序] > [SQL Anywhere 9] > [Adaptive Server Anywhere] > [Interactive SQL]。


使用 ASA 9.0 Sample ODBC 数据源连接到示例数据库。


3.创建一个空数据库:


执行下面的 SQL 语句,用适当的目录替代语句中的目录。


CREATE DATABASE 'c://Temp//newdemo.db'提示

要在 Interactive SQL 中执行 SQL 语句,请在 [SQL 语句] 窗格中键入或复制该语句,然后按 F5 键。或者,从 [SQL] 菜单中选择 [执行]。


4.关闭与示例数据库的连接。


从 [SQL] 菜单中选择 [断开连接]。


5.连接到新的数据库。


从 [SQL] 菜单中选择 [连接]。


输入 DBA 作为用户 ID


输入 SQL 作为口令


单击 [数据库] 选项卡,然后在 [数据库文件] 框中输入新数据库文件的完整路径和文件名。


单击 [确定]。


6.使用 read 语句。切记,此语句要求用双引号将文件名引起来。


执行该 SQL 语句:


READ "c://Temp//newdemo.SQL"

可以使用这些基本步骤来修改其它数据库。


小结

​此仅介绍 PowerDesigner 的一些基本特性。实际上,它可以处理数据库模式的全部设计或修改,其中包括所有的表、视图、索引、引用、触发器和过程。



​可以使用其它特性大大简化大型数据库的设计任务。例如,可以指定域。域包含特定类型的数据,例如电话号码。域与某种数据类型关联,但域更具体一些。例如,可以创建标识号域。当需要表中的某个标识号时,可以将该列与标识号域关联起来。同时,自动关联所有与该域关联的属性和检查。


域可减少重复性的定义。这样,不仅减少了您的工作量,而且还降低了误用其它类型定义或检查过程的可能性。不应简单地将列标识为一个整数,而是指定该列包含的具体数据类型。该数据类型的所有实例共享相同的定义。


有关详细信息,请参见使用域。


业务规则

业务规则以书面的形式来表达业务运营的方式。例如,the order shipped date must be greater than or equal to the order date(订单交货日期必须晚于或等于订单日期)就是一条业务规则。


业务规则共分为四个类别:


定义 表示对象的固有属性。[定义] 通常用于描述实体。


事实 表示肯定或存在。[事实] 通常用于描述关系。


校验 是给值设定的约束。


公式 用于得出值的计算。


业务规则的使用很方便,因为它们与客户要求数据库执行的任务直接相关。通过记录业务规则并将它们与特定对象关联起来,可以确保数据库执行所需的任务。


举报

相关推荐

0 条评论