1、通过数据库导入实体(此处已Oracle11g,作为实验数据库)
(1) 打卡erwin, 单击菜单栏Tool -> Reverse Engineer,弹出如下界面
(2) 选中Logical/Physical,并选择数据库类型,此处选择oracle,“next“,如下图
(3) 选择导入的方式”database“,选择导入erwin的用户,"next”,之后,Erwin就能导入源数据库中的表。
2、通过建表脚本,在Erwin中创建实体
(1) 打卡erwin, 单击菜单栏Tool -> Reverse Engineer,弹出如下界面
(2)选中Logical/Physical,并选择数据库类型,此处选择oracle,“next“,如下图
(3)选中源数据方式“Script”,“next”,就可以将导入建表脚本
注:如下的建表脚本,注意,每个建表语句结束后,要加“;”。
create table "客户信息" (
"编号" VARCHAR(8),
"客户名称" VARCHAR(6)
);
create table "地址信息" (
"编号" VARCHAR(8),
"地址名称" VARCHAR(6)
);
总结:通常,在做数据仓库时,通常使用第二种方法将实体导入Erwin中,建表脚本中的表名、字段名都使用中文命名。这样逻辑层、物理层都是中文。继续往下看。。。。
项目的建模工具,用的较多的有PD、Rose,我学生时代,就没听说过ERwin,这个工具也是进入项目组之后才了解到的。ERwin中分为逻辑模型和物理模型两种。在创建逻辑模型时,我们都是通过中文设计,这样就更直观的显示模型的作用;物理模型,是直接对数据库进行关联,对数据库进行操作,因此在给物理模型命名时,需要使用英文(不嫌麻烦、不嫌累,用中文也可以)。问题随之而来,如何将逻辑层的中文名,通过映射文件,直接生成物理层的英文名。对,需要映射文件,而且不是一个,是两个,一个定义表名,一个定义字段名。下面,将解释具体如何实现。
1)、打开ERwin,创建一个逻辑模型(可以使用我前面介绍的方法,通过脚本导入SQL建表语句,来批量创建逻辑模型),如下图:
2)、点击菜单栏'Tool'->'Names',选择'Model Naming Options',将弹出新对话框,选择‘Name Mapping’ 选项卡,
在'Entity to Table ' 和 'Attribute to Column',对应的Macro Name 中分别将 TXT1、TXT2的信息考入
TXT1:%Decl(test,_)%=(test,%Lookup(%substitute(%currentfile,.erwin,_TABLE.txt),%EntityName()))%If(%==(%Substr(%:test,1,1),_){%Substr(%:test,2)}%else{%:test}
TXT2:%Decl(test,_)%=(test,%Lookup(%substitute(%currentfile,.erwin,_FIELD.txt),%AttName))%If(%==(%Substr(%:test,1,1),_)){%Substr(%:test,2)}%else{%:test}
如下图:
注,在‘physical’选项卡中,case选项中包括 None、UPPER、lower、initial四种,具体含义为:如图
None:映射信息不表
UPPER:将映射字符全部转为大写
lower:将映射字符全部转为小写
initial:将映射字符的首字母转为大写
3)、接下来,首先要保持ERWin模型,保持文件名为XXX.erwin。Next,要新建两个txt映射文件,文件命名有约束,表名映射映射文件名为XXX_TABLE.txt(XXX为ERwin文件名),字段级文件映射文件名为XXX_FIELD.txt,并且要将这两个文件和XXX.erwin放在同一目录下。
XXX_TABLE.txt 文件内容为:
客户信息基表,CUST_INFO_TBL
XXX_FIELD.txt 文件内容为:
客户编号,CUST_ID
客户名称,CUST_NAME
年龄,AGE
性别,SEx
生日,BIRTH_DT
邮箱,EMAIL
注:ERwin根据映射文件,为物理模型命名时,是按照映射文件中映射先后顺序依次映射的,因此,要根据中文映射字符的长度减序排列。这点很重要,读者要在实际操作中体会这句话的含义。
4)、按照上述步骤设置完后,关闭ERwin模型,重新启动,因为,ERwin只在启动时读取映射文件,以后,修改了映射文件内容后,都要重启ERwin。点击‘Physical’,进入物理模型,ERwin将根据映射文件,自动为物理模型命名,如下图:
原文:https://blog.csdn.net/huaxin520/article/details/7646651