RelatiQ ER Designer무료 다운로드
사용설명서산출물과 가져오기DDL 스크립트 · DB에 직접 생성

DDL 스크립트 · DB에 직접 생성

그린 ERD를 테이블을 만드는 SQL 스크립트(DDL)로 바꿉니다. 프로젝트의 데이터베이스 종류(SQL Server · MySQL · Oracle · PostgreSQL)에 맞는 문법으로 테이블 · 기본키 · 외래키를 한 번에 만듭니다. 접속 정보를 넣으면 스크립트를 데이터베이스에 바로 실행해 테이블을 만들 수도 있습니다.

이럴 때 씁니다

  • 설계를 마친 ERD로 실제 테이블을 만들 스크립트가 필요할 때.
  • 개발용 데이터베이스에 테이블을 곧바로 만들어 보고 싶을 때(스크립트를 복사해 다른 프로그램에 붙여 넣지 않고).
  • DBA나 동료에게 검토용 스크립트를 넘길 때.
  • 엔티티나 관계선을 고친 뒤 바뀐 내용으로 스크립트를 다시 뽑을 때.

메뉴 위치

툴바의 내보내기 ▾ 메뉴를 연 모습(DDL 스크립트 생성… · DB에 직접 생성… · 테이블 정의서 (전체 리포트)… · ERD 이미지 저장…)

툴바 오른쪽, 보기 ▾ 옆의 노란 내보내기 ▾ 버튼을 클릭하면 메뉴가 열립니다.

  • DDL 스크립트 생성… — 스크립트를 만들어 창에 보여 줍니다.
  • DB에 직접 생성… — 접속 정보를 넣고 데이터베이스에 바로 실행합니다.
  • Ctrl+E를 누르면 내보내기 ▾ 메뉴가 바로 열립니다. 엔티티 이름이나 컬럼을 입력하는 중에는 동작하지 않습니다.
  • 프로젝트가 열려 있을 때만 내보내기 ▾를 쓸 수 있습니다.

화면과 버튼

DDL 스크립트 창

DDL 스크립트 생성…을 클릭하면 GENERATE QUERY 창이 열리고, 큰 글상자에 스크립트 전체가 들어 있습니다. 창 아래에는 데이터베이스 버전이나 계정 권한에 따라 테이블 · 트리거를 만들지 못할 수 있다는 안내가 있습니다.

GENERATE QUERY 창에 SQL Server 스크립트가 표시된 모습

스크립트는 다음 순서로 만들어집니다.

순서내용
1(무료판만) 판 표시 주석 한 줄: /* Generated by RelatiQ Free Edition — www.exapeaksoft.com */
2머리 주석 — 프로그램 버전, Project Name(프로젝트명), Author(디자이너), Create Date(만든 날짜 · 시각), Target DB(데이터베이스 종류)
3엔티티마다 /* TABLE : 물리명 논리명 */ 주석과 CREATE TABLE 문 — 컬럼 이름 · 자료형 · NULL 또는 NOT NULL · 자동 증가, 그리고 기본키 제약
4관계선마다 외래키를 거는 ALTER TABLE 문
  • 기본키 제약 이름은 PK_ 뒤에 엔티티 이름을 붙인 것입니다(엔티티 이름의 밑줄 _은 뺍니다).
  • 외래키 제약 이름은 관계선 이름입니다. 관계선을 마우스 오른쪽 버튼으로 클릭해 관계 편집... 창의 ForeignKey Name에서 바꿀 수 있습니다 → 관계선(FK) 편집 · 기호 표기.
  • 컬럼 논리명과 기본값(Def)은 이 스크립트에 들어가지 않습니다. 엔티티 논리명은 테이블 주석에만 들어갑니다.

관계선 종류에 따라 만들어지는 문장

관계선스크립트
비식별 관계(1:N)자식 테이블에 FOREIGN KEY
식별 관계(1:1)FOREIGN KEY에 더해, 자식의 FK 컬럼에 UNIQUE 제약(UQ_관계선이름)
다대다(N:N)연결 테이블 부모_자식_Junction을 새로 만들고, 두 테이블의 키를 참조하는 외래키 두 개(ON DELETE CASCADE)를 겁니다

데이터베이스 종류에 따라 달라지는 것

