Background Image
조회 수 3405 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

 이 튜토리얼에서는 기존 데이터베이스를 리버스 엔지니어링하고 스키마 정보를 얻는 방법을 설명합니다. 예시로 큐브리드 설치시 생성되는 demodb를 이용합니다.

 

 

ERwin을 설치 후 (이 튜토리얼에서는 2020 R2 14677 버전을 이용합니다) 프로그램 실행 후 Actions -> Reverse Engineer... 메뉴를 선택합니다.

 

" ERwin에서 리버스 엔지니어링은 실제 데이터베이스에서 물리적 데이터 모델 (Physical Data Model)을  논리 데이터 모델 (Logical Database Model) 표현으로 변환하는 프로세스라고 설명합니다. "

 

 

New Model 창이 열리면, 타입과 대상 서버를 다음과 같이 선택합니다. (큐브리드 ODBC 드라이버는 ODBC Spec 3.x 기반으로 구현됨) 

 

 new_model.png

 

 

새로운 빈 데이터 모델 문서가 생성됩니다. 이때 Set Options  창이 나타납니다.

 

set_options.png

 

리버스 엔지니어링 항목

창 왼쪽의  Items to Reverse Engineer 그룹에서 스키마 정보를 가져올 개체를 선택할 수 있습니다. 저장 프로시저를 사용하지 않는다면 체크 해제합니다.

 

 

옵션

- Reverse Engineer

 창의 오른쪽 위에서 리버스 엔지니어링 할 테이블 유형을 선택할 수 있습니다. 큐브리드 에는 시스템 테이블사용자 테이블이 있습니다. 응용 프로그램에서 사용하는 사용자 테이블 만 리버스 엔지니어링을 하려면 System Objects 를 체크 해제합니다. System Objects 를 체크하면 시스템 테이블에 대한 스키마 정보만 얻을 수 있습니다. 이 튜토리얼에서는 편집 할 수 있는 사용자 테이블만 리버스 엔지니어링합니다.

 

사용자 테이블의 경우 현재 사용자 또는 특정 사용자가 액세스 할 수 있는 테이블 또는 모든 테이블을 리버스 엔지니어링하도록 선택할 수 있습니다.

 

 

- Infer

 여기서 리버스 엔지니어가 데이터베이스 스키마에서 추론할 컬럼 속성을 선택할 수 있습니다. 큐브리드는 관계형 DBMS이므로 기본외래 키를 설정할 수 있습니다. 리버스 엔지니어링중인 대상 데이터베이스가 키를 이미 정의한 경우에는 이 부분을 체크하지 않아도 됩니다. ERwin이 자동으로 이를 감지합니다. 옵션을 설정했으면 Next을 클릭하여 리버스 엔지니어링 프로세스를 완료하면 됩니다.

 

 

ODBC 연결

새 창에서 사용자 이름비밀번호와 같은 데이터베이스 연결 정보를 입력하십시오. "CUBRID"가 ODBC Data Source 매개 변수의 값으로 자동 선택되지 않으면 이를 클릭하고 "CUBRID"를 선택한 다음 Connect 버튼을 클릭합니다.

 

" CUBRID ODBC 드라이버 연결은 메뉴얼을 참고해주시기 바랍니다. - www.cubrid.org/manual/en/10.2/api/odbc.html#configuring-and-environment-odbc

 

ODBC_connection.png

 

결과

결과로 데이터베이스의 스키마가 표시됩니다. 아래는 demodb 데이터베이스의 일부입니다.

 

erd_ie.PNG

 

- 관계

 ERwin Data Modeler에서 각 테이블은 수평선으로 2 개로 나누어져 있습니다. 위 섹션에는 모든 키 (기본 및 외부)가 나열되어 있습니다. 하단 섹션에는 나머지 컬럼이 나열됩니다. 위의 예에서 게임 테이블은 위의 섹션에 3개의 컬럼으로 구성된 복합키 (여러 컬럼으로 정의 된 PK)의 일부인 host_year 컬럼이 있습니다. 또한 event_code 및 athlete_code FK를 통해 event 및 athlete 테이블과 외래 키 관계를 갖습니다.

 

“ 여기에서 알아야 할 중요한 것은 이러한 event_code 및 athlete_code 외래 키가 일반적인 비식별 관계와 다른 식별 관계를 나타내는 것입니다. 식별 관계는 항상 복합 기본 키의 일부입니다. ERwin 문서에서 자세한 내용을 읽을 수 있습니다. ”

 

테이블 a와 테이블 b의 특정 관계에 대한 자세한 정보를 얻으려면 해당 테이블 사이의 관계를 두 번 클릭합니다.

다음과 같은 창이 나타납니다. RI Actions  탭 (참조 무결성 동작)을 클릭하면 ON DELETEON UPDATE에 설정된 값을 확인할 수 있습니다.

