SQL SERVER的逆向工程,将数据库导入到PowerDesigner中
使用PowerDesigner 设计SQL Server 数据库

使用PowerDesigner 设计SQL Server 数据库工具:Sybase PowerDesigner 12.5Microsoft SQL Server 2005第一步:概念数据模型打开PowerDesigner 软件,设计“概念数据模型”(Conceptual Data Model),它通常用在概要设计阶段。
设计表结构注意:如果Palette(工具面板)没有显示,可以在工具栏--> 右键--> 选择“Palette”(打勾选中)设计结果如下:在设计属性(字段)的时候,三个字母(M、P、D)分别表示:M:是否为空;(√表示不允许为空)P:是否为主键;D:是否在该软件的视图中显示;添加“Relationship” 关系时,请注意:1、在所有实体对象中,属性的取名不能重复。
2、当添加引用完整性时,外键表不必添加主键表的主键字段作为外键。
因为,在添加“Relationship”关系之后,再转换为物理模型以后,外键表将自动添加外键字段列。
3、在添加“Relationship” 关系时,起始点实体默认为主键表,结束点实体默认为外键表。
当然,可以在“Relationship” 中改变。
第二步:物理数据模型将“概念数据模型”的相关设计转换为“物理数据模型”(Physical Data Model),相当于从“概要设计”转换为“详细设计”,即对表和关系的具体实现。
选择“Tools”-->“Generate Phys ical Data Model . . .”即可。
然后选择SQL Server 2005 数据库管理软件:点击“确定”按钮以后,就产生了对应“SQL Server 2005”数据库的表、属性、关系的具体实现。
在PowerDesigner 中添加约束1> 查看或设置属性(字段)的相关约束2> 设置“标识列”(自动增长)3> 设置“默认值”4> 设置“Check 约束”5> 设置唯一索引概念数据模型与物理数据模型中的一些细节区别:1> 在概念模型中,不要添加表的相关约束,应该在物理模型中添加表的相关约束;2> 只有在物理模型中,PowerDesigner 才会显示“Database”菜单项。
powerdesigner创建数据库的流程

powerdesigner创建数据库的流程摘要:1.PowerDesigner 简介2.PowerDesigner 创建数据库的流程2.1 连接数据库2.2 创建概念数据模型2.3 创建物理数据模型2.4 生成数据库正文:一、PowerDesigner 简介PowerDesigner 是由PowerSoft 公司开发的一款用于数据库设计和建模的软件,广泛应用于各种数据库管理系统,例如SQL Server、Oracle、MySQL 等。
使用PowerDesigner 可以帮助数据库管理员和开发人员更高效地设计和创建数据库结构、表、字段等元素,同时支持数据模型的逆向工程和数据迁移。
二、PowerDesigner 创建数据库的流程1.连接数据库首先打开PowerDesigner 软件,选择“开始”菜单中的“Management, SQL Server, 2008”命令,打开“SQL ServerMana gement Studio”窗口。
然后使用Windows 或SQL Server 身份验证建立连接。
在“对象资源管理器”窗口中展开服务器,选择“数据库”节点右键单击,从弹出的快捷菜单中选择“新建数据库”命令。
2.创建概念数据模型在PowerDesigner 中,首先需要创建概念数据模型,该模型包含实体、属性和关系等元素。
创建概念数据模型的方法如下:- 在“对象资源管理器”窗口中选择“Conceptual”模式。
- 右键单击空白区域,选择“Create New Conceptual Model”命令创建一个新的概念数据模型。
- 在弹出的对话框中为新创建的数据模型命名,并选择合适的数据类型。
3.创建物理数据模型在概念数据模型的基础上,需要创建物理数据模型,该模型包含表、字段、索引等元素。
创建物理数据模型的方法如下:- 在“对象资源管理器”窗口中选择“Physical”模式。
- 右键单击空白区域,选择“Create New Physical Model”命令创建一个新的物理数据模型。
SQL Server数据导入导出操作指南