SQL ServerMySQLOraclePostgreSQL
이름 감싸기대괄호백틱감싸지 않음큰따옴표
자동 증가(A.I)IDENTITY(시드,증가값)AUTO_INCREMENT시퀀스(테이블_컬럼_SEQ)와 트리거(테이블_컬럼_TRG)를 따로 만듦. 1부터 1씩GENERATED ALWAYS AS IDENTITY(serial 계열 자료형이면 붙이지 않음)
테이블 끝—ENGINE=InnoDB——

DB에 직접 생성 창

DB에 직접 생성…을 클릭하면 GENERATE DATABASE TABLES 창이 열립니다. 위쪽은 접속 정보, 아래쪽 글상자는 실행할 스크립트입니다.

이름하는 일
호스트데이터베이스 서버 주소
포트처음에는 기본 포트가 들어 있습니다(SQL Server 1433 · MySQL 3306 · Oracle 1521 · PostgreSQL 5432)
사용자 ID · 비밀번호접속할 계정. 비밀번호는 *로 가려집니다
접속 테스트접속을 확인하고 데이터베이스 목록을 불러옵니다. 비밀번호 칸에서 Enter를 눌러도 됩니다
데이터베이스테이블을 만들 데이터베이스. Oracle은 이 칸 대신 서비스 이름을 넣습니다
테이블 생성스크립트를 실행합니다. 접속 테스트에 성공해야 누를 수 있습니다
  • 네 데이터베이스 모두 위 표와 같은 칸 이름으로 나오고, 창 위쪽에 데이터베이스 이름(예: PostgreSQL)이 보입니다.
  • 한 번 접속에 성공하면 호스트 · 포트 · 사용자 ID(Oracle은 서비스 이름도)를 기억해 다음에 창을 열 때 채워 둡니다. 비밀번호는 기억하지 않습니다. 기억한 정보는 %AppData%\RelatiQ\cached\ 폴더에 저장되어 업데이트한 뒤에도 남습니다.

따라 하기

DDL 스크립트 만들기

  1. 프로젝트 정보를 채웁니다(선택)

    툴바의 프로젝트정보(ⓘ) 버튼에서 프로젝트명과 디자이너를 넣어 두면 스크립트 머리 주석의 Project Name · Author에 들어갑니다.

  2. Ctrl+E를 누릅니다

    툴바의 내보내기 ▾를 클릭해도 됩니다.

  3. DDL 스크립트 생성…을 클릭합니다

    GENERATE QUERY 창에 스크립트가 표시됩니다.

  4. 스크립트를 복사합니다

    글상자를 클릭하고 Ctrl+A로 전체를 고른 뒤 Ctrl+C로 복사합니다.

  5. 파일로 남기려면 편집기에 붙여 넣습니다

    메모장 같은 편집기에 붙여 넣고 .sql 파일로 저장합니다. 창에는 따로 저장 버튼이 없습니다.

  6. 창을 닫습니다

    오른쪽 위 닫기 버튼으로 닫습니다. 이 창이 열려 있는 동안에는 캔버스를 쓸 수 없습니다.

DB에 바로 테이블 만들기

  1. 내보내기 ▾ › DB에 직접 생성…을 클릭합니다

    프로젝트의 데이터베이스 종류에 맞는 접속 창이 열립니다.

  2. 접속 정보를 넣습니다

    호스트 · 포트 · 사용자 ID · 비밀번호를 넣습니다. Oracle은 서비스 이름도 넣습니다.

  3. 접속 테스트를 클릭합니다

    성공하면 "접속테스트에 성공했습니다. 가져올 데이터베이스를 선택하십시오."가 뜹니다(Oracle은 "접속 테스트에 성공했습니다."). 실패하면 데이터베이스가 보낸 오류 메시지가 그대로 뜹니다.

  4. 데이터베이스를 고릅니다

    목록에 있는 이름만 쓸 수 있습니다. 목록에 없는 이름이면 "올바른 데이터베이스 이름을 입력하세요."가 뜹니다. Oracle은 이 단계가 없습니다.

  5. 테이블 생성을 클릭합니다

    스크립트가 차례대로 실행됩니다. 끝나면 "모든 테이블을 생성했습니다."(Oracle은 "모든 테이블과 트리거를 생성했습니다.")가 뜨고 버튼이 흐려집니다.

  6. 오류가 나면 노란 줄을 확인합니다

    오류 메시지가 뜨고, 아래 글상자에서 문제가 된 문장이 노란 바탕으로 표시됩니다.

