02.第二章 - PB程序设计

Download Report

Transcript 02.第二章 - PB程序设计

第二章 数据建模工具
——PowerDesigner
2.1
PowerDesigner概述
2.2
CDM创建和操作
2.3
PDM创建和操作
实训二 生成数据库
开始放映
2.1 PowerDesigner概述

2.1.1
 2.1.2
 2.1.3
PowerDesigner主要模块
PowerDesigner输出
PowerDesigner工作环境
下页
上页
返回首页
2.1.1 PowerDesigner主要模块
1.
DataArchitect
•需求分析阶段用来绘制实体联系图(ER图);
•在系统的开发进入设计阶段时,实现概念数据模型向物理
数据模型的自动转换;
•根据已存在的数据库反向生成物理数据模型和概念数据模
型。
下页
上页
返回首页
2.
ProcessAnalyst
用来建立数据流图。数据流图描述系统应该如何操作和处
理各种数据,它反映系统的动态特征,是系统的功能模型。
数据流图和概念数据模型结合在一起,构成了系统完整的
逻辑模型。
下页
上页
返回首页
3.
AppModeler
AppModeler模块是快速应用生成器,当系统的逻辑模型建
立之后,可以使用它快速地生成应用的原型。用户可以通
过该原型来判断逻辑模型是否正确,从而为系统的成功开
发奠定良好的基础。
下页
上页
返回首页
4.
ODBC Administrator
ODBC Administrator模块用来管理系统的各种数据源。通过
它,PowerDesigner可以和各种关系数据库管理系统(如
SQL Server、ORACLE、Sybase和INFORMIX等)连接,生
成不同的脚本,或进行逆向工程
下页
上页
返回首页
描述系统中的实体和
实体之间的关系,是
模型的物理实现细节
系统的静态特征
一个OOM包含一系列
的详细说明,依赖于
PowerDesigner可以生成四种不同的模型特定的数据库管理系
包、类、接口和它们
描述系统应该如何操
统这些对象一
的关系。
作和处理各种数据,
1.
概念数据模型 (CDM)
起形成一个应用系统
它反映系统的动态特
的逻辑的设计视图的
征
2.
物理数据模型 (PDM)
类结构。一个OOM本
质上是应用系统的一
3.
面向对象模型 (OOM)
个静态的概念模型
2.1.2 PowerDesigner输出
4.
业务程序模型 (BPM)
下页
上页
返回首页
CDM、PDM、OOM三者转换关系
下页
上页
返回首页
2.1.3 PowerDesigner工作环境
图表区:用于组织模型中的图
浏览区:用树型结构显示各种
表,以图形方式显示模型中各
图表和对象。
对象之间的关系
结果区:用于显示生成、覆盖
和模型检查结果,以及设计环
输出区:用于显示各种操作的
境的总体信息
结果。
下页
上页
返回首页
2.2 CDM创建和操作

2.2.1
 2.2.2
 2.2.3
 2.2.4
 2.2.5
 2.2.6
 2.2.7
