数据库的结构(例如表、关系、视图和触发器)称为数据库模式。可使用 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 键来选择多个对象。

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

第 2 课:添加列

现在,就可以向 sales_order_items 表中添加 unit_price 列了。可通过 [Table property] 表访问列的列表来完成此任务。

添加列:

选择 sales_order_items 表。

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

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

单击 [Columns] 选项卡。

即会出现列的列表。

添加新列以存储单价。

单击 [Insert a Row] 按钮。

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

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

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

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

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

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

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

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

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

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

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

第 3 课:检查所做的工作

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

检查新的模式:

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

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

单击 [确定]。

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

第 4 课:保存更改并生成数据库

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

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

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

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

单击 [Save]。

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

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

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

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

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

确保选中了 [Script Generation]。

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

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

单击 [确定]。

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

单击 [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)

);

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

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

新建数据库:

启动 Interactive SQL。

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

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

创建一个空数据库:

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

CREATE DATABASE 'c:\\Temp\\newdemo.db'

提示

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

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

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

连接到新的数据库。

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

输入 DBA 作为用户 ID

输入 SQL 作为口令

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

单击 [确定]。

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

执行该 SQL 语句:

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

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

小结

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

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

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

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

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

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

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

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

校验    是给值设定的约束。

公式    用于得出值的计算。

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

power的数据库设计MySQL_使用 PowerDesigner 设计数据库 - ~~鱼跃~~ - 博客园相关推荐

  1. python读取数据库数据、并保存为docx_Python - 爬取博客园某一目录下的随笔 - 保存为docx...

    1 #coding:utf-8 2 importrequests3 from bs4 importBeautifulSoup4 importMySQLdb5 6 7 defget_html(url): ...

  2. php设计的个人页面成品,PHP仿个人博客(1)数据库与界面设计

    自学PHP大半年多了,断断续续地,但是最终还是坚定了我的想法,将PHP继续下去,所以写这个PHP的博客是为了找个稳定的 PHP工作,不求工资多高,但求一收留之地.我能看懂大部分英语文档,人不蠢,爱学习 ...

  3. Asp.net MVC 仿照博客园的简单网站首页 列表设计

    本来我打算采用ajax提交请求,异步的请求获取数据,但是我发现如果这样的话就会拖慢开发的进度,拖长时间.所以在这篇博客中仿照首页的列表设计其实和左侧列表网站分类采用了同样的方式,通过局部视图的方式呈现 ...

  4. 我的架构设计~用层关系图说说mvc,mvvm,soa,ddd - 张占岭 - 博客园

    我的架构设计~用层关系图说说mvc,mvvm,soa,ddd - 张占岭 - 博客园

  5. 博客园上海地区活动——LinkCoder主题社区第二期:淘宝服务化架构的设计和实践...

    LinkCoder 是由博客园与海丁网联合推出的面向开发者的线下主题社区,希望给开发者们提供更多的线下交流与分享机会.这次是第二期活动. 分享主题:淘宝服务化架构的设计和实践 讲师介绍:王磊,淘宝网的 ...

  6. 博客园客户端UAP开发随笔 -- App UI设计的三大纪律八项注意

    前言 每一个页面都是这个App的门面,尤其是主页面,看上去干净整洁清爽宜人容易操作,那么你的App就成功了一半.这也反映出了你这个开发团队的基本审美素质和设计理念.如果你不是一个团队,而是一个个人开发 ...

  7. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计 - ModestMT.Zou - 博客园...

    [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计 - ModestMT.Zou - 博客园

  8. 我的博客园博客设计更新记录

    本博客的原始皮肤来自:http://www.cnblogs.com/libaoheng/archive/2012/03/19/2406836.html 2013年9月16日20:17:14 添加红色萤 ...

  9. 设计精美的博客园皮肤

    1.为了使设计的博客园不出问题需要将博客园选项中的侧边栏控件-公告勾选 2.在设置里的CSS代码中输入博主的设置,勾选禁用模板默认CSS @keyframes spin3D {from {transf ...

最新文章

  1. lay和lied_lie和lay的区别
  2. vim括号操作(转)
  3. 常见排序算法(C实现)
  4. js高级编程_这位设计师用Processing把创意编程玩到了极致!
  5. 约瑟夫环 java_约瑟夫环Java实现
  6. C语言堆栈入门 —— 堆和栈的区别
  7. Maven - Maven3实战学习笔记(3)使用maven构建Web应用
  8. linux开发工程师前景_Linux就业前景如何?老男孩Linux入门
  9. mac 环境变量 配置
  10. 关于Tomcat和Servlet容器的小结
  11. Winform UI界面设计例程——多线程访问UI控件
  12. 企业邮箱手机怎么设置服务器,如何设置手机企业邮箱
  13. 《《《翻译》》》SUN RGB-D数据集
  14. Atmel Studio 编译no such file
  15. 数据集分享 | IWR1642呼吸心跳数据集
  16. 计算机键盘灯光怎么关闭,笔记本怎么关键盘的灯_笔记本电脑关闭键盘背光的步骤-win7之家...
  17. 消费机 mysql_消费机软件主要构成
  18. 【蜂鸟E203的FPGA验证】Chap.8 Vivado综合与性能分析-Vivado性能分析
  19. 《金融学》笔记 第十章 通货膨胀和通货紧缩
  20. 138.深度学习分布式计算框架-1

热门文章

  1. Xpath的基本使用方法
  2. 如何查看和修改Windows远程桌面端口
  3. 收藏 | 27个Python设计和历史问题
  4. 执行sudo命令时command not found的解决办法
  5. TypeScript 实用工具类型之 Partial 类型
  6. QMessageBox技巧详解
  7. js 实现 前端国际化
  8. 好愚蠢的C程序啊!(也谈费时的文件打开与关闭)
  9. python求相关系数_python pandas 计算相关系数
  10. python k线图和指标_期货k线图基础知识_一眼看清股市状况之用Python绘制K线图