ERWin을 이용한 표준화와 도메인정의 5 3 33,182

by 김정식 [ERWin Modeler] ERWin 도메인 [2007.01.12 12:08:37]


데이터 설계의 핵심은 표준화와 도메인 정의


김정식 l ‘오라클 ACE’이면서 개발자 커뮤니티 ‘oracleclub.com’을 운영


필자는 SI 프로젝트에서 데이터베이스 모델링과 오라클 SQL 튜닝 (Oracle SQL Tuning), 그리고 오라클, 자바, JSP를 이용해 웹 기반 시스템을 개발하는 소프트웨어 엔지니어(soft ware engineer)로 일하고 있다. 주로 Oracle SQL Developer를 이용해 SQL 문장 튜닝과 오라클 관련 데이터베이스 작업을 수행하고, 데이터베이스 모델링 단계에서는 ERWin을 즐겨 사용하고 있다.



2. 노하우&테크닉



대형 프로젝트에서는 전문적으로 데이터베이스를 관리하고 모델링 하는 데이터 모델러(modeler)가 따로 있지만, 아직도 현업의 많은 프로젝트에서는 정확한 데이터 모델링을 수행하지 못하는 개발자가 데이터 모델링을 담당한 채 진행되고 있다.

데이터 아키텍처(data architecture) 전문가들은 데이터 모델을 건물의 골격에 종종 비교하곤 한다. 건물의 골격이 사용자 요구나 업무 변화에 따라 쉽게 흔들린다면 갖가지 문제를 발생시키게 됨은 지극히 당연한 결과이다. 따라서 필자는 프로젝트의 근간이 될 데이터 모델링을 ERWin 툴을 이용해 수행하는 방법을 소개하려 한다. 이를 참고해 프로젝트에 반영하면 일반 개발자도 데이터 표준화와 도메인 정의 등을 통해 정확하고 일관성 있는 데이터 설계를 마칠 수 있다.

여기서 데이터 표준화란 데이터 요소의 생성에 규칙을 적용해 데이터의 품질을 향상시키려는 계속적인 활동을 의미한다. 데이터 표준화를 적용해 데이터를 관리하면 데이터의 정의, 표현, 생성에 일관성이 확보되어 데이터 품질을 향상시킬 수 있고, 공통된 데이터 관리가 이뤄지게 된다. 자연스레 시스템 통합 및 확장에도 유연하게 대처할 수 있다.
데이터 표준화 작업에는 여러 가지 단계가 있다. 여기서는 우선 데이터 표준 용어사전을 이용한 명칭 표준화와 도메인 정의를 통한 데이터 타입 및 길이 표준화 등을 이용한 데이터 모델링 방법에 대해 설명한다.

● 명칭 표준화 : 같은 의미의 컬럼과 필드는 동일한 용어를 사용하도록 한다.
● 데이터 타입과 길이의 표준화 : 동일한 속성이라면 동일한 데이터 타입과 동일한 크기를 가진다.
● 도메인 정의 : 도메인이란 속성들의 동일 정보 속성을 표현한 최소의 단위로 데이터 타입, 크기, 데이터 제약으로 구성된다. 도메인 정의를 통해 업무적으로 동일한 속성을 가지는 속성이 다른 속성으로 정의되는 것을 방지한다.

앞으로 설명할 예제는 <그림 1>과 같이 고객이 제품을 주문하는 모델링을 기준으로 한다. 여기서는 엔티티(entity), 관계, 식별자 정의가 완료되었다고 가정한다. 그럼 표준 용어사전의 생성과 도메인 정의를 이용한 물리 모델링 방법에 대해 알아보자.

ERWin에서 File → New 메뉴를 실행한 후 Model Type은 Logical/Phisical로, Database는 Oracle 9.x로 선택한 후 메뉴의 Model → Logical Model에서 <그림 1>과 같이 새로운 논리설계를 작성한다.

<그림 1> 고객 제품 주문 예제 모델링




표준용어사전 정의



데이터 요소에 규칙을 적용해 표준용어를 정의하면 간결하고, 고유하고, 일관성 있게 엔티티명과 속성명을 관리할 수 있다. 또한 영문명과 영문 약어명을 이용하여 논리적 속성명이 물리적 컬럼명으로 자동 대응되도록 설정할 수 있다. 즉, 논리설계만으로도 물리적인 테이블과 컬럼 설계를 일관성 있게 자동 생성할 수 있다. 데이터 모델이 Logical인 상태에서 Tools → Names → Edit Naming Standards Editors 메뉴를 실행하여 하단의 Glossary 탭을 선택하면 <화면 2>와 같이 표준 용어를 입력하는 창이 실행된다.

