리버스 엔지니어링(기존 DB 가져오기)
이미 쓰고 있는 데이터베이스에 접속해 테이블 구조를 읽어 와 새 ERD 프로젝트로 만듭니다. 테이블 · 컬럼 · 자료형 · 기본키 · 외래키(관계선)와 주석(논리명)을 가져오며, 데이터베이스는 읽기만 하고 바꾸지 않습니다. SQL Server · MySQL · Oracle · PostgreSQL을 지원합니다.
이럴 때 씁니다
- 설계 문서 없이 운영되던 데이터베이스의 구조를 그림으로 파악할 때.
- 기존 데이터베이스의 테이블 정의서를 만들어야 할 때 → 테이블 정의서.
- 기존 시스템을 고쳐 설계할 출발점이 필요할 때.
- 인수인계받은 데이터베이스에서 테이블 사이의 관계를 확인할 때.
메뉴 위치

프로젝트 시작 창 아래쪽의 기존 데이터베이스 리버스 엔지니어링 영역에서 데이터베이스 로고를 클릭합니다.
- 프로젝트 시작 창은 프로그램을 켜면 나타납니다. 작업 중에는 툴바의 파일 ▾ › 새 프로젝트…(Ctrl+N)로 엽니다 → 프로젝트 시작 창.
- 로고는 SQL Server · MySQL · Oracle · PostgreSQL 네 가지입니다. MongoDB는 리버스 엔지니어링을 지원하지 않습니다.
| 데이터베이스 | 진행 방식 |
|---|---|
| SQL Server · MySQL · Oracle | 3단계 창 — 다음으로 접속 → 테이블 고르기 → 읽은 내용 확인 |
| PostgreSQL | 한 창 — 접속 · 데이터베이스 · 스키마 · 테이블을 한 화면에서 고르고 가져오기 |
화면과 버튼
SQL Server · MySQL · Oracle — 3단계 창
창 위쪽에 Reverse Engineer for MSSQL처럼 데이터베이스 이름이 표시되고, 아래쪽 이전 · 다음 버튼으로 단계를 오갑니다(1단계에서는 이전이 숨겨져 있습니다). 다음 단계를 준비하는 동안 다음 버튼은 처리 중...으로 바뀌고 흐려집니다.
| 단계 | 화면 | 하는 일 |
|---|---|---|
| 1 | 서버 접속 설정 | 호스트 · 포트 · 사용자 ID · 비밀번호를 넣고 접속 테스트. 성공하면 데이터베이스 목록에서 가져올 데이터베이스를 고릅니다. Oracle은 데이터베이스 대신 서비스 이름을 넣습니다 |
| 2 | 가져올 수 있는 테이블 · 선택한 테이블 | 왼쪽은 데이터베이스의 테이블 목록, 오른쪽은 가져올 테이블. 가운데 » 버튼으로 오른쪽에 넣고, « 버튼으로 뺍니다 |
| 3 | 읽은 내용 목록 | 테이블마다 컬럼 · 기본키를 읽은 기록과 외래키 목록(FK LIST)이 표시됩니다 |
- Oracle은 접속한 계정이 가진 테이블만 목록에 나옵니다.
PostgreSQL — 한 창
PostgreSQL 리버스 엔지니어링 창은 위쪽에 접속 정보와 데이터베이스 · 스키마, 가운데에 가져올 테이블 목록, 아래쪽에 진행 기록 칸과 가져오기 · 취소 버튼이 있습니다. 위에서 아래로 차례대로 고르면 되고, 스키마 옆의 안내 글에 지금 할 일이 표시됩니다.
| 이름 | 처음 값 | 하는 일 |
|---|---|---|
| 서버 | localhost | 데이터베이스 서버 주소 |
| 포트 | 5432 | 접속 포트 |
| 사용자 | postgres | 접속 계정 |
| 비밀번호 | 비어 있음 | 계정 비밀번호(가려져 표시) |
| 연결 | — | 접속하고 데이터베이스 목록을 불러옵니다 |
| 데이터베이스 | 목록의 첫 번째 | 고르면 스키마 목록을 불러옵니다 |
| 스키마 | public(있으면) | 고르면 테이블 목록을 불러옵니다 |
| 가져올 테이블 | 모두 체크 | 가져올 테이블을 체크합니다. 전체 선택 · 전체 해제 |
| 가져오기 · 취소 | — | 체크한 테이블로 새 프로젝트를 만듭니다 / 창을 닫습니다 |
가져오는 것
| 데이터베이스에서 | ERD에서 |
|---|---|
| 테이블 | 엔티티(물리명) |
| 테이블 주석 | 엔티티 논리명 |
| 컬럼 이름 · 자료형(길이 · 자릿수) · NULL 허용 · 기본값 | 컬럼 |
| 컬럼 주석 | 컬럼 논리명 |
| 자동 증가 컬럼 | A.I(자동 증가) |
| 기본키 | PK |
| 외래키 | 관계선. 외래키 제약 이름이 관계선 이름이 됩니다 |
- SQL Server · MySQL · Oracle에서 가져온 관계선은 모두 비식별 관계(1:N)입니다.
- PostgreSQL은 자식 테이블의 외래키 컬럼이 모두 그 테이블의 기본키이면 식별 관계(1:1)로, 아니면 비식별 관계(1:N)로 가져옵니다 → 관계선(FK) 편집 · 기호 표기.
- 테이블에 저장된 데이터(행)와 인덱스 · 트리거 · 프로시저는 가져오지 않습니다.
따라 하기
SQL Server · MySQL · Oracle
- 프로젝트 시작 창을 엽니다
툴바의 파일 ▾ › 새 프로젝트…(Ctrl+N)를 클릭합니다.
- 데이터베이스 로고를 클릭합니다
기존 데이터베이스 리버스 엔지니어링 영역에서 가져올 데이터베이스의 로고를 클릭하면 3단계 창이 열립니다.
- 접속 정보를 넣습니다
호스트 · 포트 · 사용자 ID · 비밀번호를 넣습니다. Oracle은 서비스 이름도 넣습니다.
- 접속 테스트를 클릭합니다
비밀번호 칸에서 Enter를 눌러도 됩니다. 성공하면 "접속테스트에 성공했습니다. 가져올 데이터베이스를 선택하십시오."(Oracle은 "접속 테스트에 성공했습니다.")가 뜨고 다음을 누를 수 있게 됩니다.
- 데이터베이스를 고릅니다
SQL Server · MySQL은 목록에서 데이터베이스를 먼저 고른 뒤에 다음으로 넘어갑니다. Oracle은 이 단계가 없습니다.
- 다음을 클릭합니다
2단계 테이블 고르기 화면으로 넘어갑니다. 접속 확인에 실패하거나 데이터베이스를 고르지 않았으면 넘어가지 않고 다음 버튼이 다시 눌리는 상태로 돌아옵니다. 고친 뒤 다시 누르면 됩니다.
- 가져올 테이블을 오른쪽으로 옮깁니다
왼쪽 목록에서 테이블을 고르고 » 버튼을 클릭합니다. Shift · Ctrl을 누른 채 클릭하면 여러 개를 한 번에 고를 수 있습니다. 잘못 넣은 테이블은 오른쪽에서 골라 « 버튼으로 뺍니다. 오른쪽에 하나 이상 있어야 다음을 누를 수 있습니다.
- 다음을 클릭합니다
고른 테이블을 읽는 동안(처리 중...) 잠시 기다리면 3단계에 읽은 내용이 목록으로 표시됩니다. 테이블이 많으면 시간이 걸립니다.
- 다음을 한 번 더 클릭합니다
창이 닫히고 가져온 테이블로 새 프로젝트 탭이 열립니다.
PostgreSQL
- 프로젝트 시작 창에서 PostgreSQL 로고를 클릭합니다
PostgreSQL 리버스 엔지니어링 창이 열립니다.
- 접속 정보를 넣습니다
서버 · 포트 · 사용자 · 비밀번호를 확인하고 고칩니다.
- 연결을 클릭합니다
아래쪽 기록 칸에 "접속 성공. 데이터베이스 N개."가 남고 데이터베이스를 고를 수 있게 됩니다. 실패하면 "PostgreSQL 접속 실패" 알림에 원인이 나옵니다.
- 데이터베이스와 스키마를 고릅니다
데이터베이스를 고르면 스키마 목록이, 스키마를 고르면 테이블 목록이 채워집니다.
- 가져올 테이블을 체크합니다
처음에는 모두 체크되어 있습니다. 필요 없는 테이블의 체크를 풀거나 전체 해제 뒤 필요한 것만 체크합니다.
- 가져오기를 클릭합니다
체크한 테이블을 읽는 동안 안내 글에 진행 상황이 표시되고, 끝나면 창이 닫히고 새 프로젝트 탭이 열립니다.
가져온 뒤 정리하기
알아 두기
리버스 엔지니어링은 데이터베이스를 읽기만 합니다. 테이블이나 데이터는 바뀌지 않습니다.
SQL Server · MySQL · Oracle은 한 번 접속에 성공하면 호스트 · 포트 · 사용자 ID(Oracle은 서비스 이름도)를 기억해 다음에 채워 둡니다. 비밀번호는 기억하지 않습니다. 이 정보는 DB에 직접 생성 창과 함께 쓰며, %AppData%\RelatiQ\cached\ 폴더에 저장되어 업데이트한 뒤에도 남습니다.
데이터베이스에 주석을 달아 두었다면 그대로 논리명이 되어, 정의서의 Entity Description · Memo 칸까지 채워집니다 → 테이블 정의서.
접속하는 계정에 테이블 · 컬럼 · 키 정보를 읽을 권한이 있어야 합니다.
MySQL은 SSL 없이 접속합니다. 서버가 SSL 접속만 받도록 설정되어 있으면 접속되지 않습니다.
SQL Server · MySQL은 1단계에서 데이터베이스를 고르지 않고 다음을 누르면 넘어가지 않습니다. 다음 버튼이 다시 눌리는 상태로 돌아오니, 데이터베이스를 고른 뒤 다시 누르세요.
- 가져온 프로젝트의 데이터베이스 종류는 가져온 데이터베이스로 정해지며, 나중에 바꿀 수 없습니다.
- 3단계 창에서 읽다가 문제가 생기면 "불러오기 오류:" 뒤에 원인이 표시됩니다. PostgreSQL 창에서는 "리버스 엔지니어링 실패" 알림이 뜹니다.
자주 묻는 것
MongoDB도 가져올 수 있나요?
아니요. 리버스 엔지니어링은 SQL Server · MySQL · Oracle · PostgreSQL만 지원합니다.
접속이 안 돼요.
호스트 · 포트 · 방화벽 · 계정 권한(스키마 조회 권한)을 확인하세요. MySQL은 서버가 SSL 접속만 받으면 접속되지 않습니다 → 자주 묻는 질문 · 문제 해결.
가져온 엔티티 배치가 마음에 들지 않아요.
가져온 직후에는 계층 구조로 배치가 적용된 상태입니다. 자동 배치 ▾의 다른 배치나 겹침 풀기를 써 보고, 엔티티를 끌어 옮겨 다듬으세요. 자동 배치는 Ctrl+Z로 되돌릴 수 있습니다.
논리명이 비어 있어요.
데이터베이스의 테이블 · 컬럼에 주석이 없으면 논리명도 비어 있습니다. 가져온 뒤 직접 넣으세요 → 엔티티(테이블) 편집.
관계선이 모두 1:N으로 들어왔어요.
SQL Server · MySQL · Oracle은 외래키를 모두 비식별 관계(1:N)로 가져옵니다. 식별 관계가 필요하면 그 관계선을 지우고 식별 관계선 추가 도구로 다시 그립니다 → 관계선(FK) 편집 · 기호 표기.
데이터도 함께 가져오나요?
아니요. 테이블 구조만 가져옵니다.