SQL Server数据导入导出操作指南数据导入导出目的:当我们要把数据库中的某个表导到另一个数据库中或者导到磁盘上时,我们就要进行数据导入导出的操作。
(由于导出操作本质上是导入的逆过程,所以本文档将以导出操作进行重点讲解)(一)数据的导出在进行数据导出前,请先确保Sql server服务器端 Sql Server agent服务是否开启(包括源和目的),只有服务器端的Sql Server agent服务开启才能进行如下述的数据导出工作。
第一步:打开Sql企业管理器,选择你所要导出的数据库,并且点鼠标右键,选择“所有任务”里的“导出数据”选项,第二步: 选择“下一步”第三步:选择你所要导出的数据源的格式,数据源的服务器的名称,数据库登陆的验证模式,和将要进行数据导出的数据库。
(1)如果你要把一个表数据导出到文本文件时,你要在数据源中选择“文本文件”,(2)如果是要把一个数据库中的表导到另一个数据表中,你要在数据源中选择“用于SQL SERVER 的MICROSOFT OLE DB 提供程序”第四步:选择“下一步”,同样地,选择你所要导入的目的地格式,(1)如果你要导成文本格式时,你要在“目的”中选择文本文件,之后会出现如下窗口……并且选择你要把此文本导到的路径位置,选择“下一步”再选择“下一步”继续“下一步”这样就完成了把数据表导成文本文件的操作.(2)如果你想将表导到另一个数据库中时,你要在目的中选择“用于SQL SERVER的MICROSOFT OLE DB提供程序”,同时指定目的地的服务器的名称,目的地的数据库登陆的验证模式,和将要导入数据的数据库名。
第五步:选择“下一步”,然后指定是从数据源复制一个或多个表/视图,还是复制查询结果.(有三个选项,本文档以第一个为例进行讲解)第六步:选择“下一步”然后在要进行导出的表前打上钩(源),同时也选择你要把此表导到目的地的方式,(1)当你在目的中选择的表名在目的数据库中不存在时,选择下一步,出现如下窗口……………………..选择“下一步”再选择“完成”这样就把一个源中的表导到目的数据库中.(2)当你在目的中选择的表名在目的数据库中已经存在时,点击转换控键,出现如下窗口出现三个选项.选择第一个选项(创建目的表),表示会在目的数据库中重新建一个源数据表,并把已经存在的表删除.选择第二个选项(删除目的表中的行),表示会把已经存在的表中的内容删除(表的视图和索引不变),并从源数据表的内容重新导到此表中。
【转】解决PowerDesigner反向工程没有注释(备注)(SQLServer2008)。。。