CDM基本概念
CDM操作环境
创建CDM
实体(Entity)
关系(Relationship)
域(Domains)
将CDM转换为PDM
下页
上页
返回首页
2.2.1 CDM基本概念
概念数据模型(Conceptual Data Model,简称CDM)是独立于
计算机系统的模型,完全不涉及信息在计算机系统中的表示,
只是用来描述某个特定组织所关心的信息结构。
设计数据库通常是从概念模型开始,也就是常用的ER模型
(实体关系模型)开始。在概念设计这个层次上,不需要考
虑物理实现的具体细节。设计好CDM后,将其转化为物理数
据模型。然后,再根据数据库管理系统的具体特点对物理数
据模型进行定制,完成物理实现。
在PowerDesigner中,可以方便的创建和管理CDM,包括创建
实体关系图、以图形方式组织数据、验证模型设计的正确性、
生成物理数据模型等功能。
下页
上页
返回首页
初步认识CDM
Royalty Schedule
Conceptual Data Model
Model: Tutorial
Package:
Royalty Low Range
Royalty High Range
Royalty Amount
Diagram: Diagram 1
Author: xwang Date : 2002-12-5
Version :
applies to
has
Title
TitleAuthor
TitleAuthor Order
TitleAuthorPercent
Title
Title
Title
Title
Title
Title
Publisher
ISBN
<pi>
Text
Type
Price
Notes
Publication Date
Title Inheritance
publishes
is published by
Publisher ID
<pi>
Publisher Name
City
State
is sold
Author
Author ID
<pi>
Author Last Name
Author First Name
Author Biography
Author Advance
Author Address
City
State
Postal Code
Author Phone Number
correspond to
Nonperiodical
Periodical
Book collection
Periodical Pub Frequency
Periodical Format
Sale
Sale
Sale
Sale
Sale
Sale
Invoice ID <pi>
Date
Amount
Terms
Quantity
takes place in
shows is shown in
Store
Discount
Picture
Picture ID <pi>
Picture
Title Categories
Discount ID
<pi>
Discount Percent
Discount Type
Low Quantity
High Quantity
下页
receives
is given to
上页
Store ID
<pi>
Store Name
City
State
Postal Code
Store Address
返回首页
2.2.2 CDM操作环境
指针(Pointer):选择图形
套索(Lasso):选择某个范围内的图形
抓取器(Grabber):选择并移动所有图形
下页
上页
返回首页
放大(Zoom In):放大图形
缩小(Zoom Out):缩小图形
打开包(Open Packages Diagram):显示某个包
的图形
下页
上页
返回首页
属性(Properties):显示某个图符的属性
删除(Delete):删除图符
包(Package):插入包
下页
上页
返回首页
实体(Entity):插入实体
关系(Relationship):插入关系
继承关系(Inheritance):插入继承
下页
上页
返回首页
关联(Association):插入关联
关联连接(Association Link):插入关联连接
文件(File):插入文本文件
下页
上页
返回首页
注解(Note):插入注解
连接/扩展依赖(Link/Extented Dependency):1.
在图符之间建立连接;2.在对象和注解之间建立
连接;3.在两个支持扩展依赖的对象之间建立扩
展依赖。
标题(Title):插入标题
下页
上页
返回首页
文本(Text):插入文本
直线(Line):画直线
弧线(Arc):画弧线
下页
上页
返回首页
长方形(Rectangle):画长方形
椭圆(Ellipse):画椭圆
圆角矩形(Rounded Rectangle):画圆角矩形
下页
上页
返回首页
折线(Polyline):画折线
多边形(Polygon):画多边形
下页
上页
返回首页
2.2.3 创建CDM
创建一个新的CDM的操作方法
(1)
选择“File”→“New”命令,打开“New”对话框。
下页
上页
返回首页
创建一个新的CDM的操作方法
(2)
选择“Conceptual Data Model”,单击“OK”按
钮,创建新的CDM。此时,图形区产生一个空的CDM
图,并显示工具面板,同时浏览区和输出区也产生相
应的变化。
下页
上页
返回首页
创建一个新的CDM的操作方法
(3) 选择“Model”→“Model Properties(模型属性)”
命令,或者在图形区的空白处单击右键,打开快捷菜
单,选择“Properties”命令,打开“Model Properties”
对话框。
下页
上页
返回首页
创建一个新的CDM的操作方法
(4)
在“Name”输入框中输入模型的名称,在
“Code”输入框中输入模型的代码,单击“确定”按钮。
下页
上页
返回首页
2.2.4 实体(Entity)
1.
创建实体
(1)
单击工具面板中的“Entity”工具,单击图形区任意位置,
出现实体图符,默认的名称为“Entity_n”,n为实体的创建次序。
(2)
单击右键,或者单击工具
面板中的“Pointer”工具,释放实
体工具。
下页
上页
返回首页
1.
创建实体
(3)
双击该图符,或者
指向该图符单击右键,打
开 快 捷 菜 单 , 选 择
“ Properties” 命 令 , 打 开
“Entity Properties(实体属
性)”对话框,输入实体
的名称和代码。此处均为
“Title”。其中,Number表
示该实体个数的估计值,
Generate表示是否生成PDM
中的表。
下页
上页
返回首页
1.
创建实体
(4)
单 击 “ Entity
Properties” 对 话 框
“Attributes”选项卡,设置
该实体的各属性,包括名
称、代码、数据类型等。
其中,“M”表示Mandatory,
即该属性是否为非空;“P”
表示Primary Identifier,即
该属性是否为主实体标识
符;“D”表示Diagram,即
是否在图形中显示该属性。
下页
上页
返回首页
1.
创建实体
(5) 单击“OK”按钮,完成实体创建。
下页
上页
返回首页
2.
实体标识符(Identifier)
实体标识符本身是实体的属性或属性集,它能够惟一
的确定一个实体。CDM中的实体标识符,相当于物理
数 据 模 型 中 的 主 键 ( Primary Key ) 或 者 候 选 键
(Alternate Key)。每个实体至少要定义一个实体标
识符。如果实体中只有一个实体标识符,则该实体标
识符自动被定义为主实体标识符(Primary Identifier)。
定义了Primary Identifier后,会自动创建一个实体标识
符。
下页
上页
返回首页
2.
实体标识符(Identifier)
(1) 打开实体
“Entity Properties”
窗口,单击
“Identifiers”选项卡,
单击空白行,即为
实体增加了一个标
识符,设置标识符
的名称、代码和是
否为主属性。
下页
上页
返回首页
2.
实体标识符(Identifier)
(2) 双击标识符所在
行,打开
“Identifier
Properties(标识符
属性)”对话框,
单击“Attribtures
(属性)”选项卡,
单击“Add
Attributes(增加属
性)”图标,打开
“Selection”对话框,
选择该标识符对应
的一个或多个属性。
下页
上页
返回首页
2.
实体标识符(Identifier)
(3) 单击“OK”按钮,完成标识符创建,在图符中显示为
“<ai>”。
下页
上页
返回首页
2.2.5 关系(Relationship)
1. 建立关系
关系是实体之间的连接,例如在人力资源系统中,员工必须属
于某个团队,因此,实体“员工”和实体“团队”之间就存在
着关系。
下页
上页
返回首页
1. 建立关系
(1) 单击工具面板中的“Relationship”工具,指向实体“Title”,
拖动至实体“Author”上方,即在两个实体之间建立了关系。
关系在实体“Author”处显示有三个接触点,表示一个“Title”
实体可以对应多个“Author”实体,而在“Title”处只有一个接
触点,表示一个“Author”实体只能对应一个“Title”实体,也
就是说一个作者只能写一本书,这不符合实际情况。
下页
上页
返回首页
1. 建立关系
(2) 双击刚才建立的关系的图符,
打开“Relationship Properties(关
系属性)”对话框,单击
“General”选项卡。
(3) 在“Name”输入框中输入
关系的名称,在“Code”输入
框中输入关系的代码,此处均
为“TitleAuthor”。单击
“Detail”选项卡。
下页
上页
返回首页
1. 建立关系
(4) 选择“Many-Many”单选框,
表示关系是“多对多”的。然后
规定实体的角色:“Title to
Author(书对作者)”的角色为
“is written by”,“Author to Title
(作者对书)”的角色是
“writes”。如果选中复选框
“Mandatory”,则“Cardinality
(基数)”会变为“1,n”,表示
该实体至少对应一个另外的实体。
不同基数关系对应的显示图形端
点也不同。
下页
上页
返回首页
1. 建立关系
(5) 单击“确定”按钮,显示模型。
下页
上页
返回首页
2.建立依赖关系
依赖关系表示一个实体在一定程度上由另外一个实体决定,
此时要求每个实体都必须包含一个实体标识符。例如
“Royalty Schedule(版税计划)”实体,因为对于不同的书,
都有不同的版税计划,因此“Royalty Schedule”实体依赖于
“Title(书)”实体。
下页
上页
返回首页
2.建立依赖关系
建立“Royalty Schedule
(版税计划)”实体和
“Title(书)”实体之间的
依赖关系,在
“Relationship Properties”对
话框的“Detail”选项卡中,
选中“Royalty Schedule to
Titile”角色中的“Dependent”
复选框。
下页
上页
返回首页
2.建立依赖关系
依赖关系用三角状符号表示。
下页
上页
返回首页
3.建立支配关系
实体A和实体B之间如果存在一对一的关系,并且只有实体A
存在,才有实体B存在,则实体A和实体B之间存在实体A支配
实体B的关系。例如,“Author(作者)”实体和“Picture
(照片)”实体之间就是这种关系。
下页
上页
返回首页
3.建立支配关系
建立这个支配关系,在
“Relationship
Properties”对话框
“Detail”选项卡中,选
择“Dominate role”下拉
框中的“Author>Picture”选项。
下页
上页
返回首页
3.建立支配关系
支配关系的图形显示
Author
Author ID
<pi>
Author Last Name
Author First Name
Author Biography
Author Advance
Author Address
City
State
Postal Code
Author Phone Number
Picture
is shown in
shows
下页
上页
Picture ID <pi>
Picture
返回首页
4.建立关联实体
在PowerDesigner中,将一个关系转化为一个关联实体
(Associative Entity),这个关联实体将同关系的两个实体相
关联。在此基础上,也可以将实体的属性指派给这个关联实体,
关联实体采用关系的名字。
下页
上页
返回首页
4.建立关联实体
将“Title”实体和“Author”实体之间的关系转化为关联实体
(1) 指向“Title”和“Author”之间的关系图符,单击右键,打开
快捷菜单,选择“Change to Entity”→“Standard”命令。
Author
Author ID
<pi>
Author Last Name
Author First Name
Author Advance
Author Address
City
State
Postal Code
Author Phone Number
0,n
Relationship_8
TitleAuthor
0,n
Relationship_7
1,1
1,1
下页
Title
Title
Title
Title
Title
Title
Title
上页
ISBN
<pi>
Text
Type
Price
Notes
Publication Date
返回首页
4.建立关联实体
将“Title”实体和“Author”实体之间的关系转化为关联实体
(2)双击新生成的关联实体,打开“Entity Properties”对话框,
单击“Attributes”选项卡,单击“Add Data Item”工具或者
“Reuse Data Item”工具,打开“Selection”对话框。
(3)选择适当的属性,作为关
联实体的属性。单击“OK”按
钮
下页
上页
返回首页
5.自反关系
自反关系是实体和其自身的关系,例如实体“Employee(员
工)”之间存在着“Manager(管理)”关系,这就是一个自
反关系。
(1)单击工具面板上的“Relationship”工具。
(2)指向“Employee”实体,拖动至实体外部的空白区域。
(3)单击“Employee”实体,建立自反关系。
下页
上页
返回首页
5.自反关系
自反关系的图形显示
Relationship_1
Employee
Employee Number
First name
Last name
Employee function
Employee salary
<UNDEF>
<UNDEF>
<UNDEF>
<UNDEF>
<UNDEF>
下页
上页
返回首页
2.2.6 域(Domains)
在PowerDesigner中,用户可以使用“用户自定义数据类型”,
称之为“Domains(域)”。域能够帮助确定模型中信息的类型,
使用域可以将同一种信息在不同实体中的表示标准化。
下页
上页
返回首页
1.域的创建---建立“Address”域
(1)选择“Model”→“Domains”命令,打开“List of Domains(域
列表)”对话框。
(2)单击空白行,在
“Name”列中输入域的名
称“Address”,“Data
Type”列中设置数据类型为
“Variable characters”,
“Length(长度)”设为
80。
(3)单击“OK”按钮,完
成域的创建。
下页
上页
返回首页
2.域的使用---在实体“Author”的属性中使用域
(1)双击实体“Author”,打
开“Entity Properties”对话框,
单击“Attributes”选项卡,
在属性“Author Address”对
应行的“Domain”列,展开
下拉列表,选择“Address”
域。
下页
上页
返回首页
2.域的使用---在实体“Author”的属性中使用域
(2)在指定了Domain后,“Data Type(数据类型)”列会自动出
现域的数据类型。如果使用了域之后,又对“Data Type”做了修
改,当单击“应用”按钮或者“确定”按钮之后,将打开确认
窗口,询问用户是否保持数据类型和域之间的不一致。
(3)如果希望在模型中强制使用域的数据类型,可以选择
“Tools”→“Model Options”命令,打开“Model Options(模型选
项)”对话框,在“Domain/Attribute”区域中选择“Enforce nondivergence”复选框。
(4)如果想查看域的使用情况,可以打开域的属性窗口,单击
“Dependencies”选项卡,查看域的使用情况。
下页
上页
返回首页
2.2.7 将CDM转换为PDM
从CDM转化为PDM时,PowerDesigner会自动将CDM中的对象
转化为PDM中的对象。例如,将CDM中的“Entity(实体)”
和“Relationship(关系)”分别转化为PDM中的“Table(表)”
和“Reference(引用)”等。
下页
上页
返回首页
(1)启动PowerDesigner,打开要转化的CDM。
(2)选择“Tools”→“Generate
Physical Data Model”命令,
打开“PDM Generation
Options”选项卡。
(3)输入相关内容,单击
“确定”按钮。
下页
上页
返回首页
2.3 PDM创建和操作

2.3.1
 2.3.2
 2.3.3
 2.3.4
 2.3.5
 2.3.6
 2.3.7
PDM的基本概念
创建和操作PDM
创建表
定义引用
创建索引
创建视图
生成数据库
下页
上页
返回首页
2.3.1 PDM的基本概念
PDM是CDM的物理实现,是需要和Microsoft SQL Server、Oracle
等具体的关系数据库关系系统(RDBMS)打交道的模型。因此,
PDM将比CDM更加具体、详细,并且具有数据库相关性。CDM
和PDM的主要区别是,CDM更接近于实体,更接近平常所见的
事物,而PDM更接近于数据,直接于RDBMS发生联系。在CDM
中实体的属性,而在PDM中对应的是列。
下页
上页
返回首页
2.3.2 创建和操作PDM
1.创建PDM---建立一个名为“student”的PDM
(1)启动PowerDesigner,选择
“File”→“New”命令,打开
“New”对话框,选择
“Physical Data Model”,单
击“OK”按钮,打开“New
Physical Data Model”对话框。
(2)单击“General”选项卡,
在“DBMS”下拉列表中,选
择所使用的数据库管理系统。
此处选择“Microsoft SQL
Server 2000”。单击“确定”
按钮,创建PDM。
下页
上页
返回首页
1.创建PDM---建立一个名为“student”的PDM
(3)创建PDM后,选择
“Model”→“Model Properties”
命令,打开“Model
Properties”对话框。
(4)在该窗口中设置模型的
Name、Code、Comment、
Author和Version等属性。
下页
上页
返回首页
2.操作PDM
对PDM的操作,必须在Workspace(工作区)中进行。将已有的
PDM加入到当前工作区中,只需要在当前工作区中打开PDM就可
以了。如果要从当前工作区中把PDM分离出来,可以在左侧的工
作区浏览树中,指向PDM对应的图标,单击右键,打开快捷菜单,
选择“Detach from Workspace”命令。
下页
上页
返回首页
2.3.3 创建表
创建学生表“s”
列名
数据类型
说明
中文名
主键、非空
学号
sno
char(4)
class
char(20)
班级
sname
char(8)
姓名
sex
char(2)
性别
birthday
datetime
出生日期
address
varchar(50)
地址
telephone
char(20)
电话
email
char(40)
email
下页
上页
返回首页
(1) 单击工具面板上的“Table”工具,单击图形区的空白位置,出
现一个新表的图符,自动命名为“Table_n”,n为新表的序号。
(2) 单击右键,释放“Table”工具。
(3) 双击新表图符,打开“Table Properties”对话框。
下页
上页
返回首页
(4) 单击“Genaral”选项卡,
在“Name”输入框中输入表
的名称,在“Code”输入框中
输入表的代码,“Comment”
为备注,“Owner”为表的所
有者,“Number”为记录数
的估计值,“General”为是否
在数据库中生成该表,
“Type”为表的类型。
下页
上页
返回首页
(5) 单击“Columns”选项卡,
设置表的各个列,包括
Name(名称)、Code
(代码)、Data Type(数
据类型)。其中,“I”表
示Identity,自增列;“P”
表示Primary Key,主键;
“M”表示Mandatory,非
空;“F”表示Foreign Key,
外键。
下页
上页
返回首页
2.3.4 定义引用
引用(Reference)是父表(Parent Table)和子表(Child Table)
之间的连接,它定义了数据库的引用完整性。当两个表通过一个
引用连接时,子表中某一列的值,必须和父表中对应列的某一个
值相等。
例如成绩表,它的“sno”列的值,必须在学生表“sno”列中存在。
即在成绩表和学生表之间,应该存在一个引用,学生表为父表,
成绩表为子表。
下页
上页
返回首页
建立“sc”表和“s”表之间的引用
(1) 在工具面板上选择“Reference”工具。
定义引用时,PowerDesigner会在子表中自动查找和父表主键名称
(2) 将“sc”表的图符拖动至“s”表图符,在两个表之间定义了一
相同的列,建立引用。同时,会把子表中的对应列定义为
个引用。
“Foreign Key(外键)”。
s
sc
(3) 双击新建的引用图符,打开“Reference Properties”对话框,
sno
char(4)
<pk>
sno
char(4) <pk,fk>
在“General”选项卡中定义“Name”和“Code”属性,在“Join”
FK_SC_REFERENCE_S
cno
char(4) <pk>
class
char(20)
score smallint
sname
char(8)
选项卡中定义父表和子表的连接方式。在“Integrity”选项卡中
sex
char(2)
定义引用完整性属性。
birthday
datetime
address
char varying(50)
telephone char(20)
email
char(40)
下页
上页
返回首页
2.3.5 创建索引
1.创建和键连接的索引-建立“s”表的“sno”列的索引
(1) 双击“s”表图符,打
开“Table Properties”对
话框,单击“Indexes”选
项卡。
(2) 双击列表中的一个
空白行,在“Name”列
输入值“s_sno_PK”。
然后双击该行最左端的
箭头,打开“Index
Properties”对话框,单
击“Columns”选项卡。
下页
上页
返回首页
2.创建用户自定义索引-建立“s”表的“sname”列的索引
(1) 双击“s”表,打开“Table
Properties”对话框,单击“Indexes”
选项卡,单击列表中的空白行,在
“Name”和“Code”输入框中输入值
“s_sname_IDX”。
(2) 双击该行最左端的箭头,打开
“Index Properties”对话框,单击
“Columns”选项卡。单击“Add
Columns”工具,打开“Selection”对
话框,选中sname列对应的复选框。
(3) 单击“OK”按钮,完成索引
的创建。
下页
上页
返回首页
2.3.6 创建视图
视图是以另外一种方式查看一个或多个表的数据,由一个或
多个表的列的子集组成,可以为每个视图定义SQL语句。
例:定义一个用来列出每个学生每门课程的成绩的视图,由
“s”表中的“sname”列、“c”表中的“cname”列和“sc”表中
的“score”列组成。
下页
上页
返回首页
(1) 选择工具面板上的“View”工具,单击图形区的空白处,
View_1
出现新建视图的图符,自动命名为“View_n”,其中n为序号。
sname
(2) 双击该视图图符,打开
“View Properties”对话框,单
cname
击“SQL Query”选项卡,输
入SQL语句。
score
(3) 单击“确定”按钮,完成
s
视图的创建。
c
sc
下页
上页
返回首页
2.3.7 生成数据库
PDM模型可以根据需要,转化为不同RDBMS的数据库。一般
采取的方法是,首先生成相应的RDBMS的脚本,然后再执行
该脚本,生成数据库。
例:将示例中的PDM模型转换为SQL Server 2000的数据库脚
本。
(1) 启动PowerDesigner,打开PDM。
下页
上页
返回首页
(2) 选择
“Database”→“Generate
Database”命令,打开
“Database Generation”对话
框。
(3) 在“Generation”选项中选
择单选框“Script generation”,
在“Directory”输入框中输入
脚本文件的存放位置,在
“File”输入框中输入生成脚
本文件的名称。选择“One
file on”复选框,表示只生成
一个文件。
下页
上页
返回首页
(4) 单击“Selection”选项卡,列出当前模型中包含的各种元素,
从中选择需要生成到数据库中的元素。。
(5) 单击“确定”按钮,在默认情况下,PowerDesigner会自动
对模型的正确性进行检查,同时在“Result List”对话框中显示
检查的结果。
(6) 在SQL Server 2000中新建数据库,然后执行生成的脚本
文件,生成数据库中的表和其他数据库对象,完成数据库
的创建。
下页
上页
返回首页
实训二 生成数据库
实训名称:生成“学生选课管理系统”数据库
目的要求:掌握CDM、PDM的建立方法和数据库的生成方法
操作步骤:
(1) 假设“学生选课管理系统”ER模型如教材图1-4所示,
建立该模型的CDM模型。
(2) 将CDM模型转换为PDM模型。
(3) 将PDM模型转换为SQL Server 2000的数据库student。
结束
放映
下页
上页
返回首页