<화면 2> Edit Naming Standards Editors 실행


Word/Words 란에는 논리적 모델에서 사용되는 표준용어를 기술하고, Abbreviation 란에는 영문 약어명을, 그리고 Alternate Abb 란에는 영문명을 기술한다. P는 Prime의 약어로 중심어를 나타내고 M1, M2는 Modifier 1, 2의 약어로 Prime과 Class를 구분할 수 있는 단어를 의미한다. C는 Class로 데이터 타입의 주요 종류를 묶어 지정하는 단위이다. 아래의 Glossary 옆에 있는 Logical, Physical 탭에서 Part를 선택하여 엔티티나 속성에서 사용되는 용어를 일정한 룰로 관리할 수 있다.

Import를 클릭하면 *.csv, *.txt 파일의 용어사전을 읽을 수 있고, Export를 클릭하면 용어사전을 다른 파일 형식으로 저장할 수 있다. <표 1>과 같이 예제에서 사용되는 표준용어와 영문 약어, 영문명을 Glossary 탭에 모두 입력한 후, ‘저장’ 버튼을 클릭해 C:\temp 디렉토리 아래에 샘플.nsm 파일로 저장한다.


용어사전 데이터 모델 적용



저장된 용어사전을 데이터 모델에 적용하기 위해서는 Tools → Names → Model Naming Options 메뉴를 실행한 후, General 탭에서 이전에 만든 용어사전을 불러온다. Use File에 Browse 버튼을 클릭하여 C:\Temp\샘플.nsm 파일을 선택한다. <화면 3>을 참고하자.
용어사전 파일을 지정한 후 Name Mapping 탭을 선택한다. 이어 용어사전을 적용할 대상을 <화면 4>와 같이 선택한다. <화면 4>는 용어사전을 Entity, Attribute명에 적용한 것이다.

Use Gloss를 체크하여 용어사전을 적용할 대상을 선택한다. Abbreviation Type을 선택해 용어사전에서 정의된 영문 약어명을 사용할 지, 아니면 영문명을 사용할 지를 선택한다. Prefix를 사용하면 테이블명 앞에 고정적으로 존재하는 용어를 지정할 수 있다. ERWin Macro는 ERWin의 약속 언어라 할 수 있는 매크로를 사용할 수 있게 해준다. 예를 들어 다섯 번째 라인의 Key Group to Index에 %TableName_%KeyType_IDX를 지정하면 Primary Key 인덱스 명이 테이블명_키명_IDX로 생성된다.

<화면 3> 용어사전 파일 지정

<화면 4> Name Mapping 선택


OK 버튼을 클릭해 설정 사항을 저장한 후 Model → Physical Model을 선택하면 <그림 2>와 같이 물리적 모델의 테이블명과 컬럼명이 자동으로 생성된 것을 볼 수 있다.

<그림 2> 물리 모델 적용 화면



도메인 만들기



도메인 정의를 이용하면 업무적으로 동일한 속성들이 같은 데이터 타입과 길이를 가지도록 할 수 있다(다른 속성으로 정의되는 것도 방지한다). <표 2>는 데이터 모델링을 하기 위해 실제 도메인을 설계한 한 가지 예이다.

도메인 정의를 한 후 Model → Domain Dictionary를 클릭하여 도메인을 등록할 수 있다. 우선 <화면 5>와 같이 Hierar chically를 선택한 후, 정의한 도메인을 모두 New 버튼을 이용해 계층적으로 등록한다. 이어 Datatype 탭에서 도메인의 데이터 타입을 지정한다.

등록한 도메인을 실제의 물리 모델링에 적용하기 위해서는 엔티티를 더블클릭 한 후 설정 할 수 있다. <화면 6>과 같이 왼쪽에 컬럼명을 선택하고 오른쪽에 General 탭을 선택하면 등록된 도메인 목록을 조회할 수 있다. Hierarchically를 선택해 계층구조로 조회한 후 각 컬럼에 해당하는 도메인을 선택하면 데이터 타입 정보가 자동으로 변경된다.
CUST_NO는 ‘번호>번호_PK_’, CUST_NAME은 ‘명칭>이름’, ZIP_CODE는 ‘번호>우편번호’ 식으로 컬럼에 해당하는 도메인을 선택하면 된다. 도메인이 등록되지 않은 컬럼은 ORACLE 탭에서 데이터 타입을 직접 지정해준다.

