미니옵빠의 code stubs

ERWin을 이용해서 mysql 데이터베이스의 ERD 뽑기 본문

Tools/ERWin

ERWin을 이용해서 mysql 데이터베이스의 ERD 뽑기

미니옵빠 2011. 8. 28. 19:47
출처 하늘그리기 | 라이트
원문 http://blog.naver.com/hwl925k/34306393

어느사이엔가 데이터베이스 모델링 툴의 대명사가 되어버린 ERWin. 데이터베이스 설계(대부분은 테이블레이아웃 만드는걸로 데이터베이스 설계를 대체하긴 하지만 -_-)작업 자체가 소프트웨어 프로젝트의 필수공정이다보니 사실 프로그래머치고 ERWin을 써보지 않았거나 들어보지 않은 사람은 그닥 많지 않을 것이다.

 

여담이지만, 변화하는 시대의 흐름을 프로젝트 방법론들이 못따라가고있다는 생각을 많이 한다. 사실 예전처럼 자기 데이터베이스만 덜렁 갖는 독립시스템보다는 서로 네트웤을 통해 연결되어있는 시스템들이 대세를 이루고 있지 않은가. 

 

이 경우 자기 데이터베이스가 아니라 남의 데이터베이스를 소켓, Tuxedo 등의 RPC성 서비스, 웹서비스 콜, LDAP 조회 등 다양한 방법을 통해 읽어오는 경우가 많은데, 보통들 보면 테이블 없어서 개발못한다는 얘기는 해도 인터페이스 명세 없어서 개발 못한다는 얘기들은 안하는걸 보면, 다들 인터페이스는 시스템 설계단계에서 풀어야 할 문제가 아니라 해당 인터페이스를 필요로 하는 개별 개발자가 알아서 해결해야할 문제로 보고있지 싶다.

 

어쨌든, ERWin을 사용하게 되면 여간 골치아프지 않은 문제 중의 하나가 바로 mysql과의 궁합 문제이다. 이놈의 모델링툴이 mysql을 지원하지 않기 때문. 지금도 구글에서 mysql erwin으로 검색해보면 왜 이게 지원이 안되냐고 아우성치는 수많은 모델러 및 개발자들을 만날 수 있다.

 

일단 다소간의 아쉬움을 달래보고자, ODBC를 이용해서 ERWin을 mysql에 붙이는 방법을 소개한다. 단, 이 방법은 auto_increment와 같은 mysql만의 독자기능을 전혀 수용하지 못하므로, 이미 존재하는 데이터베이스 스키마에서 ERD를 뽑아내서 산출물 목록에 살포~시 끼워넣는 정도로 활용하도록 하자.

 

아래에서는 위와 같이 ERWin의 reverse engineering을 이용해 ERD를 뽑아내는 예제를 보이고자 한다. 귀차니즘으로 인해 설명은 생략하나, 스크린샷이 워낙 직관적이므로 큰 무리는 없으리라 생각한다. ^^

 

1. Mysql ODBC 설치

-ODBC 드라이버 최신버전을 http://dev.mysql.com/downloads/connector/odbc/3.51.html에서 다운받아 설치

 

 

2. ODBC 데이터소스 설정

 

-제어판 > 관리도구 > 데이터원본(ODBC)를 실행하면 아래와 같은 화면이 나온다. '추가' 선택

 


-MySQL에 연결할 데이터소스 만들어야 하므로 MySQL 선택



-데이터소스 접속정보를 입력한다. 실제 내용은 보안상 생략 ^^

 



-짜잔~ comictestdb라는 이름의 ODBC 데이터소스가 생성되었다.

 



3. ERWin 실행하여 reverse engineering

 

-Tools > Reverse Engineer 메뉴 선택

 



-모델종류 선택: Physical만 선택해도 상관없으나 혹시 나중에 논리모델을 추가할 경우를 대비해서 Logical/Physical 선택

 



-Stored Procedure같은건 제외하고 Table만 가져오기 선택

 


 

-그렇게 하고 나면 접속창이 뜬다. Database에는 아까 ODBC 설정에서 만들어둔 ODBC 데이터소스를 선택.



 

-짜잔~ ERD가 뜬다. 인자 모델들간의 상관관계만 선으로 찍찍 연결해주면 끝.