【转】解决PowerDesigner反向⼯程没有注释(备注)(SQLServer2008)。
⼀、SQL Server2008解决PowerDesigner 反向⼯程没有注释(备注)(SQL Server2008)部分转载⾃:1. 列注释原来代码:{OWNER, TABLE, S, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, DEFAULT, ExtIdentitySeedInc, COMMENT, ExtCollation, ExtIdtNotForReplication, ExtDeftConstName, Sparse, FileStream, ExtRowGuidCol}select,,c.column_id,,case when c.system_type_id in (165, 167, 231) and c.max_length = -1 then + '(Max)' else end,c.precision,case (c.max_length) when -1 then 0 else case when c.system_type_id in (99, 231, 239) then (c.max_length/2) else (c.max_length) end end as colnA,c.scale,case(c.is_computed) when 1 then convert(varchar(8000), (select z.definition from [%CATALOG%.]puted_columns z wherez.object_id = c.object_id and z.column_id = c.column_id)) else '' end as colnB,case(c.is_nullable) when 1 then 'NULL' else 'NOTNULL' end,case(c.is_identity) when 1 then 'identity' else '' end,case when(er_type_id <> c.system_type_id) then (select from [%CATALOG%.]sys.types d where er_type_id =er_type_id) else '' end as colnC,convert(varchar(8000), d.definition),case (c.is_identity) when 1 then convert(varchar, i.seed_value) + ', ' + convert(varchar, i.increment_value) else '' end as colnD,(select convert(varchar(8000), value) from ::fn_listextendedproperty(NULL, 'user', , 'table', , 'column', ) where name = 'MS_Description') as colnE,c.collation_name,case (i.is_not_for_replication) when 1 then 'true' else 'false' end,,case(c.is_sparse) when 1 then 'true' else 'false' end,case(c.is_filestream) when 1 then 'true' else 'false' end,case(c.is_rowguidcol) when 1 then 'true' else 'false' endfrom[%CATALOG%.]sys.columns cjoin [%CATALOG%.]sys.objects o on (o.object_id = c.object_id)join [%CATALOG%.]sys.schemas u on (u.schema_id = o.schema_id)join [%CATALOG%.]sys.types t on (er_type_id = c.system_type_id)left outer join [%CATALOG%.]sys.identity_columns i on (i.object_id = c.object_id and i.column_id = c.column_id)left outer join [%CATALOG%.]sys.default_constraints d on (d.object_id = c.default_object_id)whereo.type in ('U', 'S', 'V')[ and = %.q:OWNER%][ and =%.q:TABLE%]order by 1, 2, 3解决⽅案:在PD的 tools-->resources-->dbms-->sql server 2008打开DBMS属性窗⼝,在general选项卡中选择Microsoft SQL Server 2008-->script-->objects-->column-->SQLlistquery修改其中的内容为:{OWNER, TABLE, S, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, DEFAULT, ExtIdentitySeedInc, COMMENT, ExtCollation, ExtIdtNotForReplication, ExtDeftConstName, Sparse, FileStream, ExtRowGuidCol}select,,c.column_id,,case when c.system_type_id in (165, 167, 231) and c.max_length = -1 then + '(Max)' else end,c.precision,case (c.max_length) when -1 then 0 else case when c.system_type_id in (99, 231, 239) then (c.max_length/2) else (c.max_length) end end as colnA,c.scale,case(c.is_computed) when 1 then convert(varchar(8000), (select z.definition from [%CATALOG%.]puted_columns z wherez.object_id = c.object_id and z.column_id = c.column_id)) else '' end as colnB,case(c.is_nullable) when 1 then 'NULL' else 'NOTNULL' end,case(c.is_identity) when 1 then 'identity' else '' end,case when(er_type_id <> c.system_type_id) then (select from [%CATALOG%.]sys.types d where er_type_id =er_type_id) else '' end as colnC,convert(varchar(8000), d.definition),case (c.is_identity) when 1 then convert(varchar, i.seed_value) + ', ' + convert(varchar, i.increment_value) else '' end as colnD,convert(varchar(8000),e.value),c.collation_name,case (i.is_not_for_replication) when 1 then 'true' else 'false' end,,case(c.is_sparse) when 1 then 'true' else 'false' end,case(c.is_filestream) when 1 then 'true' else 'false' end,case(c.is_rowguidcol) when 1 then 'true' else 'false' endfrom[%CATALOG%.]sys.columns cjoin [%CATALOG%.]sys.objects o on (o.object_id = c.object_id)join [%CATALOG%.]sys.schemas u on (u.schema_id = o.schema_id)join [%CATALOG%.]sys.types t on (er_type_id = c.system_type_id)left outer join [%CATALOG%.]sys.identity_columns i on (i.object_id = c.object_id and i.column_id = c.column_id)left outer join [%CATALOG%.]sys.default_constraints d on (d.object_id = c.default_object_id)left outer join [%CATALOG%.]sys.extended_properties e on (e.class=u.schema_id and e.major_id=o.object_id and e.minor_id =c.column_id and =N'MS_Description')whereo.type in ('U', 'S', 'V')[ and = %.q:OWNER%][ and =%.q:TABLE%]order by 1, 2, 32. 表注释原为:{OWNER, TABLE, TABLE_TYPE, COMMENT}select,,case (o.type) when 'S' then 'SYSTEM TABLE' else 'TABLE' end,(select convert(varchar(8000), value) from ::fn_listextendedproperty(NULL, 'user', , 'table', , null, null) where name ='MS_Description') as colnfrom[%CATALOG%.]sys.sysobjects ojoin [%CATALOG%.]sys.schemas u on (u.schema_id = o.uid)whereo.type in ('U', 'S')[ and = %.q:OWNER%]order by 1, 2解决办法:在PD的 tools-->resources-->dbms-->sql server 2008打开DBMS属性窗⼝,在general选项卡中选择Microsoft SQL Server 2008-->script-->objects-->Table-->SQLlistquery修改其中的内容为:{OWNER, TABLE, TABLE_TYPE, COMMENT}select,,case (o.type) when 'S' then 'SYSTEM TABLE' else 'TABLE' end,convert(varchar(8000), e.value) as colnfrom[%CATALOG%.]sys.sysobjects ojoin [%CATALOG%.]sys.schemas u on (u.schema_id = o.uid)left join [%CATALOG%.]sys.extended_properties e on (e.class=u.schema_id and e.major_id=o.id and e.minor_id=0 and =N'MS_Description')whereo.type in ('U', 'S')[ and = %.q:OWNER%]order by 1, 23. 反向⼯程后,在Users中删除dbo⽤户,然后⽣成脚本即可运⾏。
用PD生成sql建立数据库和PowerDesigner反向生成数据字典