<화면 5> 도메인 등록 화면


데이터 용어사전과 도메인 정의 기능을 사용하면 일관성 있게 데이터 모델링을 할 수 있고, 물리 모델링 역시 더 빠르고 정확하게 할 수 있다. 시스템이 확장되거나 변경될 때도 용어사전과 도메인의 추가 및 편집만으로 쉽고 일관성 있게 데이터 모델링을 변경할 수 있다. 데이터 모델링 단계에서 이를 직접 사용해보길 바란다. 처음에는 다소 불편하게 느껴질 수도 있지만, 곧 데이터 모델링의 효율이 훨씬 높아졌음을 알게 될 것이다.

<화면 6> 엔티티에 도메인 적용


3. 이 한마디



이제 막 DB 분야에 발을 담근 개발자라면 3년 후, 5년 후, 그리고 10년 후 반드시 이루고 싶은 자신만의 분명한 목표를 가졌으면 한다. 물론 그 목표는 자신이 가장 좋아하고 즐겁게 일할 수 있는 분야에서 선택해야 한다. 그리고 한 가지 분야와 목표를 선택했으면, 그 목표를 위해 절대 포기하지 않고, 한 걸음씩이라도 조금씩 진행해가는 것이 중요하다. 자신이 목표로 세운 한 가지 분야에서만큼은 누구에게나 손꼽히는 개발자가 될 수 있도록 노력하자. 아울러 필자는 여러 분야를 두루 잘 알기보다는 먼저 한 가지 분야에서 ‘스페셜리스트’가 되는 것이 더 중요하다고 생각한다.

아울러 나 자신을 조금씩이라도 많은 이들에게 알리는 것도 소홀히 해서는 안 된다. 가장 적절한 활용 예로 블로그 활동이나 커뮤니티 운영 등이 있다. 분명 블로그나 커뮤니티 등은 온라인에서 자신의 생각과 가치를 많은 사람들에게 알릴 수 있는 손쉬운 방법 가운데 하나다. 또한 많은 사람들과 자연스러운 커뮤니케이션을 할 수 있게 해줘 경험을 공유할 창구로 이용된다.



1년 계획으로 충분한 학습을



오라클 데이터베이스에 대한 공부를 이제 막 시작한 학생이나, 경험이 그다지 많지 않은 개발자들에게 다음의 말을 당부하고 싶다. 너무 성급하게 오라클 데이터베이스 전체를 알려고 하지 말 것!

오라클 데이터베이스는 이미 30년 이상의 세월 동안 체계적으로 발전해온 데이터베이스다. 따라서 오라클 데이터베이스를 수년간 관리해온 현업 DBA나 컨설턴트들도 오라클 데이터베이스의 모든 기능을 제대로 이해하고 활용하긴 어렵다.

때문에 오라클 데이터베이스를 배워야 하는 목적을 나름대로 분명히 세우고, 그 목적에 맞게 커리큘럼을 작성하는 것이 좋다. 일반적으로 1년의 기간에 해당하는 계획을 세운 후 SQL → PL/ SQL → Database Administration 순으로 학습하는 것이 효과적이다. 우선 오라클 데이터베이스의 아키텍처와 Adminis tration 기능을 이해한 후, 튜닝(Tuning)이나 다른 고급 기능들에 관심을 가지는 것이 좋다. 의욕이 앞서 한꺼번에 너무 많이 학습하다보면 쉽게 지치게 마련. 오라클 데이터베이스 학습에 어려움을 느껴 일찌감치 포기하는 이들은 대부분 이런 경우다.

필자는 이론이나 자격증 위주의 학습보다는 실습 위주로 공부할 것을 권하지만, 오라클 데이터베이스를 학습하기 위해 OCP 자격증을 취득하는 것에는 개인적으로 찬성한다. OCP 자격증을 취득하는 것은 곧 오라클 데이터베이스를 본격적으로 학습할 자격을 얻었음을 의미하기 때문이다. 필자의 경우 OCP 자격증 취득은 오라클 데이터베이스를 더 깊이 있게 공부할 수 있는 좋은 디딤돌이었다.

마지막으로 마소 창간 23주년을 진심으로 축하하고 싶다. 필자 역시 마소의 애독자였고 마소를 통해, 그리고 마소와 함께 프로그래머로서의 꿈을 키울 수 있었다. 앞으로도 마소는 많은 개발자들이 새로운 기술을 쉽게 습득할 수 있는 주요 매체로 존재하게 될 것임을 확신한다.

