- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
ERwin 설정 본문
ERwin 표기방식 변경하기
Idef1x (Integration DEFinition for Information Modeling) 방식 => IE (Information Engineering) 방식
Model 메뉴 > Model Properties... > 세번째 Notation 탭에서 IDEF1X 에서 IE 로 변경해준다.
[참조] http://onesixx.tistory.com/376
ERD에서 자기 참조 관계를 표현하려면
그냥 그리는 것은 할 수 있는데, 아래와 같이 Relationships에서 Rolename을 지정해 주지 않으면
자기 테이블의 PK 컬럼이 자기 자신 컬럼을 FK로 참조하는 것으로 간주하여 Forward Engineering 으로 Script를 생성하여 실행시키면 SQL 에러가 난다.
따라서 반드시 다음과 같이 Rolename을 적어줘야 한다.
아주 간혹 2개 이상의 컬럼을 자기 참조하는 경우도 있을 수 있으므로 Rolename을 적어주기 전에 상단의 Migrated Attribute를 마우스로 먼저 선택하는 것이 좋다.
그리고 Physical View에서 하면 Logical View 에서는 Rolename 이 안 보이고, 이상하게 Rolename 으로 적어준 컬럼이 없어진다. 따라서 반드시 Logical View 에서 Rolename 을 적어줄것.
Logical 속성명에서 Physical Column명 자동 생성하기
Tools 메뉴 > Names > Model Naming Options... > General 탭 > Use File 항목에서 Browse 버튼 클릭해서 nsm 파일을 로드할 수 있다.
처음 저장할 때는 하단의 Naming Standards Editor 에서 Edit... 버튼을 눌러서 편집하고 저장하면 된다.
nsm 파일을 로드하고 나서는 Tools 메뉴 > Names > Edit Naming Standards... > Glossary 탭에서 수정.
Abbreviation 컬럼의 값이 Physical Column 명이 된다.
Physical Column명에서 '_' 를 붙이고 싶으면 Logical 속성명에서도 '_' 를 붙여야 한다. 그냥 공백으로 하면 Column 명에서는 공백이나 '_' 가 붙는 것이 아니라 두 단어가 붙는다.
ERwin Index Naming Rule을 이용한 인덱스 명 자동 변경 방법
[참고] http://blog.naver.com/atlaslee/20058715102
인덱스명을 정해진 명명규칙에 따라 부여하는 방법은
ERwin 도구에서 Tools -> Names -> Model Naming Option -> Name Mappint 에 들어가시면 Key Group to Index 항목이 있습니다.
아래 중에서 하나를 선택해서 Key Group to Index 항목에 넣으면 되는데, 맨 아래 것을 선택해서 넣었음.
%If(%==(%KeyType,PK)){U_}_%TableName
%If(%==(%Substr(%KeyType,1,2),IE)){N}U_%TableName
%If(%==(%Substr(%KeyType,1,2),IE)){N}U%If(%==(%KeyType,PK)){PK}_%TableName%If(%Not(%==(%KeyType,PK))){%Substr(%KeyName,%Len(%KeyName))}
%If(%==(%Substr(%KeyType,1,2),IE)){IX}%If(%==(%Substr(%KeyType,1,2),AK)){UIX}%If(%==(%KeyType,PK)){PK}_%TableName%If(%Not(%==(%KeyType,PK))){_%Substr(%KeyType,3,1)}
Tools 메뉴 > Forward Engineer > Schema Generation... 에서 Options 탭의 Schema 항목에서 Pre-Script 와 Post-Script 항목을 체크해 주고 Generate 버튼을 누르면 된다.%ForEachTable(){alter TABLE %TableName COMMENT = '%EntityName' ENGINE=InnoDB DEFAULT CHARSET=utf8;%ForEachColumn(){ALTER TABLE %TableName CHANGE COLUMN %ColName %ColName %AttDatatype %AttNullOption COMMENT '%AttName';}}
그런데 위와 같이 하면 MySQL DB에서 컬럼에 AUTO_INCREMENT 속성을 주었을때 문제가 발생한다.
AUTO_INCREMENT 속성은 ERwin에서는 NULL Option의 한 종류이기 때문이다.
Forward Engineer 로 Script를 생성하게 되면
AUTO_INCREMNT 컬럼의 경우
ALTER TABLE T_SCEN CHANGE COLUMN SCEN_ID SCEN_ID INTEGER IDENTITY(1) COMMENT '시나리오_ID';
이렇게 생성되기 때문. 이 명령을 실행하면 MySQL에서 당연히 오류가 발생한다.
그래서 이 Script를 다음과 같이 수정해야 한다.
%ForEachTable()
{
alter TABLE %TableName COMMENT = '%EntityName' ENGINE=InnoDB DEFAULT CHARSET=utf8;
%ForEachColumn()
{
%Decl(NullOption)
%If(%==(%Substr(%ColumnNullOption,1,8),IDENTITY)){%=(NullOption,AUTO_INCREMENT)}
%Else {%=(NullOption,%ColumnNullOption)}
ALTER TABLE %TableName CHANGE COLUMN %ColName %ColName %AttDatatype %:NullOption COMMENT '%AttName';
}
}
AllFusion ERwin Data Modeler: Macro Language
declares argument as a variableand optionally initializes itBasic Syntax Example:%Decl(<arg>,<initial value>)
http://mc.mungchung.com/xe/protip/102705?PHPSESSID=6097b14a6842483dba1042f6ffe32744
Physical 에서 Column 순서를 Logical 과 동일하게 정렬시키는 기능
ERwin 7.3 에서 Forward Engineering 으로 Script 를 만들 때
AUTO_INCREMENT 속성을 잘못 만드는 버그 수정하는 법
위 문서처럼 수정한 템플릿 파일을 첨부함.
ERwin 7.3.0.1666 버전에서는 위와 같은 오류가 있었는데, 7.3.4.1822 (Service Pack1)에서는 Fix 되었다.
CA ERwin Data Modeler 7.3 버전 Online Help - Macro Toolbox - Attribute Macros
ERwin 설치 시 에러나는 경우 (LogWatch Service Fail)
error 1920.service event log watch (logwatch) failed to start. verify that you have sufficient privileges to start system services.
Google에서 찾아보니 데이터 실행 방지 때문에 그런다는데, 내 경우에는
이전에 설치됐던 것을 uninstall 했었는데, LogWatNT.exe 프로그램이 계속 실행되고 있었기 때문이었다.
Windodws 작업 관리자에서 이 프로세스를 끝내기 하고, C:\Program Files (x86)\CA 에 남아있던 파일들을 삭제하고, 다시 설치하니 잘 설치되었다.
[주의] Windows 작업 관리자에서 하단에 "모든 사용자의 프로세스 표시" 버튼을 클릭해야지 보인다.
LogWatch 프로세스에 대한 정보
=> http://www.windowexe.com/bbs/board.php?bo_table=board01_l&wr_id=221
참고로 데이터 실행 방지를 회피하는 방법은 다음 URL에 나와 있다.
http://www.dracure.com/cmty01/view.php?ccd=W100&idx_cm=11130211p7wuTQ3jAoOg
'컴퓨터 일반' 카테고리의 다른 글
Windows 에서 절전모드가 자동으로 해제되는 이유 (1) | 2013.06.29 |
---|---|
node.js 시작하기 (3) | 2013.04.27 |
StarUML - ERD 모듈 설치 (0) | 2013.04.16 |
삼성 노트북(NT-R780-PS5SA) VGA 드라이버 (0) | 2012.09.06 |
한영키를 눌렀는데 한영 전환이 안될때 (0) | 2012.08.17 |