工具:
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的标准。如下图所示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)