IT

PostgreSQL 리버스 엔지니어링(reverse engineering) 적용하기

유병혁 2017. 6. 18. 11:06

이번 글에서는 포스트그레스큐엘(PostgreSQL)에 리버스 엔지니어링(reverse engineering)을 적용해보도록 하겠습니다.

리버스 엔지니어링은 데이터베이스 디자인 툴에서 제공되며, DBMS 스키마를 ER 모델로 변경해주는 기능을 제공합니다.


예제로 사용할 데이터베이스는 WebODM의 webodm_dev입니다. 참고로, 해당 ER 다이어그램은 아래와 같습니다.

ER Diagram - WebODM | 출처: https://libraries.io/github/pierotofy/WebODM


PostgreSQL을 지원하는 데이터베이스 디자인 툴은 아래와 같이 다양한데요,

GUI Database Design Tools | https://wiki.postgresql.org/wiki/GUI_Database_Design_Tools


여기서는 SQL Power*Architect Community Edition을 이용하도록 하겠습니다.

Power*Architect | http://www.sqlpower.ca/page/architect

아래와 같이 Community Edition은 기능적 제약이 있으나 라이센스를 요구하지 않는 버전입니다.


해당 프로그램을 설치합니다.


SQL Power Architect 실행 화면입니다. 이제 리버스 엔지니어링을 실행해볼까요?!


이 툴을 이용한 포워드/리버스 엔지니어링 방법은 아래 유튜브 동영상을 참고하셔도 되겠습니다.

Forward/Reverse Engineering with SQL Power Architect (1 of 3)


앞서 기술한 것처럼 제가 사용할 데이터베이스는 webodm_dev입니다. pgAdmin 3에서 본 화면은 아래와 같습니다.


Power Architect 상단 메뉴에서 '연결 > 원본 연결 추가 > 새 연결'을 클릭합니다.


아래와 같이 새 연결 창이 실행되는데요,


데이터베이스 종류를 보면 목록에 PostgreSQL을 보실 수 있습니다.

참고로 erwin Data Modeler에서는 PostgreSQL ODBC driver를 통해 연동하실 수 있습니다.


아래와 같이 적합한 정보를 기입한 후, 'Test Connection'을 통해 연결되었는지 확인합니다.


이제 webodm_dev가 추가되었습니다. 리버스 엔지니어링은 간단하게 좌측 데이터베이스 이름을 우측 공란으로 드래그 앤 드롭하시면 되겠습니다.


아래 보시는 것처럼 PostgreSQL과 PostGIS의 일부 데이터 유형은 인식되지 않거나, 선택 창이 표시됩니다.

Character Types | https://www.postgresql.org/docs/9.5/static/datatype-character.html

JSON Types | https://www.postgresql.org/docs/9.5/static/datatype-json.html

Raster Reference | https://postgis.net/docs/RT_reference.html

 

 


아래와 같이 리버스 엔지니어링이 적용되었습니다.


툴 상단에서 아래 '자동 배치' 버튼을 클릭하면,


아래와 같이 ERD가 적절하게 자동 배치되어 표현됩니다.