본문 바로가기

Table Script 파일로 ERD 생성하기

참고 출처: https://hee-kkk.tistory.com/46 [조금씩, 꾸준하게:티스토리]

 

사용된 ERwin Release : 7.3.0.1666

 

Release : 7.3.0.1666

 

1. Create Table 과 Comment 문이 함께 있는 Table Script DDL 을 준비한다.

DDL.txt

내용

-- 교사 테이블 생성
CREATE TABLE Teachers (
    teacher_id SERIAL PRIMARY KEY,
    teacher_name VARCHAR(255),
    subject VARCHAR(255)
);

-- 반 테이블 생성
CREATE TABLE Classes (
    class_id SERIAL PRIMARY KEY,
    class_name VARCHAR(255),
    teacher_id INTEGER REFERENCES Teachers(teacher_id)
);

-- 학생 테이블 생성
CREATE TABLE Students (
    student_id SERIAL PRIMARY KEY,
    student_name VARCHAR(255),
    class_id INTEGER REFERENCES Classes(class_id)
);

COMMENT ON TABLE  Teachers                 IS '교사';
COMMENT ON COLUMN Teachers.teacher_id      IS '교사ID';
COMMENT ON COLUMN Teachers.teacher_name    IS '교사이름';
COMMENT ON COLUMN Teachers.subject         IS '주제';

COMMENT ON TABLE  Classes                IS '반';
COMMENT ON COLUMN Classes.class_id       IS '반ID';
COMMENT ON COLUMN Classes.class_name     IS '반이름';
COMMENT ON COLUMN Classes.teacher_id     IS '교사ID';

COMMENT ON TABLE  Students                 IS '학생';
COMMENT ON COLUMN Students.student_id      IS '학생ID';
COMMENT ON COLUMN Students.student_name    IS '학생이름';
COMMENT ON COLUMN Students.class_id        IS '반ID';

 

ERWin에서 인지할 수 있도록 인코딩을 ANSI로 변경한다. 파일의 확장자를 SQL로 변경한다.

다른 이름으로 저장

-

2. ERwin 실행 후 Tools > Reverse Engineer 를 클릭

 

3. Reverse Engineer - Select Template 팝업

 - Logical/Physical 선택

 - NEXT 클릭

 

4. Reverse Engineer - Set Options 팝업

 - Browse 를 클릭해서 파일 준비한 Table Script DDL 파일 선택

 - Infer 항목에서 Primary Key , Relations 체크

 - 하단 Case ... 에서 UPPER 선택

 - Next

 

5. 오류가 있는 경우

다음과같은 창이 뜨기도한다.

ERwin Data Modeler

Inferring Model Primary Keys :

The database schema already contains primary key information. 

데이터베이스 스키마에는 이미 기본 키 정보가 포함되어 있습니다.

Are you sure you want CA ERwin DM to attempt to infer the PK's for tables that do not already have them?

CA ERwin DM이 기본 키 정보가 없는 테이블에 대한 기본 키를 유추하도록 하시겠습니까?

 

(Script 가 정확하다면 '아니오(N)'를 선택했어야 했내 ... 필자는 뭔뜻인지도 모르고 '예(Y)' 를 누르고 있었음 ;;)

ERwin Data Modeler

6. 오류가 없는경우

skip

 

7. ERD 생성 됨

-


-

다음부터 논리명 작성을 위한 설명이다.

8. (Physical 선택되어 있어야 함) Ctrl + a 단축키를 사용하여 전체를 선택

9. 선택 후 마우스 우클릭을 한 뒤 Harden Physical Names 를 클릭

-

10. 클릭 후 도구상자 부분에 Physical 을 Logical 로 변경 (단축키 Ctrl + ↑)

-

11. Model > Domain Dictionary 메뉴를 클릭

-

12. Domain Dictionary 팝업

 

 - Name Inherited by Attribute 부분에 다음과 같이 작성합니다.

%if(%>(%Len(%ColumnComment),0)){%ColumnComment}%ELSE{%ColName}

 

 - OK 클릭

(필자는 이미지와 같이 %ColumnComment 만 넣어도 원하는 결과를 얻음)

-

13. Model > Attributes 메뉴를 클릭합니다.

-

14. No Attribute was selected, ~ 알럿창 뜨면 확인

skip

15. Attributes 팝업에서 Reset 버튼을 클릭합니다.

-

16. Reset Attribute Property 팝업

- Remove overmidden properties for 항목에서 Reset all attributes in medel 을 선택합니다.
- Selete Properties to Reset 항목에서 Clear All 버튼을 클릭해서 모든 항목을 선택 해제한 뒤 Name 항목만 체크합니다.
- OK버튼을 클릭합니다.

 

17. OK 버튼을 클릭해서 해당 항목을 저장합니다.

-

18. 논리 화면 완성

 

단 테이블 명은 직접 작성해야 함.

테이블명 바꾸는방법 아시는분 댓글 바랍니다.