알아 두기

주의

스크립트는 한 문장씩 실행되며, 오류가 나도 앞에서 이미 만든 테이블은 그대로 남습니다. SQL Server · MySQL · PostgreSQL은 오류가 난 문장에서 멈추고, Oracle은 문장마다 오류를 알린 뒤 다음 문장을 계속 실행합니다. 다시 실행하기 전에 이미 만들어진 테이블을 정리하세요.

주의

같은 이름의 테이블이 이미 있는 데이터베이스에서는 그 테이블에서 오류가 납니다. 빈 데이터베이스에 실행하는 것이 안전합니다.

주의

스크립트를 만들기 전에 설계를 검사합니다. 엔티티 이름이 비었거나 겹칠 때, 컬럼 이름이 비었거나 한 엔티티 안에서 겹칠 때, 자료형이 빈 컬럼이 있을 때, 자동 증가 설정이 맞지 않을 때(증가값이 0 이하, 소수 자리가 있는 자료형), 기본키로 쓸 수 없는 자료형일 때 "쿼리 생성에 오류가 있습니다." 알림과 함께 원인이 한 줄 표시됩니다. 이름이 겹친 엔티티는 캔버스에서 깜박입니다.

팁

아무것도 입력하지 않은 빈 컬럼 행은 스크립트에서 빠집니다.

팁

큰 프로젝트에서 아직 화면에 그려지지 않은 엔티티도 모두 스크립트에 들어갑니다.

팁

AI 어시스턴트나 MCP로 연결한 AI 툴에 "DDL 만들어 줘"라고 해도 같은 스크립트를 얻습니다 → AI 기능 · MCP 연동.

  • MongoDB 프로젝트에서는 스크립트를 만들지 않고 "MongoDB는 별도의 테이블 생성 쿼리를 제공하지 않습니다. 각 엔티티에서 JSON을 생성해 사용하세요."가 뜹니다. 엔티티 JSON은 ERD 이미지 · 쿼리/코드 생성에서 만듭니다.
  • 캔버스에 엔티티가 하나도 없으면 "생성할 엔티티가 존재하지 않습니다."가 뜹니다.
  • 테이블을 만들 계정에는 테이블(Oracle은 시퀀스 · 트리거 포함)을 만들 권한이 있어야 합니다.

자주 묻는 것

무료판 스크립트 맨 위의 한 줄은 무엇인가요?

무료판으로 만든 스크립트라는 표시 주석입니다. SQL 주석이라 실행 결과에는 영향이 없습니다. 엔티티 오른쪽 버튼 메뉴의 테이블 쿼리 › Create로 만든 CREATE 문에도 같은 줄이 맨 앞에 들어갑니다. 정품 라이선스를 등록한 뒤 다시 만들면 이 줄이 빠집니다 → 무료판 · 정품 · 라이선스 등록.

스크립트를 파일로 바로 저장할 수 있나요?

창에는 저장 버튼이 없습니다. 전체를 복사해 편집기에 붙여 넣고 .sql로 저장하세요.

스크립트 창에서 고친 내용이 ERD에도 반영되나요?

아니요. 창 안의 글만 바뀝니다. 설계를 바꾸려면 캔버스에서 고친 뒤 스크립트를 다시 만드세요.

컬럼 기본값이 스크립트에 없어요.

전체 스크립트에는 기본값이 들어가지 않습니다. 엔티티를 마우스 오른쪽 버튼으로 클릭해 테이블 쿼리 › Create로 만든 그 엔티티의 CREATE 문에는 기본값(DEFAULT)이 들어갑니다 → ERD 이미지 · 쿼리/코드 생성.

다대다(N:N) 연결 테이블의 컬럼 자료형이 부모 키와 달라요.

연결 테이블의 두 컬럼은 INT(Oracle은 NUMBER)로 만들어집니다. 부모 키 자료형이 다르면 스크립트에서 고쳐 쓰거나, 연결 테이블을 엔티티로 직접 그려 관계선 두 개로 잇는 방법을 쓰세요.

접속 테스트가 실패해요.

호스트 · 포트 · 방화벽 · 계정 권한을 확인하세요. MySQL은 SSL 없이 접속하므로 서버가 SSL 접속만 받도록 설정되어 있으면 접속되지 않습니다 → 자주 묻는 질문 · 문제 해결.

관련 항목