OTN을 이용한 오라클 DB 학습


오라클 데이터베이스를 처음 시작하는 입문자들에게 조금이라도 도움이 되고자 OTN을 이용한 데이터베이스 학습 방법을 소개한다.
OTN은 오라클의 모든 제품군을 이용하는 개발자나 DBA를 위한 최대 규모의 세계적인 오라클 온라인 커뮤니티이다. 이곳을 통해 개발 업무에 활용할 만한 오라클 소프트웨어를 다운로드 할 수 있고, 포럼을 통해 오라클 관련 기술에 관한 문의를 할 수 있다. 또한 샘플 코드나 기술 문서들도 볼 수 있다.
OTN이 제공하는 입문자용 강좌와 디스커션 포럼, 테크니컬 아티클(Technical Articles) 및 테크니컬 노트(Technical Notes), 그리고 테크니컬 게시판(Technical Bulletins)의 기술 자료들을 효과적으로 이용하면 더 쉽고, 더 빠르게 오라클 솔루션들과 친해질 수 있다. 누구나 쉽게 오라클 데이터베이스와 애플리케이션에 입문할 수 있는 강좌가 다수 제공되므로 반드시 들려볼 것을 권한다.


이 가운데 디스커션 포럼은 커뉴니티 회원들 간에 기술 문의 및 정보 공유가 이뤄지는 곳으로 모든 오라클 제품군에 대한 지식을 얻을 수 있다. 아울러 국내의 여러 오라클 분야 고수들도 이곳에 참여해 기술 문의에 대한 좋은 해결책을 제시하고 있다.


테크니컬 아티클과 테크니컬 게시판은 오라클 제품군과 관련된 다수의 기술 문서들을 제공한다. 이들 문서들은 실제로 필자가 개발 작업이나 DBA 업무를 수행할 때 가장 많이 참고한 자료들이다. 특히 테크니컬 아티클은 오라클 전문가들의 컬럼 외에 전문가들의 블로그 사이트와도 직접 링크되어 보다 많은 정보를 얻을 수 있다.


테크니컬 아티클은 OTN 메뉴에서 바로 접속할 수 있고, 테크니컬 게시판은 http://211.106.111.114/bulletin/list.jsp로 접속한다. 테크니컬 게시판의 예제들은 실제 테스트하면서 학습할 수 있는 것들이 많으므로 이를 잘 활용하길 바란다. 한편 테크니컬 노트 메뉴는 오라클 매거진에 연재되는 기사들을 pdf 파일로 정리해 제공하고 있다.
이처럼 OTN이 제공하는 갖가지 메뉴 서비스만 잘 이용해도 오라클 제품군에 대한 충분한 정보와 지식을 얻을 수 있다. OTN은 오라클을 사용하는 모든 이들을 위해 열려 있는 공간이다. OTN에 자주 접속하는 습관을 들이거나 이를 통해 세미나에 자주 참석하다보면 어느 덧 실력이 향상되는 것을 느끼게 될 것이다.


또한 필자가 운영 중인 오라클 개발자 커뮤니티 ‘OracleClub.com’도 학습에 활용할 만하다. 이는 국내의 모든 개발자들과 함께 오라클 관련 지식을 교류하기 위한 오라클 전문 커뮤니티로 오라클에 처음 입문한 학생부터 실무 개발자에 이르기까지 한데 아우르는 공간이라고 할 수 있다. 현재 초중급 수준의 오라클 강좌를 제공하고 있고, 매주 토요일 데이터베이스 관련 오프라인 스터디를 진행하고 있다.


오라클 ACE 프로그램


‘오라클 ACE(Oracle ACE)’는 오라클 데이터베이스 관련 기술 분야에서의 최고 전문가를 의미하는 타이틀이다. 이는 기술적인 전문성을 보유했을 뿐 아니라 각종 행사 강연이나 블로그 활동, 혹은 OTN 사용자 포럼 등의 커뮤니티 활동을 통해 적극적으로 자신의 지식을 공유하려 한 DB 엔지니어 가운데 선정된다. 전 세계적으로 지금껏 총 50여명의 오라클 ACE가 선정되었고, 국내에는 현재 아시아태평양 지역 최초의 오라클 ACE인 김도근 씨와 필자가 선정되어 활동하고 있다.


