Z便于l护业务逻辑Q可以考虑Business Rule和Domainsl合h使用。将业务Business Rule应用到Domains上,然后再把Domains应用到数据表的字D上?/p>
例如Q在拆迁目中,拆迁业务部分Q管理参C务部分,房源业务部分Q拆q合同部分的数据表中都有楼层q个字段Q因此先一个Business RuleQ然后定义一个DomainQ这L应的数据表的字段可以用这个Domain了?/p>
1.2.自定义数据类?Domains)的?br />oralce提供了一些内|的数据cdQ但是用户也可以Ҏ业务的需要,定义自定义的数据cd?/p>
在自定义数据cd里面包装业务逻辑?/p>
正如上面的房屋楼层,我们可以定义一个独立的数据cd(Domain)l护Q然后在相关数据表的
字段上用这个自定义数据cd?/p>
一般在定义自己的数据类型时候,可以在oracle基本cd上定义,然后可以加上一些standard check或者Business Rules?/p>
比如Q在拆迁目中,面积cdq个字段在很多数据表都出CQ可以作Z个单独的数据cdcȝ护,定义一个?面积cd?DomainsQ包含的U类有:0 --- 厅房面积,1 --- 使用面积,2 --- 单元面积,,3 --- d{面U?4 --- 分摊面积Q。而且׃Powerdesigner的提供关联作?q样便于当业务逻辑发生了变动,能够很快查询出那些对象受到媄响?/p>
1.3序列?Sequence)的?
在powersigner的模型里面定义一堆了SequenceQ接下来的是要把他们和数据表的相兛_D关联v来,特别是那些用于多个数据表字段的Sequence?/p>
一个数据表原则上只允许一个字D用SequenceQƈ且在数据表的字段使用Sequence前,应该把该Sequenced到数据表的Extended Dependencies中?/p>
如果一个数据表?个字D|者更多字D用了SequenceQ那模型查时会给出提CZ息?/p>
使用的规则一般是只能应用到数据表的主键字D上?/p>
主键字段?数据?“ID“或?“编号“构成?/p>
例如Q“房屋整合面U?数据表,那它的主键字D?房屋整合面积~号Q对应的Sequence?/p>
SEQ_房屋整合面积。其它数据表可能也用到了这个SequenceQ那也需要在使用前设|引用关pR?/p>
Q在数据表的Extended Dependencies 上设|引用关p)
1.4 Oracle Package的?br />在Oracle Package里面可以定一些procedure Q但是Oracle包引用的数据库对象到底有哪些呢,q些信息手动l护h。特别是Oracle Package使用了哪些数据表Q视图,以及Oracle Packag{信息徏议维护v来?/p>
1.5包的使用
PowerDesigner的包相当于文件夹。用户可以把它当作一个维护业务逻辑的容器。PowerDesigner包一般徏议按照业务模块来建立。如果模块需要细分,可以考虑建立PowerDesigner子包来完成?/p>
容器里保存的是模型对象的快捷方式。原始信息徏议不要放到容器里面。因为在要是把这些信息放到容器里Q在PowerDesigner的模型合q或者逆向工程Ӟq种方式的信息可能得不到l护?/p>
PowerDesigner的包下面的PhysicalDiagramQ徏议采用象ERWin的Subject Area那样Q按照某个主题或者业务角度的方式来组lPhysicalDiagram包含的对象,使得每个PhysicalDiagram的功能明?/p>
1.6.视图(View)的?br />视图一般是数据表或者视图上建立得来的(当然也可能引用了某个存储q程Q。一般视囄模型中应该维护视囄数据来源的引用信息?/p>
在我们现在的目中数据库模型没有对视图进行维护,为此需要在建立视图的Powerdesigner
模型?/p>
我在Powerdesigner9.5环境下通过逆向工程不能够获得视?view)的脚本,通过修改相关?/p>
|参敎ͼq是不能够获得脚本?/p>
可以通过以下2Ҏ获得视图(view)的脚本?/p>
Ҏ1Q用powerdesigner8.0的逆向工程获得视图的脚本,然后在Powerdesigner9.5中把?/p>
囄模型合ƈq来Q这样就可以对视图进行维护了?/p>
Ҏ2Q用Erwin逆向工程获得视图的Erwin模型Q然后再把模型保存ؓERXcd的文?/p>
在Powerdesigner9.5中导入该文gQ然后进行合q模型就可以?/p>
PowerDesigner的视图模型处理能力比较差Q不能构l护视图的依赖关p?也就是徏立视囑֯数据源的依赖关系)Q这一Ҏ显不如ERWin?/p>
1.7.同义词(synonymQ的使用
同义词相当于l数据库对象一个别名,提供了位|和数据的独立性。在跨数据库用户讉K对象Ӟ可以考虑建立同义词结合权限分配,化数据库对象的访问?/p>
1.8Q数据表的?br />数据表的注释语句的更新?/p>
业务背景Q?/p>
在我们的目中,Erwin模型中的数据表的注释语句没有同步到Oracle数据库。现在需要更数据库中的数据表的注释语句?/p>
可能可以采取的实现方法:
Ҏ1QErwin直接正向工程Q但是从Erwin直接正向工程׃注释语句中有回RW号Q更Cp|?/p>
Ҏ2Q如果把Erwin模型转换成ؓpowerdesigner模型再更新数据表的注释语句,q样可以避免回车符L问题Q按正常情况是可以行得通的Q但是由于Erwin模型中的逻辑模型和物理模型不一_甚至它们出现的顺序不一_q样获得powerdesigner模型׃正确了,生成的修Ҏ据库的脚本也׃正确了?/p>
实际采用的方法:
把Erwin模型转换成powerdesigner模型在Erwin中保存ؓERXcdQ然后在PowerDesigner导入模型Q,q且把文件保存ؓPDMcdQXML格式Q,删除模型中的视图Qdomains,Business Rule,reference{信息,只留下相x据表本n的信息,然后把模型文件的后缀修改XMLQƈ且采用XMLSPY生成q个文g的DTD文gQ再采用Java~写了一个基于SAX的程序去解析XML文gQ把各个数据表以及字D늚注释语句提取出来Q然后更新数据库中数据表和字D늚注释语句Q这样就可以了?/p>
1.9QERWin升到PowerDesigner的相关问?br />1.9.1 Domain的升U?br />从Erwin3.52升到PowerDesigner9.5ӞDomain信息和数据表的关联关pM丢失Q需要手动重新添?者间的关pR当然可以通过~程修改PowerDesigner的模型文Ӟd2者之间的兌关系。一般的PowerDesigner模型文g较大Q只要有个几十张数据表肯定模型文件有1MBQ徏议采用SAX的方式添加信息?/p>
注意Q添加数据表字段使用的Domain时候,需要设|数据表对Domain的引用关p(也就是Extended DependenciesQ?/p>
1.9.2 Business Rule的升U?br />从Erwin3.52升到Powerdesigner9.5QBusiness Rule的表辑ּ(脚本)需要修改的Q把所有的
Business Rule的表辑ּ中的@column 修改?COLUMN%
具体实现的方式,可以直接在Powerdesigner9.5里面修改Q或者把模型保存为XML格式Q文件类?.pdmQ?通过UltraEdit或者XMLSpy{工h修改Q一个查找替换旧搞定了。当然的注意
只能修改
同Domain一P从Erwin3.52升到PowerDesigner9.5ӞBusiness信息和数据表的关联关pM会丢失。如果Business Rule 不是太多手动修改模型文g?/p>
1.9.3.Sequence的升U?br />.Sequence的升U徏议采用和Domain的方式,~程实现l护?/p>
1.9.4.物理囄升
从Erwin3.52升到Powerdesigner9.5Q物理图同样能够倒入Powerdesigner9.5中,但是Powerdesigner9.5的升U功能有些问题:在生成的物理图中数据表的信息有些问题Q物理图中的数据表的字段昄不完全,而且很多时候数据表字段的类型都不能昄完全。我使用java采用sax的方式把升后的模型文gq行解析Q然后重新生成物理图中数据表的位|信息(数据表的2个坐标:左上角坐标,右下角坐标)Q另外根据业务需要可以生成自qPowerdesigner9.5包ƈ且可以创建物理图Q把数据表添加到物理图上?/p>
1.9.5.其他说明
从Erwin3.52升到Powerdesigner9.5Q我写了一些javaE序解决了相关问题,如果哪位同行遇到怼的问?/p>
可以交流一下?/p>
2Q关于powerdesigner中的数据l构的变更管?br />目前拆迁目中数据结构的有些失控Q在l合powerdesigner包的概念的基׃提出如下一些徏议?/p>
2.1Q数据结构按照业务模块进行维?br />模型中所有的数据l构都在一个文件中Q而且在顶层文件夹中各个业务模块维护的是数据结构的快捷方式?/p>
2.2Q数据结构按照其生命周期q行分类理?br />在各个业务模块的包下面徏立如下的包:
2.2.1临时试数据l构Q?br />是一些当前业务模块测试时使用的数据结构,可以随时被删?/p>
2.2.2讨论中数据结构:
是数据结构处于讨ZQ还没有定下来?/p>
2.2.3需要更新的数据l构Q?br />是数据结构已l确定下来,但是q没有更新到数据库中?/p>
2.2.4正式数据l构Q?br />在数据库中被业务正常使用的数据结?/p>
2.2.5作废中的数据l构Q?br />在数据库中以前被业务正常使用Q现在已l不再用,但是q没有进?/p>
被作废的数据表中数据的迁U,没有完全作废的数据结构。如果要把这些数据结构进行作废,
需要先q行数据q移Q以及其他相兛_理?/p>
2.2.6已经作废的数据结构:
在数据库已经不再被用的业务数据表,相关的数据迁Udl完成,但是数据表还没有删除Q?/p>
相关的文档没有更新?/p>