아래 예에서 두 트리거는 모두 RESTRICT로 설정되어 있습니다. CUBRID에서 허용되는 RI 액션을 선택할 수 있습니다.

 

fk_erwin.png

 

또한 위의 섹션에서 컬럼 3개로 구성된 복합키 (여러 컬럼으로 정의 된 PK)의 일부인 host_year 컬럼을 볼 수 있습니다. 이 리버스 엔지니어링의 정확성을 확인하기 위해 CUBRID Admin을 열고 실제 데이터베이스 스키마를이 모델과 비교할 수 있습니다. 

 

컬럼 속성

모델에서 테이블의 열을 두 번 클릭하거나 테이블을 마우스 오른쪽 버튼으로 클릭하고 Column Properties...을 선택하면 컬럼 속성이있는 창을 볼 수 있습니다.

 

column_erwin.png

 

모든 속성이 올바른지 여부를 확인하기 위해 실제 테이블 스키마와 비교할 수 있습니다.

CREATE TABLE "game"(
    "host_year" integer NOT NULL,
     "event_code" integer NOT NULL,
     "athlete_code" integer NOT NULL,
     "stadium_code" integer NOT NULL,
     "nation_code" character(3),
     "medal" character(1),
     "game_date" date,
    CONSTRAINT pk_game_host_year_event_code_athlete_code PRIMARY KEY("host_year","event_code","athlete_code"),
     FOREIGN KEY ("event_code") REFERENCES "event"("code") ON DELETE RESTRICT ON UPDATE RESTRICT,
     FOREIGN KEY ("athlete_code") REFERENCES "athlete"("code") ON DELETE RESTRICT ON UPDATE RESTRICT
);

 

모든 것이 실제 데이터베이스와 정확히 일치함을 알 수 있습니다. NOT NULL 제약 조건은 ODBC 탭에서 확인할 수 있습니다.

 

not_null.png

 

실제 데이터베이스에 사용 된 정확한 외래 키 이름을 찾으려면 모델 테이블 (컬럼이 아님)을 두 번 클릭하거나 테이블 오른쪽 마우스 클릭 후 Table Properties... 을 선택하십시오. 사용 위치에서 선택한 테이블에 사용 된 외래 키 이름을 볼 수 있습니다.

 

table_properties.png

 

그 외 다른 옵션을 사용하여 ERwin 리버스 엔지니어링 도구의 나머지 기능을 찾아볼 수 있습니다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
166 Install [linux] wget으로 제품 다운로드 시 "wget: unable to resolve host address ‘ftp.cubrid.org’" 해결방 큐브리드_김주현 2021.07.02 2159
165 기타 [10.2 path] - 생성된 view구문을 'show create view' 수행 시 정상적으로 출력되지 않던 이슈 patch 큐브리드_김주현 2020.11.09 852
164 기타 ERwin을 이용한 CUBRID 포워드 엔지니어링 file 민순 2020.07.14 2263
» 기타 ERwin을 이용한 CUBRID 리버스 엔지니어링 file 민순 2020.07.13 3405
162 Linux <주의> 생성한 DB볼륨을 절대! 삭제하지 말자 큐브리드_김주현 2019.09.30 1554
161 기타 큐브리드10.1 에서 윤초 지원 옵션 사용하기 최광일 2017.09.13 1386
160 기타 따라하면 쉬운 compactdb 사용법 file 허서진 2017.07.01 2496
159 Linux 리눅스에서 top 명령어를 통한 CPU 점유율 확인 및 측정하기 file 정훈 2017.06.02 79641
158 Java JDBC를 사용한 다중화 구성 SELECT Query 부하 분산 가이드 file 윤준수 2017.03.30 3910
157 튜닝 다중컬럼 조건에 대한 인라인뷰 처리방안 2 박동윤 2016.12.27 5977
156 Java tomcat8.0(DBCP2)과 CUBRID 연동하기 손승일 2016.07.01 15507
155 튜닝 LIMIT절을 사용하여 SQL문을 간결하게 작성하고, 부분범위 처리를 유도하자. 권호일 2016.06.29 15428
154 Java CUBRID에서 Java AddBatch 사용 엄기호 2016.06.28 8336
153 기타 PyCharm을 이용한 CUBRID, Django 연동 가이드 file 진우진 2016.04.11 8129
152 기타 CSQL 인터프리터 사용방법 정만영 2016.03.03 16477
151 기타 데이터 확인에 정규표현식을 사용 해 보자. 성진 2016.03.01 12671
150 Linux 리소스를 제한(limits.conf) 하여 DB서버를 관리하자 1 주현 2015.12.31 26531
149 기타 CUBRID Migration Toolkit을 이용한 단계별 마이그레이션 진행 방법 file 진우진 2015.12.15 9484
148 기타 알고 보면 쉬운 cubrid lockdb 유틸리티 file 김승훈 2015.12.08 12004
147 Linux 가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 file 이경오 2015.07.14 13363
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales