데이터베이스 변경 관리 프로세스를 Interlocking 퍼즐 조각으로 생각해 보라. 한 개의 퍼즐 조각이 데이터 모델링이고, 또 다른 조각이 데이터베이스 변경이다. 여러분에게 이러한 두 개의 조각들을 맞추는 IBM 방식의 솔루션을 소개하겠다. Linux®, UNIX®, Windows®용 IBM DB2 Change Management Expert는 새로운 데이터베이스 변경 관리 툴이다. 독립적으로 사용되기도 하고 엔터프라이즈 데이터 모델링 및 통합 디자인용 툴인 IBM Rational Data Architect와도 함께 사용될 수 있다. 두 툴 모두 물리적 데이터 모델의 경우, 디자인과 모델링부터 데이터베이스 변경 관리 프로세스를 통합한다. 개인과 그룹들 간 변경 사항을 변환하는 대신, 물리적 데이터 모델들은 데이터 아키텍트, 개발자, 데이터베이스 관리자들을 같은 페이지에 둔다.
DB2 Change Management Expert와 Rational Data Architect 모두 Eclipse 프레임웍을 사용한다. 두 제품들을 사용하는 팀은 Eclipse Team 컴포넌트를 사용하여 정보의 흐름을 제어한다. 더욱이, Rational Data Architect와 DB2 Change Management Expert는 같은 Eclipse 프레임웍에 한번에 나타날 수 있다. ("공유 쉘" 설치를 통해) 한 명의 사용자가 많은 모자들을 쓰고 있는 경우, 공유 쉘은 싱글 사용자 인터페이스에 적용된다.
이 글은 한 명의 사용자가 두 제품을 사용하는 시나리오를 설명한다. 사용자 예제로 가상의 기업인 JK Enterprises를 사용할 것이다. JK Enterprises는 DB2 Change Management Expert와 Rational Data Architect를 사용하기 시작했다. JK Enterprises의 데이터 모델러인 Tom은 Rational Data Architect를 사용하고 있고, DBA인 Eric은 DB2 Change Management Expert를 사용한다. 다시 한번 주지하지만, 작은 샵에서 한 사람이 두 툴들을 사용할 수 있다.
JK Enterprises의 비즈니스가 자신들의 프로젝트에 컴플리션(completion) 코드를 추가해야 한다는 것을 결정했다고 해보자. 데이터베이스를 수정하여 컴플리션 코드를 추가하겠지만, 논리적 모델에도 이를 반영해야 한다. 이들은 논리적 모델이 최신 것인지 확신할 수 없다. 따라서, 제품 데이터베이스에서 물리적 모델을 만든다. Eric은 DB2 CME에서 이를 수행하고 이것을 Tom에게 보낸다. Tom은 Rational Data Architect를 사용하여 물리적 모델을 논리적 모델로 변환하고, 컴플리션 코드 엔터티, 필요한 관계, 애트리뷰트를 만족시킬 것이다. 그리고 나서, Eric과의 컨설팅 할 때, Rational Data Architect 내에서 논리적 모델을 물리적 모델로 변환 할 것이다. Eric은 DB2 Change Management Expert 내의 업데이트 된 물리적 모델을 사용하여 변경 사항을 테스트 데이터베이스에 마이그레이션 할 것이다.
그림 1. 시나리오 개요
본 시나리오는 다음의 세 가지 부분들로 나뉜다.
- Eric은 DB2 Change Management Expert를 사용하여 HR 데이터베이스의 물리적 모델을 생성한다.
- Tom은 Rational Data Architect를 사용하여 물리적 모델을 논리적 모델로 변형하고 논리적 모델을 수정한다.
- Eric은 DB2 Change Management Expert를 사용하여 Tom이 HR 데이터베이스에 한 변경 사항을 마이그레이션 한다.
다음의 사전 조건들을 갖추고 아래 섹션에 나온 단계를 완수함으로써 이러한 단계들을 시도해 볼 수 있다.
본 시나리오는 DB2 Change Management Expert Version 1.1과 Rational Data Architect 7.0을 사용한다. 데이터베이스 관리자의 머신에는 DB2 Change Management Expert가 설치되어 있어야 하며 데이터 아키텍트의 머신에는 Rational Data Architect가 설치되어 있어야 한다. (그렇지 않으면, 데이터베이스 관리자와 데이터 아키텍트 모두 같은 사람이고, 두 가지 툴이 모두 같은 머신에 설치되어야 한다.)
또한, JK Enterprises HR 데이터베이스는 DB2 Universal Database™ V8 (DB2 UDB) 또는 DB2 V9 데이터베이스에 생성되어야 한다. DB2 Change Management Expert를 사용하여 데이터베이스를 만들 수 있다. 다음 단계를 통해 데이터베이스를 생성하여 채운다.
- CMERDADemo.zip package를 임시 디렉토리로 다운로드 한다. 압축 파일을 푼다.
- DB2 Change Management Expert를 사용하여 새로운 데이터 디자인 프로젝트를 생성한다.
- 임시 디렉토리에서 여러분이 생성했던 데이터 디자인 프로젝트에 있는 SQL Scripts 폴더로 createCMERDADemo.chx를 복사한다.
- SQL Scripts 폴더를 확장한다.
- createCMERDADemo.chx 파일을 오른쪽 클릭하고 Run SQL을 클릭한다. Deploy Change Commands 마법사를 시작한다.
- Deploy Change Commands 마법사에서 단계를 완성하여 HR 데이터베이스를 생성 및 채운다.
- 올바른 데이터베이스 버전이 선택되었는지 확인한다.
- 사용자 이름과 패스워드를 입력한다.
- "Create Deployment Project and Script file" 체크 박스에 체크 표시가 해제된 채로 두고 Finish를 클릭한다.
Part A: HR 데이터베이스의 물리적 모델 생성하기
본 시리즈의 첫 번째 부분은, Eric(데이터베이스 관리자)이 새로운 전개 스크립트를 생성하는데, 이것은 변경 관리 프로세스를 트래킹 하는 DB2 Change Management Expert 리소스이다. HR 데이터베이스의 전개 스크립트를 생성할 때, 데이터베이스의 두 개의 물리적 모델이 생성된다. 이 중 하나는 기본 모델(base model)로서 데이터베이스의 현재 상태를 나타낸다. 두 번째 모델은 대상 모델(target model)로서 변경 후에 데이터베이스가 어떤 모습으로 보일지를 편집할 수 있는 모델이다.
Eric은 기본 모델을 Tom에게 보낼 것이다. Eric은 본 시나리오의 두 번째 부분에서 Tom이 변경한 것을 대상 모델에 적용할 것이다.
Eric의 입장에서, 다음 단계를 완수하여 전개 스크립트와 물리적 모델을 만든다.
- 메인 메뉴 바에서, File --> New --> Deployment Script를 클릭한다. Deployment Script 마법사가 시작된다.
- Deployment Script 마법사에서 다음 단계를 수행한다.
- 프로젝트 이름으로 "CMERDADemo"를 입력하고, 전개 스크립트 이름으로 "CMERDADemo_HR"을 입력한다. Next를 클릭한다.
- Use Existing Connection을 선택하고 JKENT를 선택한다. Next를 클릭한다.
- 사용자 아이디와 패스워드를 입력한다. Next를 클릭한다.
- 스키마로서 HR을 선택한다. Next를 클릭한다.
- 모든 엘리먼트들이 선택되었는지 확인한다. Next를 클릭한다.
- HR 스키마에 주어질 기본 모델과 대상 모델의 기본 이름을 확인한다. Next를 클릭한다. 본 시나리오에서, 기본 이름은 CMERDADemo_HR_base.dbm 과 CMERDADemo_HR_target.dbm 이다.
- Options 페이지에 어떤 체크 박스도 선택되지 않도록 한다. Finish를 클릭한다.
DB2 Change Management Expert는 전개 스크립트와 HR 스키마의 기본 및 대상 모델을 생성한다. 그림 2는 Data Models와 SQL Scripts 폴더가 확장될 때 Data Project Explorer가 보여지는 모습이다.
그림 2. Data Project Explorer
-
이 시점에서, 이메일을 통해 기본 모델을 Rational Data Architect를 갖고 있는 데이터 모델러이자 아키텍트인 Tom에게 보낸다. 또는, Tom이 Rational Data Architect에서 체크할 수 있는 장소인 버전 관리 시스템에서 검사할 수 있다.
Part B: 물리적 모델을 논리적 모델로 변형하고 논리적 모델 수정하기
본 시나리오의 두 번째 부분에서는, Tom이 Eric에게서 받는 HR 데이터베이스의 물리적 모델을 데이터 디자인 프로젝트에 추가한다. 물리적 모델을 논리적 모델로 변형한 다음, 데이터 다이어그램을 사용하여 논리적 모델을 수정한다.
- 새로운 엔터티 COMPLETION_CODES를 추가한다. 이것은 두 개의 애트리뷰트, COMP_CODE와 DESCRIPTION을 갖고 있다.
- 새로운 애트리뷰트, COMP_CODE를 PROJECT 엔터티에 추가한다.
- COMPLETION_CODES와 PROJECT 엔터티 사이에 외래 키 관계를 생성하고 COMPLETION_CODES를 부모 엔터티로서 사용한다.
- ORGANIZATION에서 DEPTNAME 애트리뷰트를 삭제한다. ORGANIZATION 엔터티의 DEPTNAME은 DEPARTMENT 엔터티에 있는 DEPTNAME과 중복이기 때문이다.
논리적 모델에 수정이 이루어진 후에, Tom은 논리적 모델을 물리적 모델로 변형하고, 물리적 모델을 변경 사항과 함께 Eric에게 보낸다.
Tom의 입장에서, 다음 단계를 수행한다.
- Rational Data Architect를 시작한다.
- 논리적 데이터 유형으로서 ROWID와 물리적 데이터 유형으로서 CHAR간 데이터 매핑이 데이터 모델 변형 동안 제거되도록 프레퍼런스를 설정했는지를 확인한다. 프레퍼런스를 확인하려면 다음과 같이 한다.
- Window --> Preferences를 클릭하고 Preferences 윈도우를 클릭한다.
- Data --> Transform --> Data Type Markup을 클릭하고 Data Type Map을 디스플레이 한다.
- Logical Data Type이 ROWID인 행이 있다면, 그 행을 삭제한다.
- OK를 클릭한다.
- Eric에게서 이메일로 받은 물리적 데이터 모델을 복사하여 데이터 디자인 프로젝트에 붙인다.
- 물리적 데이터 모델을 논리적 모델로 변형한다.
- Data Project Explorer에서, 데이터 디자인 프로젝트의 Data Models 폴더 밑에, 물리적 데이터 모델 CMERDADemo_HR_base.dbm을 선택하고, 메인 메뉴 바에서, Data --> Transform --> Logical Data Model을 클릭한다. Transform to Logical Data Model 마법사가 시작된다.
- 마법사에서 다음 단계를 완수한다.
- Target Logical Model 페이지에서, Create new model을 클릭하고 Next를 클릭한다.
- Logical Data Model File 페이지에서, 논리적 모델용 데이터 디자인 프로젝트와 논리적 모델의 이름에 디폴트를 수락하고, Next를 클릭한다.
- Options 페이지에서, 패키지 이름으로 "HR"을 지정한다. Next를 클릭한다.
- 물리적 모델이 논리적 모델로 변형되었다는 것을 나타내는 Output 페이지에서, Finish를 클릭하여 논리적 모델을 저장한다.
Logical Data Model Editor가 열리고 논리적 모델에 대한 정보를 디스플레이 한다. 논리적 모델, CMEDEMO_HR_base.ldm이 생성되고 Data Models 폴더에 디스플레이 된다. (그림 3)
그림 3. Data Project Explorer
- 논리적 모델에 대한 데이터 다이어그램을 만든다. 이 데이터 다이어그램을 사용하여 논리적 모델을 변경한다.
- Data Models 폴더에서 논리적 모델 CMERDADemo_HR_base.ldm을 확장한다.
- Diagrams (HR 밑에)를 오른쪽 클릭하고 New Overview Diagram을 클릭한다.
- HR 스키마를 선택하여 모든 상응하는 엘리먼트들을 포함시키고 OK를 클릭한다. 다이어그램이 Data Diagram Editor에 열린다. (그림 4)
그림 4. HR 스키마의 엔터티 다이어그램
- COMPLETION_CODES라는 이름의 컴플리션 코드용 엔터티를 모델에 추가한다.
- Data Diagram Editor의 백그라운드를 오른쪽 클릭하고, Add Data Object -> Entity를 클릭한다. 엔터티가 다이어그램에 추가된다.
- Properties 뷰에서, General 탭을 클릭한다. 엔터티 이름을 COMPLETION_CODES로 다시 정한다.
- Attributes 탭을 클릭하고 New 버튼을 사용하여 두 개의 애트리뷰트를 추가한다. 첫 번째 애트리뷰트를 COMP_CODE로 정하고, 이것이 기본 키라는 것을 지정하고, 데이터 유형이 CHAR(5)가 되도록 한다. 두 번째 애트리뷰트 이름을 DESCRIPTION으로 하고 데이터 유형을 VARCHAR(1024)로 바꾼다.
그림 5는 변경 후에 Data Diagram Editor와 Properties 뷰의 모습이다.
그림 5. HR Schema의 엔터티 다이어그램
- COMPLETION_CODES와 PROJECT 사이의 외래 키 관계를 만드는데, 여기에서 COMPLETION_CODES는 부모 엔터티이고 PROJECT는 자식 엔티티이다.
- Data Diagram Editor의 Palette에서, Data --> Non-Identifying Optional을 선택한다. 그리고 나서 기본 키를 가진 부모인 COMPLETION_CODES 엔티티를 선택하고 자식인 PROJECT 엔티티를 드래그 한다.
외래 키 애트리뷰트인 COMP_CODE는 PROJECT에 자동으로 생성된다.
- ORGANIZATION 엔티티에서 DEPTNAME 애트리뷰트를 제거한다.
- ORGANIZATION 엔티티를 선택한다.
- Properties 뷰에서, Attributes 탭을 클릭한다. DEPTNAME을 선택하고 Delete 버튼을 클릭하여 이를 삭제한다.
- 모든 변경 사항들을 저장한다.
- 논리적 모델, CMERDADemo_HR_base.ldm을 물리적 모델 CMERDADemo_HR_changes.dbm으로 변형한다.
- Data Project Explorer에서, 논리적 모델이 있는 Data Models 폴더로 간다.
- 논리적 모델 CMERDADemo_base.ldm을 선택하고, Data --> Physical Data Model을 클릭한다. Transform to Physical Data Model 마법사가 시작된다.
- Transform to Physical Data Model 마법사에서 다음 단계를 완성한다.
- Create New Model을 클릭하고, Next를 클릭한다.
- On the Physical Data Model File 페이지에서, 데이터 디자인 프로젝트에 대한 기본 값을 수락하고, 물리적 이름에 CMERDADemo_HR_changes를 설정하고, 데이터베이스 유형을 지정한다. Next를 클릭한다.
- Options 페이지에서, 변형 옵션을 확인한다. HR이 스키마 이름으로 지정되었는지를 확인한다. Next를 클릭한다.
- Finish를 클릭하고 물리적 데이터 모델을 저장한다.
- 이 시점에서, 변경된 물리적 모델을 이메일을 통해 데이터베이스 관리자인 Eric에게 보낸다. 또는, Eric이 DB2 Change Management Expert에서 체크할 수 있는 버전 관리 시스템에서 체크할 수 있다.
Part C: HR 데이터베이스로 보내진 변경 사항 적용하기
본 시나리오의 마지막 부분은, Eric이 Tom이 보냈던 물리적 데이터 모델의 변경 사항들을 HR 데이터베이스의 대상 모델로 마이그레이션 하는 부분이다. Eric은 이러한 변경 사항들을 실제 HR 데이터베이스에 적용하는데 필요한 변경 명령어들을 생성하고 변경 명령어들을 데이터베이스에 전개한다.
- DB2 Change Management Expert를 시작한다.
- Tom이 보냈던 물리적 데이터 모델(CMERDADemo_HR_changes.dbm)을 복사하여 이를 Data Project Explorer의 CMERDADemo 데이터 디자인의 Data Models 폴더에 붙인다.
- SQL Scripts 폴더에서 CMERDADemo_HR.deployxml을 더블 클릭 함으로써 전개 스크립트를 연다. 전개 스크립트가 Deployment Script Editor에 디스플레이 된다.
그림 6은 Deployment Script Editor 모습이다.
그림 6. Deployment Script Editor
- Tom이 보냈던 물리적 데이터 모델(CMERDADemo_HR_changes.dbm)의 변경 사항을 HR 데이터베이스의 대상 모델(CMERDADemo_HR_Target.dbm)로 마이그레이션 한다.
- Deployment Script Editor의 Data Models 탭을 클릭하고, Data Models 페이지에서 Add를 클릭한다.
- In the Source Models 선택 다이얼로그에서, 변경된 데이터 모델 (CMERDADemo_HR_changes.dbm)을 선택하고 OK를 클릭한다. 이 모델은 Define Source Models 필드에 디스플레이 된다. (그림 7)
그림 7. Data Models 페이지
- 모델을 선택하고 Migrate를 클릭한다. Comparison Editor 가 변경 모델과 함께 왼쪽에 디스플레이 되고 HR 대상 모델이 오른쪽에 디스플레이 된다.
- 툴바에서 아래쪽 화살표를 사용하여 두 모델간 차이점을 가려낸다.
이 데모에서, Comparison Editor는 여러분이 이동해야 하는 것이 ORGANIZATION 테이블에서 DEPTNAME 컬럼의 삭제, PROJECT 테이블의 새로운 외래 키 COMPLETION_CODE_PROJ_FK, 새로운 COMPLETION_CODES 테이블이라는 것을 보여주고 있다.
외래 키를 이동할 때, 외래 키 컬럼 COMP_CODE가 자동으로 이동될 것이다. COMPLETION_CODES 테이블을 이동하기 전에 PROJECT에서 외래 키를 이동한다면, COMPLETION_CODES 테이블은 자동으로 이동된다.
- 차이점이 선택될 때 오른쪽 화살표를 클릭하여 변경 사항들을 대상 HR 모델로 이동 또는 적용한다.
- File --> Save를 클릭하여 모든 변경 사항들을 저장한다.
- Comparison Editor를 닫는다.
-
Problems 뷰를 클릭하고, 대상 HR 모델에 있는 에러를 정정한다.
DB2 UDB V8.2 사용자 주의 사항: 새로운 기본 키와 외래 키들을 위해 Rational Data Architect가 생성한 식별자가 너무 길면 에러가 생길 수 있다. 이러한 식별자들은 DB2 V8.2에서 18 문자를 초과할 수 없다. 그림 8은 예제이다.
그림 8. Problems 뷰
에러를 체크하여 수정하기:
- Problems 뷰에 디스플레이 된 문제들이 선택된 엘리먼트(대상 HR 모델) 전용이 되도록 제한한다. Filters 아이콘 (
)을 클릭하고, On selected element only를 클릭한 다음, OK를 클릭한다. - 디스플레이 된 첫 번째 에러를 더블 클릭 한다. Properties 탭을 클릭하고, 기본 키의 이름을 COMP_CODES_PK로 변경한다.
- Problems 뷰를 클릭하고, 디스플레이 된 두 번째 에러를 더블 클릭한다. Properties 탭을 클릭하고, 외래 키의 이름을 COMP_PROJ_FK로 변경한다.
- 변경 사항을 대상 모델에 저장한다.
- Problems 뷰를 다시 클릭하고, 에러가 수정되었는지를 확인한다.
- Problems 뷰에 디스플레이 된 문제들이 선택된 엘리먼트(대상 HR 모델) 전용이 되도록 제한한다. Filters 아이콘 (
- 변경 명령어를 생성하여 변경 사항들을 실행한다. Deployment Script Editor의 Change Commands 탭을 클릭하고, Change Commands 탭에 있는 Generate Change Commands를 클릭한다. Generate Change Commands 마법사가 시작된다.
- 마법사의 단계 완성하기:
- DDL Generation Options 페이지에서 정확한 변경 사항이 이루어졌는지를 확인한다. Enable Undo 체크 박스가 선택되어서 필요할 경우 변경 사항을 실행 취소 할 수 있는 명령어가 생성되도록 한다. Next를 클릭한다.
- User Information 페이지에서, 사용자 아이디와 패스워드를 지정한다. Next를 클릭한다.
- Specify File Information 페이지에서, 반출 및 반입 명령어를 위한 데이터 파일 위치를 지정한다. 전체 경로를 지정해야 한다. 데이터 파일 포맷을 지정하고 기본 반출 및 반입 파일 이름을 수락한다. Next를 클릭한다.
- Mapping Table 페이지에, 데이터가 반출되고 반입되어야 하는 테이블이 나타난다. Next를 클릭한다.
본 시나리오에서, ORGANIZATION 테이블에서 DEPTNAME 컬럼을 누락시키려면, 이 데이터가 반출되어 소실되지 않도록 해야 한다. DB2 Change Management Expert를 사용하여, 데이터를 반출하고, 테이블을 누락시키고, 새로운 테이블을 다시 만든 다음, 데이터를 새로운 테이블로 반입시킬 수 있다. 또한, 새로운 테이블로 가져올 데이터를 반입할 파일도 있다.
- Customize Export Commands 페이지에서 Default Query를 클릭하고, 삭제된 컬럼인 DEPTNAME이 SELECT 리스트에 없는지를 확인한다. Next를 클릭한다.
- Customize Import Commands 페이지에서, ORGANIZATION 테이블의 반출 컬럼과 반입 컬럼의 매핑을 확인한다. Next를 클릭한다.
- DB2 Maintenance Command 페이지에서, 객체에 권한을 보유한 명령어를 생성할 것인지, 패키지를 재 바인딩 할 것인지, runstats를 생성할 것인지, 패키지 캐시를 플러시(flush) 할 것인지를 체크한다. 기본적으로 어떤 옵션도 선택되지 않는다.
패키지 재 바인딩을 선택했다면, 패키지가 재 바인딩을 위한 스키마가 Select Schema 페이지에 기본적으로 선택된다.
- Merge Change 명령어 페이지에서, Next를 클릭한다.
- Finish를 클릭하여 변경 명령어를 생성한다. Deployment Script Editor의 Change Commands 페이지에 생성된 변경 명령어를 볼 수 있다.
- 변경 사항들을 HR 데이터베이스에 전개한다. Deployment Script Editor의 Change Commands 페이지에서, Deploy Changes to the Target Database를 클릭한다. Deploy Change Commands 마법사가 시작된다.
- Deploy Change Commands 마법사에서 단계를 완성한다.
- Deploy Steps 페이지에서, 사용자 아이디와 패스워드를 입력한다. 체크 박스의 체크는 그대로 둔다. Next를 클릭한다.
- Check Base Model 페이지에서, Next를 클릭한다.
- Change Commands 페이지에서, 데이터베이스에 전개 될 변경 명령어들을 검토한다. Finish를 클릭한다.
Data Output 뷰에는 HR 데이터베이스에 했던 변경 상태가 포함되어 있다.
지금까지 DB2 Change Management Expert와 Rational Data Architect를 함께 사용하는 방법을 설명했다. 같은 물리적 데이터 모델들은 이 두 가지 툴에서 공유될 수 있고, 디자인과 모델링부터 데이터베이스 변경 관리까지 적용할 수 있다. 단계별 튜토리얼을 통해 새로운 사용자들이 이 툴을 사용하는 방법을 쉽게 설명했다.
| 설명 | 이름 | 크기 | 다운로드 방식 |
|---|---|---|---|
| 이 기술자료의 샘플 데이터베이스 | CMERDADemo.zip | 5KB | HTTP |
교육
-
DB2 Change Management Expert.
-
Rational Data Architect.
-
" Information Management 및 Rational 애플리케이션 개발 관련 developerWorks 리소스 페이지에서 기술자료와 튜토리얼 등을 참고하여 RDA 스킬을 향상시켜보라.
-
technology bookstore
제품 및 기술 얻기
-
Rational Data Architect 무료 시험판 다운로드.
-
IBM 제품 평가판 다운로드: DB2®, Lotus®, Rational®, Tivoli®, WebSphere®.
토론

Carolyn Henry는 IBM Silicon Valley Laboratory(San Jose, CA)의 DB2 and IMS Tools 그룹의 정보 개발자이다. 2004년부터 DB2 Change Management Expert 팀에서 일하고 있다.

Leila Johannesen은 IBM Silicon Valley Laboratory(San Jose, CA)의 가용성 엔지니어이다. DB2 Tools 제품 사용과 관련된 일을 하고 있다.

