PowerDesigner设计数据库使用规范
数据库实验五:使用PowerDesigner设计数据库
实验五:使用PowerDesigner设计数据库[目的和意义]掌握将现实世界的事物转换成E-R 图的基本技术,能够正确判断给定表的关键词;了解将E-R 图转换成关系表的技术;掌握使用PowerDesigner 工具创建CDM概念数据模型的方法,以及完成数据库表的创建和修改等工作。
[实验内容]本实验的主要内容:使用PowerDesigner按下列要求创建用户数据库模型:1.PowerDesigner软件的安装;2.数据库需求分析;3.设计数据库并创建CDM概念数据模型;[实验步骤]1 安装与破解PowerDesigner软件目前主要的建模工具厂商有Sybase PowerDesigner, IBM Rational Rose, Computer Associates ERWin等。
PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对信息系统进行分析设计, 其中主要受关注的有数据设计模型、对象模型、和业务流程模型等,它几乎包括了数据库模型设计的全过程。
目前的最新版本是 PowerDesigner 15,我们实验安装的版本为PowerDesigner v12.5。
1.1 安装PowerDesigner软件在给定的安装文件夹Sybase.PowerDesigner.v12.5-EDGE下找到安装文件powerdesigner 125_eval.exe,点击直接安装。
点击“Next”继续,接受默认设置,直至安装完成。
1.2 破解PowerDesigner软件安装文件夹子目录中的两文件pdflm12.dll和license.lic用于破解。
安装完成后,在安装文件下找到pdflm12.dll文件,用它去替换PowerDesigner 安装目录下的pdflm12.dll同名文件。
然后在“开始”->“所在程序”―>“Sybase”―>PowerDesigner12中点击“PowerDesigner”打开软件。
powerdesign 使用说明
用pd建数据库的一般过程为:概念数据模型(Conceptual Data Model编写为CDM)—>物理数据模型(Physical Data Model编写为PDM)—>数据库(Database)一、,建立概念模型,这里我们主要做的是建立实体和实体间的联系。
(注意:在建立概念模型的时候我们并不能直接建立外键约束关系,外键约束是在把CDM 转换成PDM时系统根据实体间的联系生成的)建立概念模型的过程如下:1、右键点击,左侧Browser里的workspace然后依次选择new->Conceptual Data Model2、在弹出的对话框中点“确定”按钮3、在左侧Browser里右键点击刚才建立的概念数据模型(ConceptualDataModel),然后选择rename可以对其重命名,这里我们起名为student。
4、建立实体,有两种方法:一是右键点击Browser里的概念模型然后依次选择new->Entity;二是在右侧Pelette面板里选实体符号来创建。
5、实体属性的设置:name和code:name是显示的名称在同一实体(Entity)内不允许重,在不同的实体(Entity)允许重复,它在CMD转换在PMD后会变成字段名;code是CMD里的数据项,实体名等的标识符,不允许重复。
(小提示,在默认情况下code是与name保持一致的,即两者间有一个改变的时候,别外一个也会跟着改变,而我们有很多时候需要在不两的两个实体间建立相同的属性名,这时候默认设置对于我们的设计来说是很不方便,这时候我可以这样做,点击菜单栏上的Tools然后选择General Options,在弹出的对话框中选择Dialog项,然后把Name to code mirroring前面的勾去掉,最后击“OK”保存设置)实体的三个主要设置:General、Attributes、IdentifiersGeneral里有Name和code,是实体的名称和编号,其中Name对应PMD中的表名称Attributes里设置属性,包括属性名Name、属性编号Code、数据类型Data Type、域Domain、还有强制不为空M、主属性P、和是否显示D。
使用PowerDesigner设计数据库
数据库设计练习练习一、学习使用PowerDesigner设计数据库前一个小时:按要求完成以下数据设计。
1.打开PowerDesigner2.界面如下。
3.新建一个文件。
4.选择新建一个概念模型,这个很重要,不要选错了。
5.点击确定后出现的界面如下。
6.工具箱中我们常用的工具有实体和关系,我们用这两个就可以啦。
7.接下来我们将为一个学生管理系统建立模型,首先,单击上图的实体,在工作区中建立两个实体,建立完成后,点击鼠标右健。
如图。
8.更改名称,另外一个实体改成班级,TB_CLASS9.为学生实体设置属性10,接下图所示为班级表建立属性11.实体已经建立完毕,下面设置实体之间的关系。
单击工具箱中的“关系”,在两个实体之间点击拖动。
建立两个实体之间的关系,结果如下。
12.双击关系后,按下图修改关系属性。
13.修改文件名,如图14.保存此文件15.将概念模型转换成物理模型。
如图16.选择数据库17.查看生成后的物理模型,查看一下,这个物理模型与概念模型有什么不同,在学生实体中是不是增加了一个“班级编号”的属性。
想一想这个属性有什么作用。
18.在物理模型下,准备生成数据库脚本文件。
如图19.修改选项后,生成脚本文件。
20.如果没有问题,查看脚本文件。
后一个小时:在这个概念模型中增加一个学生成绩实体,存储学生的学习成绩。
并生成脚本文件。
作业:1.为自动提款机设计一个概念模型,提示:用户通过银行卡来取款,存款,而取款,存款的信息需要记录下来。
2.做一个进销存系统概念模型(进货、销售和库存)。
数据库 PowerDesigner 15的使用
数据库PowerDesigner 15的使用(环境是Windows Server 2003)一、打开应用程序界面如下所示二、创建新Model 点击左上角创建按钮选择第一项ConceptualDataModel,弹出下面的界面,可以重命名三、创建成功之后要选择关系模型中的E-R模型(重要)方法是在出现的界面,右键选择Model Options弹出下一个窗口选择如上图Entity/Relationship模型,并确定四、画图(重要)看到右上角的工具栏,鼠标放到对应工具会有提示下面简要介绍需要用到的实体实体之间的联系创建对应的部件时候,只用点击对应部件,然后在空白处点击,要释放,点击鼠标右键创建成功的实体编辑对应的部件,只用双击这个部件命名在第一个General选项卡,只用学Name,Code默认与Name一致,此选项卡其他部分不用管实体的属性在Attrabuts选项卡点击就可以创建对应属性名称和代码自己编辑数据类型如下图,点击“…”图标来选会出现下图的选项表,根据需要设置类型、长度、精度每个属性的后边,有该属性的一些设置如果是主键,勾选P(默认同时选择M),要显示勾选D 实体创建成功,其他不用设置然后建立实体之间的联系,连接两个实体之后如图,双击联系线编辑名字自己取,我们关注Cordinalities选项卡的设置,根据自己的模型,设置关系属性我的设置如下表示多对多的关系,每个课程至少有一个学生,每个学生至少有一门课程。
五、生成逻辑模型生成对应的逻辑模型之后,仍可以根据需求修改对应的表添加了属性Grade逻辑模型创建成功,如下六、生成物理模型,选择如下弹出下图,选择自己对应的数据库,其他不用改,点击确定结果如下所示六、生成对应的SQL语句物理模型创建成功之后,选项卡会出现Database选项,如下图选择生成数据库弹出下框,更改生成的文件的存储路径和文件名,其他不用改到对应路径下看到生成的文件到此,PowerDesigner的工作就做完了,这里说的是15版本的,16版本的有所区别,但大致相同。
PowerDesigner12.5的使用说明
PowerDesigner12.5的使用说明一.PowerDesigner12.5数据库的连接及数据表的导入 (2)(1)sql server的连接 (2)(2 ) sql server的数据表导入 (7)(3)Oracle的连接 (11)(4)Oracle的数据导入 (13)(5)导入表之后显示字段注释: (15)二.新建的表的导入和导出 (17)(1)逆向导出新建的表 (17)(2)正向从PowerDesigner设计表导入到oracle (19)三.关联表的导入和导出 (22)(1)数据库向PowerDesigner中导入关联表 (22)(2) PowerDesigner向数据库中导入关联表 (24)一.PowerDesigner12.5数据库的连接及数据表的导入(1)sql server的连接打开PowerDesigner12.5,新建一个工作空间创建数据源:点击数据库>configure conn….在弹出的窗口中选择创建新数据源(系统数据源)点击下一步下拉选择SQL Server下一步点击完成。
输入数据库名称以及服务器IP选择使用用户输入登录,写上登录ID和密码记得更改默认的数据库名点击完成,测试成功,说明连接成功(2) sql server的数据表导入连接数据源进行数据表的导入:数据库>connect…选择数据源,输入登录ID和密码,选择文件>逆向工程>Daeabase…选择数据源点确定,勾选要列出的表,点OK(3)Oracle的连接新建工作空间选择ORACLE重复1.1中的步骤修改数据源驱动输入数据源名称和用户名称(4)Oracle的数据导入文件>逆向工程>选择数据源,输入用户ID和密码OK,表生成了(5)导入表之后显示字段注释:右击单表点属性,在弹出窗口中点击Columns下的Cutomize Col….按钮在窗口中勾选Comment查看表注释,完成二.新建的表的导入和导出(1)逆向导出新建的表在数据库中新建两张表:表A和表B。
使用POWERDESIGNER设计数据库的20条技巧
使用POWERDESIGNER设计数据库的20条技巧1、PowerDesigner使用MySQL的auto_increment◇问题描述:PD怎样能使主键id使用MySQL的auto_increment呢?◇解决方法:打开table properties窗口→columns →选中id列→打开columns proper ties窗口→勾选identity即可注意:概念模型没有此选项,物理模型才有2、PowerDesigner去掉SQL脚本中的双引号◇问题描述:PD生成Oracle数据库建表SQL时,默认会给表名和字段名加上双引号,怎样能去掉SQL脚本中的双引号呢?◇解决方法:把Database →Edit Current DBMS →General →Script→Sql →Format→CaseSensitivityUsingQuote设置为NO即可3、PowerDesigner生成SQL语句时不使用Domain◇问题描述:如果在PD中使用了Domain,生成SQLServer的数据库SQL的脚本中会使用与Domain对应的自定义数据类型,而不会使用SQLServer自己的数据类型,怎样能让PD生成SQL语句时使用SQLServer自己的数据库类型,而不是Domain对应的自定义数据类型呢?◇解决方法:把Database →Edit Current DBMS →General →Script→Objects →Domain→Enable设置为NO即可4、PowerDesigner中设置Entity的默认字体◇问题描述:创建Entity时,如果PD默认字体不适合自己的个人习惯,每次创建了一个实体后都要修改实体的字体,非常麻烦,是否有只修改一次一劳永逸的方法呢?◇解决方法:T ools →Display Preferences... →Format→Entity→Modity... →Font →进行相应修改并保存设置→Set As Default5、PowerDesigner中设置Entity自动调整尺寸大小◇问题描述:当给Entity添加了字段或其他修改时,Entiry的显示尺寸大小不会自动调整,怎样解决呢?◇解决方法:在Entity上点击右键→单击Format...菜单项→选择size标签页→勾选Autoadjustto text即可6、自定义外键命名规则◇问题描述:当我们定义外键时,Power Desienger的外键规则如何自定义?◇解决方法:1)选择Database—>Edit Current DBMS2)选择Scripts-》Objects-》Reference-》ConstName可以发现右侧的Value为:FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%可见,该命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根据这中模式自定义为:FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,可以使FK名称变为FK_TABLE_2_RELATIONS_TABLE_1掌握这种方法后就可以按照自己的想法修改了生成建库脚本SQL文件中的表头注释很讨厌,可以在Databse -> Generate Database (Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。
powerdesigner数据库设计
powerdesigner数据库设计
(1)创建物理数据模型
打开PowerDesigner,然后点击File-->New Model然后选择如下图所⽰的物理数据模型(物理数据模型的名字⾃⼰起,然后选择⾃⼰所使⽤的数据库即可)
(创建好主页⾯如图所⽰,但是右边的按钮和概念模型略有差别,物理模型最常⽤的三个是table(表),view(视图),reference(关系));
(⿏标先点击右边table这个按钮然后在新建的物理模型点⼀下,即可新建⼀个表,然后双击新建如下图所⽰,在General的name和code填上⾃⼰需要的,点击应⽤即可),如下图:
(然后点击Columns,如下图设置,灰常简单,需要注意的就是P(primary主键) , F (foreign key外键) , M(mandatory强制性的,代表不可为空)这三个,多看⼏遍理解其意思。
)
(在此设置学号的⾃增(MYSQL⾥⾯的⾃增是这个AUTO_INCREMENT),班级编号同理,不作多啰嗦!)
(在下⾯的这个点上对号即可,就设置好了⾃增)
(全部完成后如下图所⽰。
)
(2)⽣成sql⽂件,依次点击database>generate database,出现如下界⾯,选择⽬录和⽂件名,点击确定。
注意:创建表时必须带有主键,否则保存SQL不成功。
(3)导⼊外部SQL⽂件
mysql> source c:/test/crebas.sql;
此时mysql数据库中已经创建好了相应的表。
数据库设计Sybase_PowerDesigner12[1].5使用
一、下载PowerDesigner,用google去网上搜,然后下载下来。
二、安装PowerDesigner.安装很简单,双击可执行exe文件,按照提示点下一步,期间可更改安装路径,如有需要则更改安装路径。
三、使用PowerDesigner进行数据库设计。
双击打开PowerDesigner,工作界面如下图:(1)新建一个概念模型。
设计概念模型点击选中左侧的Workspace,对其点击右键,选择new->ConceptualDataMode在弹出的对话框中给新建的概念模型命名。
这里命名为ConceptualDataModel_blog点击确定后,出现如下的概念模型设计界面。
这里将以一个简单的博客系统数据库设计为例,这里涉及到四个表,分别是博文表,博文分类表,用户表,博文评论表,因为每个表都会用的一个id字段,而PowerDesigner的默认配置是不允许重复的,所以要先更改一下设置,让它允许重复。
如图,点击菜单栏的Tools,然后点击下拉的Model Options.如图:在弹出的对话框中去掉,Relationship和DataItem下的Unique Code的勾。
如图点击OK,设置完成,回到了概念模型设计界面。
这里的表映射到概念模型中对应的是实体。
在右侧浮动的工具条,选中Entity 图标,并拖动到中间的工作区然后单击左键即可,如图。
拖动到工作区后,如下图由于这里博客系统涉及到的表共有四个,所以一共要拖四个Entity到工作区。
如图。
双击任意一个Entity,如Entity1,弹出如下对话框。
这里先设计博文表blog.将entity1的名字改为Entity_blog,如下图接着点击对话框上面的Attributs选项,设置实体的属性。
如图博文的第一个属性是id,数据类型为整型。
在第一行中的Name列写id, code 列会自动填充为id双击Data Type列,出现如图所示,弹出如下对话框。
PowerDesigner使用教程
点击物理数据模型,填写模型名、数据库版本:点击ok,如果不⼩⼼选错了,也不要紧,可以在Database选项卡中重新编辑。
接下来将产⽣模型名称、表的⼯具栏:⼯具栏可以建表:填写表名称:Columns编辑表选中右键>属性可以添加序列:给序列命名:给序列定义:查看序列⽣成:⽣成序列的sql语句显⽰如下:可以点击表再添加个字段(项⽬经理Id):可以看⼀下表结构:再建⼀个项⽬经理表:项⽬经理表字段:现在有两个表了:此时点击reference,可以建⽴两个表间,相同字段的主外键关系(带fk的都是从表):此时双击箭头可以对reference进⾏编辑:此时就可以保存了,可以ctrl+s,即可另存为pdm⽂件:保存于桌⾯即可接着可以根据模型来⽣成sql语句:选择在桌⾯⽣成sql即可:可以看到桌⾯上⽣成了sql⽂件:打开crebas.sql/*==============================================================*/ /* DBMS name: ORACLE Version 10g *//* Created on: 2020/4/6 4:00:38 *//*==============================================================*/ -- Type package declarationcreate or replace package PDTypesasTYPE ref_cursor IS REF CURSOR;end;-- Integrity package declarationcreate or replace package IntegrityPackage ASprocedure InitNestLevel;function GetNestLevel return number;procedure NextNestLevel;procedure PreviousNestLevel;end IntegrityPackage;/-- Integrity package definitioncreate or replace package body IntegrityPackage ASNestLevel number;-- Procedure to initialize the trigger nest levelprocedure InitNestLevel isbeginNestLevel := 0;end;-- Function to return the trigger nest levelfunction GetNestLevel return number isbeginif NestLevel is null thenNestLevel := 0;end if;return(NestLevel);end;-- Procedure to increase the trigger nest levelprocedure NextNestLevel isbeginif NestLevel is null thenNestLevel := 0;end if;NestLevel := NestLevel + 1;end;-- Procedure to decrease the trigger nest levelprocedure PreviousNestLevel isbeginNestLevel := NestLevel - 1;end;end IntegrityPackage;/drop trigger "CompoundDeleteTrigger_coder"/drop trigger "CompoundUpdateTrigger_coder"/drop trigger "tib_coder"/drop trigger "CompoundInsertTrigger_coder"/alter table "coder"drop constraint FK_CODER_REFERENCE_PRO_MAN/drop table "coder" cascade constraints/drop table "pro_man" cascade constraints/drop sequence "Sequence_2"/drop sequence "Sequence_3"/drop sequence "coder_seq"/create sequence "Sequence_2"/create sequence "Sequence_3"/create sequence "coder_seq"increment by 1start with 1maxvalue 999minvalue 1cache 20//*==============================================================*/ /* Table: "coder" *//*==============================================================*/ create table "coder" ("cId" NUMBER(10) not null,"cname" varchar2(20),"pmId" number(10),constraint PK_CODER primary key ("cId"))//*==============================================================*/ /* Table: "pro_man" *//*==============================================================*/ create table "pro_man" ("pmId" number(10) not null,"pmName" varchar2(20),constraint PK_PRO_MAN primary key ("pmId"))/alter table "coder"add constraint FK_CODER_REFERENCE_PRO_MAN foreign key ("pmId")references "pro_man" ("pmId")/create trigger "CompoundDeleteTrigger_coder" before deleteon "coder"for each rowdeclareintegrity_error exception;errno integer;errmsg char(200);dummy integer;found boolean;begin-- Errors handlingexceptionwhen integrity_error thenraise_application_error(errno, errmsg);end;/create trigger "CompoundUpdateTrigger_coder" before update of "cId","pmId"on "coder"for each rowdeclareintegrity_error exception;errno integer;errmsg char(200);dummy integer;found boolean;seq NUMBER;beginseq := IntegrityPackage.GetNestLevel;-- Errors handlingexceptionwhen integrity_error thenraise_application_error(errno, errmsg);end;/create trigger "tib_coder" before inserton "coder"for each rowdeclareintegrity_error exception;errno integer;errmsg char(200);dummy integer;found boolean;begin-- Column ""cId"" uses sequence coder_seqselect coder_seq.NEXTVAL INTO :new."cId"from dual;-- Errors handlingexceptionwhen integrity_error thenraise_application_error(errno, errmsg);end;/create trigger "CompoundInsertTrigger_coder" before insert on "coder"for each rowdeclareintegrity_error exception;errno integer;errmsg char(200);dummy integer;found boolean;begin-- Column ""cId"" uses sequence coder_seqselect coder_seq.NEXTVAL INTO :new."cId"from dual;-- Errors handlingexceptionwhen integrity_error thenraise_application_error(errno, errmsg);end;/接着就是反转的过程:命名模型,然后选择要反转的数据库版本:点击Using a data source,然后点击右侧数据库⼩图标:接着点configure(配置数据源):点击Add Data Source:选择系统数据源:接着选Oracle in OraDb10g_home1(其实这⼀步是⾃动检测你的数据库版本,所以只有⼀个10g)点完成:接着需要填:如果忘记了,可以登⼀下数据库:完善数据源和服务信息、⽤户id:数据源名⾃⼰起、TNS Service Name会⾃动匹配出服务名选择即可(就是数据库名),scott是⽤户名。
实验12 数据库设计之PowerDesign使用
实验十二数据库设计之PowerDesigner Data Model【实验目的与要求】1. 熟悉PowerDesigner的操作环境与使用者接口,并学习设定PowerDesigner的操作环境与相关设定;2. 熟练掌握概念数据模型(CDM)的创建;3. 掌握如何使用PowerDesigner完成整个数据库工程的初步技能.【实验内容与步骤】12.1.PowerDesigner 环境熟悉启动PowerDesigner,选择“File/New”命令,在弹出的对话框中选择Conceptual Data Model(概念数据模型),单击“确定”按钮,进入概念模型设计界面。
概念设计阶段是通过调查、分析和整理数据,确定实体、属性及它们之间的联系。
概念数据模型是对实体和实体间的关系的定义(即数据库的逻辑模型),是独立于数据库和数据库管理系统的。
单击面板中的实体,然后在画布上分别单击,创建若干个实体。
创建实体后,单击面板上的光标图标,设置实体的属性。
双击刚才创建的实体,如“Entity_3”,弹出“实体属性”对话框。
在“General(常规)”选项卡中,修改实体的名称为“Student”;单击“Attributes(属性)”标签,设置实体的属性,输入“StudentID”、“StudentNo”、“StudentName”、“Sex”、“Grade”、“Discourse”、“Class”、“Remark”等属性,见下图。
输入属性后,要设置属性的数据类型以及主关键字。
设置属性的方法是对每个属性单击其Data Type单元格,在弹出的“标准数据类型”对话框中进行配置。
例如,设置“StudentID”属性为Variable Character类型,长度为6位,见下图。
设置完毕后,单击“确定”按钮回到“实体属性”对话框的“属性”选项卡中。
设置主关键字的方法是,向右拖动最下边的滚动条,能看到M、P、D三个带有复选框的列。
PowerDesigner设计数据库使用规范
PowerDesigner设计数据库使⽤规范PowerDesigner设计数据库使⽤步骤及规范使⽤PowerDesigner可以⽅便地对管理信息系统进⾏分析设计,它⼏乎包括了数据库模型设计的全过程。
它可以制作多种数据模型,也能对团队设计模型进⾏控制。
还可以与许多流⾏的软件开发⼯具,例如PowerBuilder、Delphi、VB等相配合使系统设计更优化并缩短开发时间。
并不是每个设计都需要⽤到PD,对于⽐较⼤型的项⽬,它是很好的,对于短平快类型的项⽬,例如时间要求⼀周左右的系统,没有必要使⽤,直接维护数据库即可,对于表的数量超过10个的系统,建议使⽤PD进⾏设计和交流。
1.创建概念数据模型(CDM)1.1创建CDM步骤选择⽂件建⽴新模型,弹出如图所⽰对话框,选择ConceptualDataModel 模型(即概念数据模型),单击OK,即确认创建。
双击资源浏览窗⼝中新创建的CDM 名称图标,打开CDM 模型属性窗⼝,进⾏相关属性信息设置。
如下图:1.2对象命名通⽤规范以下三种规范属于基本规范,适⽤于本⽂所有数据库对象命名规范。
1、长度规范:凡是需要命名的对象其标识符均不能超过3个英⽂单词长度(30个字符),也即:Oracle中的表名、字段名,函数名,过程名,触发器名,序列名,视图名的长度均不能超过3个英⽂单词长度(30个字符);2、构成规范:数据库各种名称必须以字母开头,但严禁使⽤SYS开头;名称只能含有字母,数字和下划线“_”三类字符,“_”⽤于间隔名称中的各语义字段;不要使⽤DUAL作表名;3、⼤⼩写规范:构成Oracle数据库中的各种名称(表明,字段名,过程名,视图名等等)的所有字符,必须使⽤⼤写,也就是不能在脚本中,对任何名称添加双引号“”来设定字符的⼤⼩写形式,只要不采⽤“”限制,Oracle⾃动会将各名称转化成⼤写。
2.进⾏ER设计的准备⼯作2.1实体命名不相同检查PowerDesigner默认不能存在相同名称的实体属性,这也是考虑到可能产⽣的⼀些如主键外键等名称冲突问题,但当进⾏实际数据库设计时,可能会多次使⽤相同数据项(DataItem)便于理解各实体。
数据库工具 Powerdesign 的使用
2.6.3 利用PowerDesigner实现数据库设计
PowerDesigner界面一览
2.6.3 利用PowerDesigner实现数据库设计
在PowerDesigner主界面选择File->New Model
2.6.3 利用PowerDesigner实现数据库设计
在New Model对话框中选择Model Type-> Physical Data Model>Physical Diagram • Model Name为TTMIS • DBMS选择Microsoft SQL Server 2005
在“车票信息表”中添加外键
• 利用Palette工具栏上的“Reference”快捷键创建 外键约束
导出TTMIS.sql脚本
• 在PowerDesigner主界面选择Database>Generate Database
在弹出的对话框中的“General”标签页上选 择适当的输出目录即可。
启动SQL Server 2005,新建数据库TTMIS
选中新建的TTMIS数据库,右键选择“新建 查询”。
在弹出的对话框内输入TTMIS.sql脚本内容, 选择执行即可。
最终完成数据表的设计。
售票员表( 售票员表(UserInfo) )
2.6.2 “火车售票管理系统”(TTMIS)数据库设计
列车信息表( 列车信息表(TrainInfo) )
2.6.2 “火车售票管理系统”(TTMIS)数据库设计
车票信息表( 车票信息表(TicketInfo) )
2.6.3 利用PowerDesigner实现数据库设计
2.6.3 利用PowerD 管理员表(AdminInfo) 售票员表(UserInfo) 列车信息表(TrainInfo) 车票信息表(TicketInfo)
(完整word版)PowerDesigner16.5中文教程-数据库模型操作教程
PowerDesigner16.5中文教程-数据库模型操作教程目录使用POWERDESIGNER软件创建数据库概述 (2)21、概念数据模型(CDM)(C ONCEPTUAL D ATA M ODEL) ...............................................................................22、逻辑数据模型(LDM)...................................................................................................................................3、物理数据模型(PDM)(P HYSICAL D ATA M ODEL)-最主要和常用的数据库模型 (3)34、面向对象模型(OOM)(O BJCET O RIENTED M ODEL)..........................................................................35、业务程序模型(BPM)(B USINESS P ROCESS M ODEL).........................................................................36、信息流模型(ILM)......................................................................................................................................37、企业架构模型(EAM):.............................................................................................................................创建数据模型 (3)31、创建概念数据模型 ........................................................................................................................................2、创建物理数据模型 (14)模型转换 (27)1、概念模型转为物理模型 (27)2、物理模型转概念模型 (29)3、不同数据库之间的转化 (30)导入导出SQL脚本 (31)1、物理模型导出SQL语句(生成SQL脚本) (31)2、导入SQL脚本(反向工程)生成相应的数据库表模型图 (34)由物理模型生成对象模型,并生成相应的GET、SET方法 (35)建立索引、视图、存储过程 (37)1、建立索引 (37)2、建立视图 (39)3、建立存储过程 (41)生成数据库文档(开发的数据库设计文档) (42)常规配置 (43)1、默认字体太小,修改为10号字 (43)2、将所有名词转化为大写 (44)3、修改表的字段N AME的时候,C ODE不自动跟着变 (45)使用PowerDesigner软件创建数据库概述我的PowerDesigner版本是16.5的,如若版本不一样,请自行参考学习即可。
PowerDesigner使用建议(完整版)用实体关系图进行数据库建模
PowerDesigner使用建议(完整版)用实体关系图进行数据库建模2009-11-04 17:371.Powerdesigner使用建议1.1业务规则的使用(Business Rule)对于一些业务逻辑可能出现在多个数据表中,建议封装成Business Rule,这样便于业务逻辑的重新使用,也便于业务逻辑的维护。
为了便于维护业务逻辑,可以考虑将Business Rule和Domains 结合起来使用。
将业务Business Rule应用到Domains上,然后再把Domains应用到数据表的字段上。
例如:在拆迁项目中,拆迁业务部分,管理参数业务部分,房源业务部分,拆迁合同部分的数据表中都有楼层这个字段,因此先一个Business Rule,然后定义一个Domain,这样相应的数据表的字段就可以使用这个Domain了。
1.2.自定义数据类型(Domains)的使用oralce提供了一些内置的数据类型,但是用户也可以根据业务的需要,定义自定义的数据类型。
在自定义数据类型里面包装业务逻辑。
正如上面的房屋楼层,我们可以定义一个独立的数据类型(Domain)维护,然后在相关数据表的字段上使用这个自定义数据类型。
一般在定义自己的数据类型时候,可以在oracle基本类型上定义,然后可以加上一些standard check或者Business Rules。
比如:在拆迁项目中,面积类别这个字段在很多数据表都出现了,可以作为一个单独的数据类型类维护,定义一个” 面积类别” Domains(包含的种类有:0 --- 厅房面积,1 --- 使用面积,2 --- 单元面积,,3 --- 总建筑面积,4 --- 分摊面积)。
而且由于Powerdesigner 的提供关联作用,这样便于当业务逻辑发生了变动,能够很快查询出那些对象受到影响。
1.3序列号(Sequence)的使用在powersigner的模型里面定义一堆了Sequence,接下来的是要把他们和数据表的相关字段关联起来,特别是那些用于多个数据表字段的Sequence。
PowerDesigner 使用手册
PowerDesigner使用手册1 PowerDesigner整体框架介绍1.1 PowerDesigner 介绍PowerDesigner是Sybase公司的CASE工具集,是图形化、易于使用的企业建模环境。
使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。
利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。
它可与许多流行的数据库设计软件,例如:PowerBuilder、Delphi、VB等相配合使用来缩短开发时间和使系统设计更优化PowerDesigner 主要包括以下功能:集成多种建模能力,能建立的模型包括:数据模型(E/R, Merise业务模型(BPMN, BPEL, ebXML应用模型(UML1.2 PowerDesigner环境介绍1.2.1对象浏览器介绍工作空间(Workspace它是浏览器中树的根,是组织及管理所有设计元素的虚拟环境。
你可以通过保存工作空间保存自己的设计空间信息以便再次打开时可以还原到保存前的状态。
项目(Project作为容纳你所有开发出的制品的容器,项目中的所有对象可以作为一个单元存到PowerDesigner库中。
每个项目自动维护一张图用以显示模型以及文档之间的依赖。
文件夹(folder工作空间可以包含用户自定义的文件夹用以组织模型和文件。
例如,你有两个独立的项目,希望在一个工作空间中处理,此时可以使用文件夹。
模型(Model模型是PowerDesigner中的基本设计单元。
每个模型中有一个或多个图以及若干模型对象。
包(Package当模型较大时,可能需要把模型拆分成多个“子模型”以便于操作,这些子模型就叫做包,今后可以把不同的包分配给不同的开发组。
图(Diagram展现模型对象之间的交互。
可以在模型或包中创建多个图。
PowerDesigner(数据建模)使用大全
PowerDesigner(数据建模)使⽤⼤全什么是PowerDesigner引⼊百度百科的说法是:power designer是能进⾏数据库设计的强⼤的软件,是⼀款开发⼈员常⽤的⼯具。
使⽤它可以分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进⾏设计。
在这⾥,概念数据模型描述的是独⽴于(DBMS)的实体定义和实体关系定义;物理数据模型是在概念数据模型的基础上针对⽬标数据库管理系统的具体化。
在这⾥有必要强调下什么是数据模型呢?数据模型是现实世界中数据特征的抽象。
数据模型应该满⾜三个⽅⾯的要求:1)能够⽐较真实地模拟现实世界2)容易为⼈所理解3)便于计算机实现恩?什么⿁,还是不懂~继续看概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这⼀理论进⾏了扩充。
它从⽤户的观点出发对信息进⾏建模,主要⽤于数据库的概念级设计。
通常⼈们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。
换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所⽀持的数据模型,这样的模型就是物理数据模型,即PDM可以帮我们做哪些事㈠设计类图㈡使⽤PowerDesigner设计数据库关系以后,可以⽣成HTML,供团队成员进⾏讨论。
㈢使⽤PowerDesigner进⾏⾯向对象分析与UML建模动态模型动态图包括:状态图(Statechart Diagram)、顺序图(Sequence Diagram)、协作图(Collaboration Diagram)和活动图(Activity Diagram)。
状态图:描述系统元素的状态变化。
使用POWERDESIGNER设计数据库的20条技巧
使用POWERDESIGNER设计数据库的20条技巧1、PowerDesigner使用MySQL的auto_increment◇问题描述:PD怎样能使主键id使用MySQL的auto_increment呢?◇解决方法:打开table properties窗口→columns →选中id列→打开columns properties窗口→勾选identity即可注意:概念模型没有此选项,物理模型才有2、PowerDesigner去掉SQL脚本中的双引号◇问题描述:PD生成Oracle数据库建表SQL时,默认会给表名和字段名加上双引号,怎样能去掉SQL 脚本中的双引号呢?◇解决方法:把Database →Edit Current DBMS →General →Script →Sql →Format →CaseSensitivityUsingQuote设置为NO即可3、PowerDesigner生成SQL语句时不使用Domain◇问题描述:如果在PD中使用了Domain,生成SQLServer的数据库SQL的脚本中会使用与Domain 对应的自定义数据类型,而不会使用SQLServer自己的数据类型,怎样能让PD生成SQL语句时使用SQLServer自己的数据库类型,而不是Domain对应的自定义数据类型呢?◇解决方法:把Database →Edit Current DBMS →General →Script →Objects →Domain →Enable设置为NO即可4、PowerDesigner中设置Entity的默认字体◇问题描述:创建Entity时,如果PD默认字体不适合自己的个人习惯,每次创建了一个实体后都要修改实体的字体,非常麻烦,是否有只修改一次一劳永逸的方法呢?◇解决方法:Tools →Display Preferences... →Format →Entity →Modity... →Font →进行相应修改并保存设置→Set As Default5、PowerDesigner中设置Entity自动调整尺寸大小◇问题描述:当给Entity添加了字段或其他修改时,Entiry的显示尺寸大小不会自动调整,怎样解决呢?◇解决方法:在Entity上点击右键→单击Format...菜单项→选择size标签页→勾选Auto adjust to text即可6、自定义外键命名规则◇问题描述:当我们定义外键时,Power Desienger的外键规则如何自定义?◇解决方法:1)选择Database—>Edit Current DBMS2)选择Scripts-》Objects-》Reference-》ConstName可以发现右侧的Value为:FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%可见,该命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根据这中模式自定义为:FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,可以使FK名称变为FK_TABLE_2_RELATIONS_TABLE_1掌握这种方法后就可以按照自己的想法修改了生成建库脚本SQL文件中的表头注释很讨厌,可以在Databse -> Generate Database (Ctrl+G)窗口中,选择Options卡片,去掉Usage的Title钩选项即可。
PowerDesigner使用手册
PowerDesigne使用手册一.创建数据库物理模型打开PowerDesigne,创建物理模型文件选择Physical Data Model(物理模型),在DBMS中选择SQL Server2000在窗体右上角有一个palette面板,表示图例。
:表示表:表示表之间的关系我们拖放一个表到界面上双击表,来设置表的属性Name属性:表的PowerDesigner中的名称(使用中文名称)Code属性:表在数据库中的名称(使用英文名称)选择选项卡Columns设置表的字段Name和Code属性同上,DataTyep表示列的数据类型,P表示是否是主键列,M打上勾表示列不允许为空为了设置更多的列的属性,可以点击图标,设置更多的列的属性选择Identity,添加标示列属性选择Default,添加默认值属性注意:如果在添加列属性时,没有发现这些属性,表示在创建物理模型时没有选择DBMS为SQL Server2000,需要重新创建物理模型,正确选择DBMS如下图,创建好2个表为2个表建立主外键关系,建立主外键前,必须保证2个表的公共字段的列名一致选择Palette面板上的,从子表(员工表)拖放到主表(职位表),来建立2个表的主外键关系这样物理模型基本上就建立好了,接下来我们根据物理模型来生成数据库脚步注意:生成脚本时,界面上不能有空白的表(没有任何列的表)生成数据库脚步的设置中,主要是设置Director属性,表示生成的脚本保存的路径,其他设置根据自己的需求进行修改(一般情况下不需要修改)注意:生成的数据库脚本不包括创建数据库的脚本,因此,需要先创建好数据库,然后再将生成的脚本放置在查询分析器中执行二.根据数据库反向获得物理模型我们可以对已存在的数据库进行反转,来生成对应的物理模型。
(不支持SQL Server2005)主要步骤:➢创建指定数据库的ODBC数据源➢根据ODBC数据源反转数据库在这里我们以pubs数据库为例,首先创建ODBC数据源打开“控制面板”,选择“管理工具”中的“数据源(ODBC)”在用户数据源或系统数据源中点击“添加”按钮添加新的数据源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PowerDesigner设计数据库使用步骤及规范使用PowerDesigner可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。
它可以制作多种数据模型,也能对团队设计模型进行控制。
还可以与许多流行的软件开发工具,例如PowerBuilder、Delphi、VB等相配合使系统设计更优化并缩短开发时间。
并不是每个设计都需要用到PD,对于比较大型的项目,它是很好的,对于短平快类型的项目,例如时间要求一周左右的系统,没有必要使用,直接维护数据库即可,对于表的数量超过10个的系统,建议使用PD进行设计和交流。
1.创建概念数据模型(CDM)1.1创建CDM步骤选择文件 建立新模型,弹出如图所示对话框,选择ConceptualDataModel 模型(即概念数据模型),单击OK,即确认创建。
双击资源浏览窗口中新创建的CDM 名称图标,打开CDM 模型属性窗口,进行相关属性信息设置。
如下图:1.2对象命名通用规范以下三种规范属于基本规范,适用于本文所有数据库对象命名规范。
1、长度规范:凡是需要命名的对象其标识符均不能超过3个英文单词长度(30个字符),也即:Oracle中的表名、字段名,函数名,过程名,触发器名,序列名,视图名的长度均不能超过3个英文单词长度(30个字符);2、构成规范:数据库各种名称必须以字母开头,但严禁使用SYS开头;名称只能含有字母,数字和下划线“_”三类字符,“_”用于间隔名称中的各语义字段;不要使用DUAL作表名;3、大小写规范:构成Oracle数据库中的各种名称(表明,字段名,过程名,视图名等等)的所有字符,必须使用大写,也就是不能在脚本中,对任何名称添加双引号“”来设定字符的大小写形式,只要不采用“”限制,Oracle自动会将各名称转化成大写。
2.进行ER设计的准备工作2.1实体命名不相同检查PowerDesigner默认不能存在相同名称的实体属性,这也是考虑到可能产生的一些如主键外键等名称冲突问题,但当进行实际数据库设计时,可能会多次使用相同数据项(DataItem)便于理解各实体。
为此需要对更改PowerDesigner相关设置。
软件默认DataItem不能重复使用,需要进行以下操作:选择工具 Model Options,在Model Setting 设置目录中,将Data Item下的Unique Code取消选中即可,系统默认将Unique Code和Allow Reuse均选中。
同时该设置均是面向特定模型的,即针对当前模型有效,若希望在其它模型中也有此命名设置,则需要重新进行设置。
不过在Check Model 时,如果选择全部Check,则依旧会报DataItem重名的错误信息,这时需要我们在人为检查确认数据项无误时,可以在选择不对DataItem不检查,如下图示:3.定义实体3.1创建entity3.1.1 创建entity步骤1、在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图形窗口的空白处,在单击的位置就出现一个实体符号。
点击Pointer工具或右击鼠标,释放Entity工具。
如图所示:2、双击刚创建的实体符号,打开下列图标窗口,在此窗口“General”标签中可以输入实体的名称、代码、描述等信息。
Name:是用来在模型中标识一个实体,一般用于模型在界面中的显示(这个可以通过更改选项设置进行改变)。
在一个模型当中,实体的名字不能重复。
Code:在模型转化时一般作为对象的物理名称,比如把实体属性的Code转化为数据库中的列名,一般采取与Name一致。
Generate:默认是选择状态,如果取消,则在转化为其他模型时,会忽略这个实体。
3.1.2entity命名规范CDM中的实体等价于PDM中的表。
1、表的命名只能使用英文字母,数字和下划线。
2、命名以是名词的复数形式,如cities,categories,friends等。
3、命名名尽量用全名。
4、若库中有多个系统,表名采用系统名称+单词或多个单词,系统名是开发系统的缩写,系统名称全部采用小写英文字符,如bbs_title,bbs_torum_type。
若库中只含有一个系统,那么表名仅用一个单词或多个单词。
5、单词选择能够概括表内容的一个或多个英文单词,单词间用下划线"_"分割,如user_info,user_type。
6、关连表命名规则为“表A_表B”,如:user_articletype,user_formtype。
3.2 添加entity属性3.2.1 添加entity属性步骤1)在上述窗口的“Attribute”选项标签上可以添加属性,如下图所示。
注意:数据项中的“添加属性”和“重用已有数据项”这两项功能与模型中Data Item 的Unique code 和Allow reuse选项有关。
P列表示该属性是否为主标识符;D列表示该属性是否在图形窗口中显示;M列表示该属性是否为强制的,即该列是否为空值。
如果一个实体属性为强制的,那这个属性在每条记录中都必须被赋值,不能为空。
按“Crtl+U”呼出“定制列过滤器”的窗口,可以根据自己的喜好和实际需要选择那些列出现在窗口中,那些隐藏。
使用快捷键“Crtl+E”可以允许或者禁止当前过滤器。
2)在上图所示窗口中,点击属性按钮,弹出属性对话框,如下图所示。
3.2.2 添加entity属性规范3.1.2.1 字段设计规范1、表名的name为汉字,code为字母;表中字段的name为汉字,并与备注是相同的;code为字母;2、一个表中的字段不要太多,理论上不要超过80个。
3、一个表中的各字段的访问频繁度应该基本一致。
4、一个表中的所有字段,应当能存储在一个数据块中(BLOCK),也即:表的单行字段总长度<db_block(减去pctfree)。
5、每个字段必须有注释,说明其含义,对于冗余字段还要特别说明其维护方法,外键字段说明参照与哪个表。
6、字段尽可能有默认值,字符型的默认值为一个空字符值串,数字型的默认值为数值0。
7、存储图片,视频,音频,文件,500字节以上文本等占用太多空间的字段(大对象字段),不能和其他字段存储在一个表中。
3.1.2.2字段命名规范1、字段名为有意义的单词,或单词的缩写。
2、如果字段由几个单词组成,则单词间用下划线("_")分割,如client_id,st_code等。
3、不要使用数据库关键字,如:name,time,datetime,password 等。
3.1.2.3字段类型及长度规范1、对于数值类型固定使用number。
number是最基本的数值类型,其他都是number的衍生,底层都是number,比如integer/int完全映射到number(38) 。
如果需要对number做复杂的运算,建议先用cast内置函数转换number为浮点数类型。
number是变长类型,在计算表存储空间的时候要切记。
2、char和varchar2的选择:从空间上考虑,用varchar2合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。
如果预期某列中的数据范围变化很大,但变化并不频繁,那末对这样的列使用varchar2最为适宜。
3、如果使用char,在数据迁移等出现以上情况,则必须使用trim()函数截去字串后的空格。
4、决定行长时,既不能太浪费,又不能太吝惜。
考虑到将来的需要,并且意识到,如果增加行长而没有改变一页中容纳的行数,那末增加的空间就等于免费使用。
5、能够用数字类型的字段尽量选择数字类型而不用字符串类型的,这会降低查询和连接的性能,并会增加存储开销。
这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。
6、尽可能把字段定义为notnull。
所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必须有默认值,因为在数据库查询中,有null值会影响查询的性能。
7、如无特别需要,避免使用大字段(BLOB、CLOB、LONG等),如使用必须使用BLOB或CLOB类型。
8、由数据库产生的系统时间首选数据库的日期型,如DATE类型。
3.3 属性的检查约束3.3.1定义属性检查约束操作在实体属性的特性窗口,打开如图所示的检查选项卡:在这个选项卡可以定义属性的标准检查约束,通过check约束可限制字段的取值。
窗口中每项的参数的含义,如下:3.3.2 约束命名规范主键约束:pk_表名_字段名外键约束:fk_表名_字段名唯一约束:un_表名_字段名非空约束:nn_表名_字段名检查约束:ck.....3.4 标示符3.4.1 标示符添加步骤CDM中的标识符等价于PDM中的主键。
如果实体只有一个标识符,则它为主标识符。
如果实体有多个标识符,则其中一个被指定为主标识符,其余的标识符为次标识符。
1、定义主、次标识符1)选择某个实体双击弹出实体的属性对话框。
在Identifiers选项卡上可以进行实体标识符的定义。
如下图所示2)选择第一行“主标识符”,点击属性按钮或双击第一行“主标识符”,弹出属性对话框,如图所示:3)选择"Attributes"选项卡,再点击“Add Attributes”工具,弹出如图所示窗口,选择某个属性作为标识符。
3.4.2标示符添加规范3.4.2.1主/外键规范1、除临时表和外部表,以及流水表外,其他表都要建立主键。
2、所有表的主键都设为表的ID,为int型,取值来自序列sequence自增;3、主键应当是对用户没有意义的。
如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。
4、对于500万以上的表,采用先建唯一索引再添加主键约束的方式来创建主键。
5、主键永远不能修改,也不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
6、尽量不用复合主键。
7、为了提高性能,对于数据量比较大的标要求对外健建立索引。
对于有要求级联删除属性的外键,必须指定on delete cascade。
8、pd中外键是通过关系Relationship自动来建立的,不需要手动建立。
不然会产生多余的键。
所以设计时,关注实体本身的字段,以及实体间的关系,特别是多对多和依赖关系。
3.4.2.2索引规范1、主健字段或组合字段必须满足非空属性和唯一性要求。
2、表建好后数据库自动为表生成一个索引(为自动增长的列生成唯一索引),如果在对这列添加索引,数据库会给一个警告,内容大概是,已经为这列添加了索引,建议修改索引名称和自动增长列名保持一致,为了方便使用。