-
12
• 3)选择对应的数据库:New DBMS---此处选择sqlserver
-
13
• 4)生成脚本文件:Database-Generate Database…
保存的文件路径和文件名
2.5 反向生成Biblioteka 型-82.6:点击确定即可
2.7 选中自己在第一步中所创建的数据源Connect确定
-
9
2.8:选择库表等—根据个人需要OK
-
10
等待完成即可。---把鼠标放上去就会出现对应的表说明字段说明,箭头和直线表现对象间的关系
-
11
用PD导出sql脚本,到数据库执行脚本即可 生成数据库
脚本
-
14
• 5)将刚刚保存好的sql脚本,在sqlserver里面新建一个空的数据库,
然后执行脚本。即可。
• 如果有误,请注意查看下图红框处脚本里是否是dbo.表名。如果不是请
去PD设置表的属性
Owner:新建dbo然后重新导sql脚本
-
15
-
2
创建步骤:
1.1
1.2
-
3
1.3
1.4
-
4
1.5 测试成功确定确定完成即可
-
5
第二步:打开PD,File→New Model→Model types →PhySical Data Model →PhySical Diagram,如 下图所示:
2.1
-
6
2.2
2.3
-
7
2.4:点击确定即可
如何把数据库导入到PowerDesign

一:ODBC的建立
1.先在ODBC里添加一条数据源,点击下图的添加按钮,如图:
2.点击添加按钮后跳出如下界面,找到SQL Server后选中并点击完成;
3.下一步操作如图,名称可以根据需要随便取,服务器名称为你数据库服务器名字;
4.下一步如下图操作:注意选择使用用户输入登录id和密码的sql server验证
4.当点击上图的客户端配置会跳到以下界面:注意下图所示(网络库选择Named Pipes,
服务器别名和服务器名称、管道名称均为你的数据库服务器名字)
5.如图操作,选择更改默认的数据库为你要添加的数据库名字,选择完直接点击下一步
5.这一不不要做任何处理,保持默认
6.如何所示:测试数据,然后即可完成odbc的添加数据源
二:把odbc中建的数据库导入PowerDesign
1.新建一个物理数据库模型,如图所示:
2.建好物理数据库模型以后,点击Configure Data Connections,选择你在odbc中添加的数据源(在此例中为yct这个数据库),选好点击确定
3.然后再点击Connect to a Data Source,如下图:选择第一项ODBC machine data source,并
选择我们在odbc中添加的数据源,输入用户名和密码即可连接
4.然后点击工具栏的数据库中的updata model from database..选项跳出以下界面,我们只要
对第一个Selection这个选项进行处理即可,别的保持默认。
我们选择Using a data source,选择我们在odbc中所建的数据源,点击确定即可
5.在此处我们选择下图几个选项即可完成数据库的导入工作:。
powerdesign12PDM导出带有字段说明的sql及逆向工程导入字段说明

powerdesign12PDM导出带有字段说明的sql及逆向⼯程导⼊字段说明⼀、从PDM导出带有字段说明的sql⽂件 1、新建DBMS2、点击新建3、输⼊新建DBMS的名称,并选择拷贝源为Miscrosoft SQL Server2005。
4、点击保存后弹出如下窗⼝ 5、选择左侧树节点 Script-->Objects-->Column-->ColumnComment,设置其值为EXEC sys.sp_addextendedproperty@name=N'MS_Description', @value=N'%Name%',@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'%TABLE%', @level2type=N'column', @level2name=N'%COLUMN%'说明:该字段是为了导出符合Sqlserver2005字段说明的模板,%%为变量,不可修改,其它可视情况变更。
6、选择左侧树节点 Script-->Objects-->Table-->TableComment,去掉其值内容。
说明:因为我的例⼦中不需要表说明。
7、点击确定,返回上层并关闭设置DBMS窗⼝。
8、新建PDM ,选择DBMS为刚才新建的SQLSERVER2005[EXT]. 9、新建⼀张表,并定义字段说明。
10、选择⽣成数据库,就得到sql脚本了。
11、把这段脚本放在SQLSERVER2005中执⾏就能得到带有字段说明的表了。
⼆、逆向⼯程导⼊字段说明 1、新建⼀个PDM,选择DBMS为刚才定义好的SQLSERVER2005[EXT]。
powerdesigner实验总结体会