오라클 ACE에게는 국내에 알려지지 않은 새로운 오라클 관련 기술들을 APAC 디벨로퍼 서밋(APAC Developer Summit)이나 오라클 오픈 월드(Oracle Open World) 등의 해외 컨퍼런스에서 습득할 기회가 주어진다. 이런 과정에서 얻은 기술과 지식들을 국내에서 이뤄지는 각종 세미나나 커뮤니티 활동 등을 통해 전수하는 것도 오라클 ACE의 몫이다. 또한 ACE들은 그 외에도 여러 가지 방법으로 실무에서 얻은 경험과 체계적으로 축적한 기술들을 국내 개발자들과 함께 공유하고 발전시키려 노력하고 있다. 이처럼 지식과 기술의 전달은 오라클 ACE에게는 매우 중요한 역할이며, 한편으로는 이런 과정을 통해 오라클 ACE 역시 한 차원 더 높은 전문가로 거듭날 수 있다.


전 세계적으로 가장 유명한 ACE로는 이른바 ‘오라클의 대부’인 Ken Jacobs(오라클 수석 부사장)을 꼽을 수 있다. 닉네임인 ‘Dr.DBA’로 더 많이 알려진 Ken Jacobs는 지난 2003년에 오라클의 지난 25년을 돌아보는 회고록을 썼을 만큼 오라클의 산 증인으로 통한다.


필자는 오라클 ACE의 자격으로 지난 5월 홍콩에서 개최되었던 APAC 디벨로퍼 서밋 2006 행사에 참여했다. 이 자리를 통해 미국 본사와 아시아 태평양 지역의 오라클 ACE들을 직접 만나볼 수 있었고, 자연스레 오라클의 최신 기술도 접할 수 있었다(이와 관련된 내용은 이미 마이크로소프트웨어 2006년 8월호에 소개된 바 있다).
아울러 필자는 이 행사에서 Ken Jacobs를 대면하고 직접 대화를 나눌 기회를 얻었다. 오라클에서 25년 동안 한 분야의 길을 걸어온 Ken Jacobs가 개인적으로 존경스럽게 느껴졌고, 필자 역시 오라클 데이터베이스 분야에서 오랜 기간 전문가로서의 길을 가겠다는 목표도 생겨났다.

오라클 ACE 프로그램에 대한 보다 자세한 정보는 OTN(Oracle Technology Network) 웹 사이트(www.oracle.com/technology/ global/kr/index.html)에 있는 ‘Oracle ACEs’ 메뉴에서 확인할 수 있다.



제공 : DB포탈사이트 DBguide.net

출처명 : 마이크로소프트 [2006년 11월호]
by 오각형 [2009.12.22 09:04:02]
오래된 글이지만, 잘 봤습니다~ nsm 파일을 이용하는 방법과 도메인을 정의해놓고 사용하는 방법 중에 어떤게 더 나을까요? ^^; 도메인을 미리 정의해놓고 사용하다가, nsm 파일 사용하는 것을 알게 되었는데요. 아직은 도메인을 미리 정의해놓고 사용하는 것이 더 편한 것 같습니다. 도메인 목록에서 변경하면 다 똑같이 적용되니까 그런 점이 편하더라구요. nsm 파일은 꼭 세트로 같이 있어야 되는 불편함이 있더라구요. 사이트에 나가보면 nsm 파일이 없는 경우가 더러 있었습니다. 어쨌든 두 방법 다 잘 활용하면 좋을 것 같습니다. ^^

by 일수니 [2016.04.05 14:41:13]

요즘은 메타표준화 솔루션을 많이 사용하고 있어서, NSM을 만들어서 하는 경우보다,

API를 기반으로 메타와 연계해서 사용하는 경우가 더 많은 것 같습니다.

이렇게 하면 한글용어 부터 검색할 수 있고, 도메인도 자동 반영되므로 훨씬 더 편하고 정확하게 모델링에 집중할 수 있습니다.

https://www.dropbox.com/s/39pv83q4dr1l97m/AM%20Pro%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EB%A7%A4%EB%89%B4%EC%96%BC%2820151019%29.pdf?dl=0

에서 표준시스템 연계 부분을 검토해 보세요. 그리고 해당 모듈이 필요하시면 언제든지 신청하시면 됩니다. 해당 모듈에 관련된 셈플들이 들어가 있답니다.

 


by 손님 [2017.01.27 23:32:43]
그동안 DA#만 쓰다가 몇 일 전부터 ERWIN을 쓰면서 DA#에 비해서 너무 않좋은 툴이라고 생각했었는데, ERWin에도 이렇게 좋은 기능이 있었군요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입