如何用Powerdesigner的PDM生成数据库

如何用Powerdesigner的PDM生成数据库,第1张

工具:

Sybase PowerDesigner 15.1

Microsoft SQL Server 2005

第一步概要设计:

打开PowerDesigner软件,设计“概念数据模型”(ConceptualData Model):

点击workspace 右键---》New—>Conceptual DataModel,

d出如下界面:

设计表、表结构:

在设计属性(字段)的时候,三个字母(M、P、D)分别表示:

M:是否为空;(√表示不允许为空)

P:是否为主键;

D:是否在该软件的视图中显示

第二步:物理设计

将“概念数据模型”设计的表转换为“物理数据模型”(PhysicalData Model),实际上是从“概要设计”转换为“详细设计”,即对表的具体实现。

将概要设计模板转换为物理设计

选择“Tools”-->“Generate Physical DataModel…”即可。

然后选择你的DBMS.

点击“确定”按钮以后,就产生了对应“SQL Server 2005”数据库的表、属性、关系的具体实现。

这时就会有一个物理设计的模板出现,将你在概要设计时的实体都转换成具体的表。

第三步:在SQL Server2005中手动创建数据库(也可以用SQL创建库,pd可以将我们的表设计都转换成SQL)

需手动在SQL SERVER2005中创建您的数据!如:“Students“,此过程省略…

第四步:在数据源ODBC中配置用户数据源

第五步:在SQL Server2005中自动创建表结构

首先:根据“物理数据模型”(Physical Data Model)自动建立相应的SQL语句:

其次:执行其创建的SQL语句文件,将数据表结构自动创建到SQL Server 2005数据库中:

完成以上步骤后,刷新SQL Server 2005数据,将会看到你所创建的相关表结构。

首先,这是我从我自己的希赛BLOG上搬来并稍稍修改滴,本人自从上了csdn,感觉还是把blog搬到csdn比较好!嘿嘿!下面是正文:

pdm做好后,最终是要将其转化为数据库实体的。这里pdm想必大家都知道是什么文件,对的,英文是physiyc data model 也就是物理数据模型。

1.确认当前Powerdesigner设置的dbms是否正确,即是否是我们要生成的数据库类型,我在这里使用的是sqlserver2000:

Powerdesigner->数据库->更改当前dbms,选择您的数据库类型。

2.配置Powerdesigner与数据源的连接

Powerdesigner->数据库->配置连接->用户dsn(或系统dsn)->选择、添加您的数据源

3.连接

Powerdesigner->数据库->连接->设置好您刚才建立的dsn确定。

OK,设置好连接后我们就可以将pdm生成sql语句了。

4.数据库生成

Powerdesigner->数据库->生成数据库->配置好(默认就可以)后选择确定就好了。

拿到sql脚本语句,大家都知道应当如何做了吧,放到sql查询分析器里执行吧。

Powerdesigner逆向工程从现有数据库生成PDM

在数据建模过程中,我们建立概念数据模型,通过正向工程生成物理数据模型,生成数据库建库脚本,最后将物理数据模型生成关系数据库,现在反过来,通过逆向工程将关系数据库,生成物理数据模型。

优点:

在丢失数据模型或者数据库模型同现有的数据库不一致,可以通过该方法生成使用中数据库的模型

缺点:

还原回的模型中,可能会没有中文注释,没有表外键对应关系(字段还有,索引关系没了)

前提:

1,确认要生成模型的数据库是最新的,并且可以使用

2,安装Powerdesigner软件

具体 *** 作步骤:

一,建立ODBC数据源

1, 打开系统ODBC数据源,位置“控制面板--管理工具--数据源(ODBC)

2,选择系统DSN,点击添加按钮,会d出如下界面,选择与数据库相匹配的驱动程序

3,点击完成,d出数据源名称(自定),和选择你要连接的数据库,如下图所示

4,选择确定后,该数据源建立成功,可以双击该数据源名称进行连接测试,如下图所示

5,至此数据源建立完成,当然这些也可以不用在这里建立,在powerdesigner里也可以建立,建立方法为

选择Database->configure connections,转到system dsn标签,点击Add按钮,选数据库类型DB2,点击完成。显 示如下:输入DataSource Name“PDMTest”;输入ServerName“Database”, 配置完成。如下所示:

二,在Powerdesigner中逆向生成

1,打开Powerdesigner工具,创建一个PDM文件,选择与之匹配的数据库类型“ibm db2 udb 8.x common server”。创建方法为:右键点击左侧面板中的WorkSpace---->new------>physical data nodel ,在DBMS中选择你要的数据类型,选择好后点击确定,则新建立了一个工作空间。