powerdesigner实验总结体会PowerDesigner是一款功能强大的建模工具,可以帮助软件开发人员进行需求分析、系统设计和数据库设计等工作。
在实验中,我对PowerDesigner进行了深入的学习和实践,收获颇多。
下面将对实验总结体会进行详细的阐述。
PowerDesigner具有直观的界面和丰富的功能,使得我们可以方便地进行建模工作。
在实验中,我学会了使用PowerDesigner进行实体关系模型的设计。
通过创建实体、属性和关系等元素,我能够清晰地描述系统的结构和各个实体之间的关系。
同时,PowerDesigner 还提供了多种视图,如逻辑视图和物理视图,方便我们从不同角度来审视系统的设计。
PowerDesigner还具有强大的逆向工程和正向工程功能,可以将数据库的结构导入到PowerDesigner中进行分析,并且可以将PowerDesigner中的模型生成数据库的结构脚本。
在实验中,我成功地将一个数据库的结构导入到PowerDesigner中,并对其进行了修改和优化。
通过PowerDesigner,我能够清晰地了解数据库的结构和关系,并能够针对性地进行优化和调整。
PowerDesigner还支持多种建模标准和方法,如UML、BPMN和ERM 等。
这使得我们可以根据不同的需求选择合适的建模标准和方法,并进行相应的建模工作。
在实验中,我学会了使用PowerDesigner 进行UML建模,通过创建类、对象和关联等元素,我能够清晰地描述系统的行为和结构,并能够进行相应的分析和设计。
PowerDesigner还具有强大的文档和报告生成功能,可以自动生成各种文档和报告,如需求文档、设计文档和测试报告等。
在实验中,我学会了使用PowerDesigner生成实体关系模型的文档,并进行了相应的修改和调整。
通过PowerDesigner,我能够快速地生成高质量的文档和报告,提高了工作的效率和质量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
佩特来项目经验小集合(4)___SQL SERVER的逆向工程,将数据库导入到PowerDesigner中
PD是一款不错的数据库设计工具,在佩特来这个项目中,起初,合作伙伴用PD 大体设计了10张表,我们在项目开发的时候直接采用正向工程,将PD设计的数据库直接导入SQLServer中即可创建数据库及表结构,随着项目的开发,我们对表结构及表数量等进行了更改,为了保证数据库与PD图的一致性,这里我们采用逆向工程,将数据库导入到PD中,Oracle、SqlServer等数据库,都是可以采用逆向工程将数据库导入到PD中的。
SqlServer逆向工程,首先需要建立一个数据库的连接,然后再进行逆向工程操作。
下面简单介绍一下“SQL SERVER2008R2的逆向工程,将数据库导入到PowerDesigner15中”的步骤:
一.建立PDM文件
打开PD,File→New Model→Model types →PhySical Data Model →PhySical Diagram。
二.建立PD与数据库的连接
2.1 打开“DataBase”菜单,选择“Configure Connections...”
2.2 弹出“Configure Data Connections”窗口
2.3 选择系统数据源
2.4 选择你需要的数据库
2.5 进行数据库的地址设臵和sa账号设臵
2.6 点击完成,进行连接测试
至此,与数据库SQL SERVER 2008 R2之间的ODBC连接就建立好了。
三.逆向工程将数据库导入PD
3.1 建立完数据库的连接后,选择File→Reverser Engineer→Database
3.2 点击确定,弹出下图
3.3 点击Connect,选择要导入的表、视图,及表对象、一般存储过程等
至此,SQL Server的逆向工程就结束了,下面看一幅逆向工程生成的部分PD图:。