ER/Studio [매크로활용] 한글명(논리명)을 Comment(Definition)에 반영하기
2012.04.10 21:05
관련 링크 : Comment를 한글명으로 일괄변환
Download : 매크로 소스파일( LogicalName2Definition.bas)
※ 매크로 소스는 별도 문의 (ask@embarcadero.kr)
ER/Studio는 데이터모델링 시 반복되는 작업을 자동화하는 많은 매크로(macro)가 제공된다. (매크로 - 편리한 자동화)
한글로된 논리명(엔티티, 어트리뷰트)을 해당 Definition으로 자동으로 복사
논리 데이터 모델링을 할 때 엔티티나 어트리뷰트의 이름은 알기 쉽도록 표준화된 한글 용어에 따라 작성됩니다.
이러한 한글명은 ER/Studio에서 각 Definition 항목으로 관리하면 더욱 활용도가 높아집니다.
(참고: ER/Studio에는 텍스트로 메타정보를 기록할 수 있도록 Definition과 Note를 제공합니다)
특히, 이 한글명을 Definition으로 넣어두면 물리 DB에서도 해당 논리명과 의미를 유지할 수 있습니다.
ER/Studio에서는 모델의 Definition을 Comment로 생성하는 있으므로
논리 모델의 한글명을 각 Definition으로 관리하는 효과가 더욱 높아집니다.
첨부된 매크로를 사용하면 한글명을 Definition으로 일괄 복사할 수 있습니다.
논리 모델을 작업 화면에 열어둔 채로 매크로를 실행하면, 각 엔티티와 어트리뷰트의 명이 Definition으로 복사합니다.
(물리 모델의 경우에는 테이블과 컬럼의 Definition 으로 복사)
아래와 같이 모든 루프를 통해 EntityName과 Attribute의 논리명을 Definition에 할당하면 됩니다.
Sub Main Dim diag As Diagram Dim mdl As Model Dim ent As Entity Dim attr As AttributeObj Set diag = DiagramManager.ActiveDiagram Set mdl = diag.ActiveModel For Each ent In mdl.Entities ent.Definition = ent.EntityName For Each attr In ent.Attributes attr.EnableOverride(5,True) attr.Definition = attr.LogicalRoleName Next Next End Sub |
이렇게 매크로를 실행하고 나면 모델의 Table과 Column의 Definition에 한글명이 자동으로 들어가게 됩니다.
이 모델을 가지고 Generate Database를 할 때 아래와 같이 옵션을 체크하시면 Comment에 한글명이 들어갑니다
* 참고: ER/Studio에서는 Attribute의 LogicalRoleName (줄여서 LogicalName)이 실질적인 논리명입니다.
이 Logical Name은 Attribute명이 기본이지만, 필요에 의해 변경했다면, 당연히 변경한 것이 Logical Name이 됩니다
(예를 들어, 부모-자식 엔티티에서 관계에 연결된 자식엔티티의 Attribute 명을 바꿀 경우가 있습니다.
이 경우, 바뀐 Attribute 명이 Logical Name이 되는 것입니다)
ER/Studio에서는 변경 후 이름을 논리명으로 하고, 기존에 가져온 이름을 그대로 두기 때문에
Attribute의 원래 상속받은 이름과 수정된 이름을 한눈에 파악할 수 있습니다.
* 권장: 논리 모델에서 매크로 작업을 한 후, 물리 모델은 Compare & Merge 유틸리티를 사용하여 동기화 하기를 권장합니다.
가급적 모든 모델링 작업은 일관성 유지를 위해 논리 모델에서 진행한 후 Compare & Merge 유틸리티를 활용하여 확장하는 것이 좋습니다.
(주의, 논리 모델과 물리 모델이 자동 동기화하려는 시도는 확장성과 사용성 면에서 올바르지 않습니다)