2,选择Database菜单下的Reverse Engineer Database,d出Database Reverse Engineering对话框,选Using an ODBC data source选ODBC数据源“s2ms”,如下图所示:

3,点击确定后,显示此数据库中所有表、视图、用户(这个选择一下该数据库的用户)。根据需要选择后,转换成pdm。图示如下

4,选择好后,点击OK,则生成模型。

三,利用脚本生成模型

如果你不光有个正在使有的数据库,你还有一下建立库的脚本,那你发财了!因为用.sql的脚本生成的模型,就不存在用数据库生成的缺点了,具体 *** 作如下:

二、 通过SQL脚本逆向工程生成PDM

1、 数据库SQL脚本文件crebas.sql。下为脚本实例:

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

/* Database name: PhysicalDataModel_1 */

/* DBMS name: ORACLE Version 9i */

/* Created on: 2003-07-13 10:49:08 */

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

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

/* Table: "class" */

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

create table "class" (

"classID" NUMBER(2) not null,

"className" VARCHAR2(24),

constraint PK_CLASS primary key ("classID")

)

/

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

/* Table: "student" */

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

create table "student" (

"studentID" NUMBER(10) not null,

"studentName" VARCHAR2(4),

"classID" NUMBER(2),

constraint PK_STUDENT primary key ("studentID")

)

/

alter table "student"

add constraint FK_STUDENT_REFERENCE_CLASS foreign key ("classID")

references "class" ("classID")

/

2、 还是创建一个pdm,选择Database--->Reverse Engineer Database,选择Using files。

3、 看到由脚本自动生成相关的PDM如下所示:

四,生成模型后要导出数据库建库脚本

导好的模型,当然是用来修改和导出建库脚本的, *** 作方法如下

1,选择database--->generate databased出如下窗口

在用户的none中选择数据库用户,同时可选要导出的表,最后点击确定,如果不能正常生成脚本提示模型错误,则在上图中的options中将check modle 的选项去掉,点击确定,生成sql脚本,

这时生成的脚本不要着急去用,因为可能是有问题,用记事本或其它工具打开这个脚本,你会发现在所属名上也就是s2ms上都会加上""号,用Ctrl+H,将所有"替换为空,就大功告成了

转载

在powerBuilder中新建一个Physical Data Model,在其中新建一个用户表,信息如下图所示:

此时的SQL语句可从其中的Preview视图中得到,如下图所示:

这个时候生成的sql语句是没有注释的,而且sql语句可能也不是适合自己所对应的数据库语言。此时可以通过以下方法来生成注释并且选择所需的数据库语言。

1、为sql生成注释, *** 作如下,我用的是PowerDesigner12.5,在其中选择Tools----》Excute commands-----》Edit/Run Script打开的窗口中添加以下信息

'****************************************************************************** '* File: name2comment.vbs '* Purpose: Database generation cannot use object names anymore ' in version 7 and above. ' It always uses the object codes. '' In case the object codes are not aligned with your ' object names in your model, this script will copy ' the object Name onto the object Comment for ' the Tables and Columns. ''* Title: '* Version: 1.0 '* Company: Sybase Inc. '******************************************************************************

Option ExplicitValidationMode = TrueInteractiveMode = im_Batch

Dim mdl ' the current model

' get the current active model Set mdl = ActiveModel If (mdl Is Nothing) ThenMsgBox "There is no current Model "ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) ThenMsgBox "The current model is not an Physical Data model. "Else ProcessFolder mdl End If

' This routine copy name into comment for each table, each column and each view ' of the current folder Private sub ProcessFolder(folder) Dim Tab 'running table for each Tab in folder.tables if not tab.isShortcut then '把表明作为表注释,其实不用这么做 tab.comment = tab.name Dim col ' running column for each col in tab.columns '把列name和comment合并为commentcol.comment= col.name nextend ifnext

Dim view 'running view for each view in folder.Views if not view.isShortcut then view.comment = view.name end ifnext

' go into the sub-packages Dim f ' running folder For Each f In folder.Packages if not f.IsShortcut then ProcessFolder f end ifNextend sub

点击run后,可以看到刚刚的preview视图窗口中已经如下图所示

2、更换数据库sql语句。

选择Database---》change current DBMS,在DBMS中选择对应的数据库,如Microsoft SQL Server 2005,点击确定后,然后选择Database---》Generate Database选项,在d出的窗口中选择生成sql文件的保存路径,点击确定,则可看到生成的sql语言完全是按照sqlserver2005的标准。如下图所示:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9943785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存