Transcript DBMS-13장

13 : 모델링 실습
학습 목표
CASE 도구인 ERwin을 설치하고 셋업하는 방법을 익힌다.
ERwin을 이용하여 논리적 모델링을 수행하는 방법을 실전 프로젝트를
통하여 익힌다.
Chapter
13
모델링 실습
1. ERwin의 설치와 셋업
2. 논리적 모델링
3. 물리적 모델링
Chapter
13
1. ERwin의 설치와 셋업
개요
 ERwin은 전 세계적으로 애용해온 데이터 모델링 CASE 도구다.
 ERwin과 같은 CASE 도구를 이용할 때의 장점
• 모델링 작업의 효율성을 극적으로 높일 수 있음
• 데이터베이스를 구축하기 위한 DDL 스크립트가 자동으로 생성됨
 ERwin은 컴퓨터 어소시에이츠(CA)에서 검토판을 무료로 다운로드 해서 테스
트해 볼 수 있다. ‘CA ERwin Data Modeler 7.3 Eval’은 실체를 25개까지 만
들 수 있으며, 15일간 사용할 수 있다.
 다음 사이트에 접속하여 다운로드할 수 있다.
http://www.ca.com/us/trials/collateral.aspx?cid=72121
Chapter
13
2. 논리적 모델링
요구 사항 명세
 약식 병원 관리(HIS, Hospital Information System) 데이터베이스 구
축 프로젝트를 시작하자.
Chapter
13
2. 논리적 모델링
속성 분석
 [표 13-2]에서 각 실체 내의 세부 정보인 이름, 직급, 소속 등이
속성이 된다.
 [표 13-3]은 분석된 속성이다. 여기서 PK는 기본 키를, FK는
외래 키를 나타낸다(앞에서 분석된 관계에 의함).
Chapter
13
속성 분석
2. 논리적 모델링
Chapter
13
2. 논리적 모델링
새 모델 생성
 이제 ERwin으로 데이터 모델을 작성해 보자.
1. 메뉴바에서 [File | New]를 선택하거나, 도구 바의 첫째 도구(Create
Model)를 누르면 [그림 13-9]와 같은 모델 생성 대화상자가 나타난다.
Chapter
13
2. 논리적 모델링
새 모델 생성
2. [New Model Type]으로는 [Logical/Physical]을 선택하고 [Target
Database]로는 사용하고자 하는 DBMS(여기서는 SQL Server
2005/2008)를 지정한다. [New Model Type] 중 [Logical]이나
[Physical]은 논리적 또는 물리적 모델만을 만들고자 하는 것으로,
일반적으로 사용되지 않는다.
3. [그림 13-9]에서 [OK] 버튼을 누르면 새로운 빈 모델이 다이어그램
창에 만들어진다. 참고로, 좌하단의 처리 기록 영역에 모델링 트랜잭션
들이 표시되는 것을 볼 수 있다.
Chapter
13
새 모델 생성
2. 논리적 모델링
Chapter
13
2. 논리적 모델링
다이어그램 창의 환경 설정
 모델링 작업은 주로 다이어그램 창에서 수행하므로 이 창에 대한
환경 설정이 중요하다.
 기본 글꼴 및 색상 지정
• 다이어그램 창에서 마우스의 오른쪽 버튼을 누르고 [Default Fonts
& Colors]를 선택하면 기본 글꼴과 색상을 지정할 수 있는 대화상자가
나타난다. 모델에서 사용하는 기본 글꼴 및 색상을 여기서 지정할 수
있다.
Chapter
13
2. 논리적 모델링
다이어그램 창의 환경 설정
Chapter
13
2. 논리적 모델링
다이어그램 창의 환경 설정
 표기법
• 메뉴바에서 [Model | Model Properties]를 선택하면 모델 속성
대화상자가 나타나는데, 여기서 [Notation] 탭을 누르면 표기법
설정 페이지가 나타난다.
Chapter
13
2. 논리적 모델링
다이어그램 창의 환경 설정
Chapter
13
2. 논리적 모델링
다이어그램 창의 환경 설정
Chapter
13
2. 논리적 모델링
실체와 속성 작성
 12장에서 설명한 실체와 속성을 실제로 작성해보자.
1. 먼저 빈 모델을 파일로 저장한다. 이렇게 최대한 빨리 파일을 만들고,
수시로 저장을 해주어야 작업 내용을 실수로 모두 잃어버리는 사고를
방지할 수 있다. 이를 위해서 [File | Save As]를 선택하고 폴더와
파일명을 지정 및 입력한 후 [저장]을 클릭한다.
Chapter
13
2. 논리적 모델링
실체와 속성 작성
Chapter
13
2. 논리적 모델링
실체와 속성 작성
2. 도구 상자의 실체 도구(
)를 누른 후, 다이어그램 창의 적당한 위치를
누른다. 그러면 [그림 13-24]와 같은 실체가 새로 만들어진다.
3. 여기서 초기 이름‘( E/1’과 같은 형식) 대신 실체의 이름을 직접
입력한다. 논리적 모델의 이름은 한글로 만들기를 권장한다(단,‘ ID’,
‘ FAX’와 같은 특수어는 예외).
Chapter
13
2. 논리적 모델링
실체와 속성 작성
4. [그림 13-25]에서는 기본 키와 비키 속성을 직접 입력할 수 있다.
단, 실체 이름, 기본 키, 그리고 비키 속성 사이를 전환할 때는‘Tab’
을 누르며, 그 외에는‘Enter’를 눌러 이름 입력을 마무리해야 한다.
주의할 사항은 마지막 속성의 이름을 입력한 후‘Esc’를 누르면
해당 속성의 입력이 취소된다는 점이다. 반드시‘Enter’를 누르거나,
마우스로 실체 이외의 다른 곳을 눌러 입력을 마무리해야 한다.
Chapter
13
2. 논리적 모델링
실체와 속성 작성
5. 속성을 만들거나 관리하려면 속성 대화상자를 이용할 수도 있다. 이 속성
대화상자는 실체를 두 번 누르거나 해당 실체에서 마우스의 오른쪽 버튼
을 누르고 [Attributes]를 누르면 열 수 있다.
Chapter
13
2. 논리적 모델링
실체와 속성 작성
왼쪽 아래의 [New...] 버튼으로 속성(기본 키 포함)을 만들고, [Rename...]
이나 [Delete] 버튼으로 속성의 이름을 바꾸거나 삭제할 수도 있다. 기본
키로 지정하려면 오른쪽의 [Primary Key] 선택상자를 누르면 된다.
또한 속성들 사이의 순서를 변경할 수도 있다. 순서를 변경하려면 왼쪽
속성 목록상자 위의
버튼을 이용하면 된다(단, 기본 키는 항상 제일
앞에 오며, 이는 바꿀 수 없다).
Chapter
13
2. 논리적 모델링
실체와 속성 작성
6. 완성된 실체 / 속성은 [그림 13-27]과 같다. 참고로 Zoom in 도구를
이용해서 모델의 크기를 키운 것이다.
Chapter
13
2. 논리적 모델링
관계 설정
 12장에서 설명한 관계 설정을 실제로 수행해보자.
1. 실체 사이에 식별 관계를 설정하려면 도구 상자에서 식별 관계 도구
(
)를 선택한 후, 부모실체‘(실체1’)를 먼저 누르고 이어서 자식
실체‘( 실체2’)를 누른다. 그러면 [그림 13-28]과 같은 식별 관계가
맺어진다(물론, 관계를 설정하기 전에 두 실체 사이의 관계 차수를
파악하여 부모와 자식 실체를 판별해야 한다).
Chapter
13
관계 설정
2. 논리적 모델링
Chapter
13
2. 논리적 모델링
관계 설정
2. 실체들 사이에 비식별 관계를 설정하려면 도구 상자에서 비식별 관계
도구(
)를 선택하고, 앞의 예와 같은 방법으로 관계를 설정한다. 이때
[그림 13-29]와 같은 선택적 비식별 관계가 맺어진다.
Chapter
13
2. 논리적 모델링
관계 설정
3. 강제적 비식별 관계는 직접적으로 맺을 수 없고, 다른 관계에서
변환해야 한다. 강제적 비식별 관계로 변환하려면 [그림 13-29]의
관계선을 두 번 눌러야 한다. 이때 [그림 13-30]과 같은 관계 대화
상자가 나타난다.
Chapter
13
관계 설정
2. 논리적 모델링
Chapter
13
2. 논리적 모델링
관계 설정
4. 강제적 비식별 관계로 변환하려면 관계 대화상자의 오른쪽 아래에 있는
[Nulls] 영역에서‘No Nulls’를 선택하면 된다. 그러면 의사 쪽의
다이아몬드 표시가 사라진다(강제적 비식별 관계로 변환된 표시다).
이러한 변환은 식별 관계와 각종 비식별 관계(강제적, 선택적) 사이로
확대될 수 있다(그러나 다대다 관계는 변환 대상이 아니다). 식별 관계와
비식별 관계 사이를 변환하려면 관계 대화상자의 오른쪽 하단에 있는
[Relationship Type] 영역에서‘Identifying(식별 관계)’또는
‘Non-Identifying(비식별 관계)’을 선택하면 된다.
Chapter
13
2. 논리적 모델링
관계 설정
5. 실체들 사이에 다대다 관계를 설정하려면 도구 상자에서 다대다 관계
도구(
)를 선택한 후, 두 실체를 차례대로 누른다(다대다 관계에는
부모-자식 실체의 구분이 없고, 서로 대등하다). 그러면 [그림 13-31]과
같은 다대다 관계가 맺어진다.
Chapter
13
2. 논리적 모델링
관계 설정
6. 관계 차수는 [그림 13-30]의 관계 대화상자의 왼쪽 하단에 있는
[Cardinality] 영역에서 설정하는데, 여기서는 자식 실체 쪽의 관계
차수만 설정한다. 정확히 N(예를 들어, 1:3) 관계 차수를 설정하려면
‘Exactly’를 선택한 후, 오른쪽에 있는 입력상자에 N에 해당하는
값(예: 3)을 입력하면 된다.
Chapter
13
2. 논리적 모델링
관계 설정
7. 약식 병원 관리 프로젝트에서 (초기) 관계가 설정된 논리적 모델은
[그림 13-32]와 같다. 모든 관계는 일대다의 강제적 비식별 관계로
설정했다.
Chapter
13
2. 논리적 모델링
관계 설정
8. 그런데 관계 설정으로 자동으로 생성된 외래 키‘의사 ID’와‘환자
ID’는 기본적으로 기존 속성의 뒷부분에 만들어진다. 이를 수정하려면
진료 실체를 두 번 클릭하여(또는 진료 실체에서 마우스의 오른쪽 버튼을
클릭하고 [Attributes...]를 선택하여) [그림 13-33]과 같은 속성 창을
열고 속성을 클릭한 후
된다.
버튼을 이용하여 속성의 순서를 변경하면
Chapter
13
관계 설정
2. 논리적 모델링
Chapter
13
2. 논리적 모델링
관계 설정
9. 이제 약식 병원 관리 프로젝트의 논리적 모델은 [그림 13-34]와 같이
수정되었다.
Chapter
13
2. 논리적 모델링
순환 관계 설정
 순환 관계(recursive relationship): 자신의 실체를 참조하는 관계
를 말하는데, 회사 조직과 같은 계층 구조를 나타내기 위해 종종 사용
된다.
 그러면 실제로 순환 관계를 설정해보자.
1. 순환 관계를 설정하려면 식별 관계 도구나 비식별 관계 도구를 선택
하고, 실체를 두 번 누르면 된다(한 번 누르고 약 1초 후 다시 누름).
그러면 [그림 13-35]와 같이 순환 관계선이 나타난다(순환 관계에
서는 선택적 비식별로 해야 한다).
Chapter
13
2. 논리적 모델링
순환 관계 설정
Chapter
13
2. 논리적 모델링
순환 관계 설정
2. 분명히 관계는 설정했는데 외래 키가 보이지 않는 이유는 기본 키와
외래 키의 이름이 같아서 실체 하나에 모두 표시할 수 없기 때문이다.
관계선을 두 번 누르면 관계 대화상자가 나타나는데, 여기서 [Rolename]
탭을 누르면 [그림 13-36]과 같은 역할 이름 페이지가 나타난다. 중앙의
[Migrated Attribute] 목록상자에‘임직원 ID’가 표시되는 것으로
보아, 기본 키가 외래 키로 넘어왔음을 분명히 알 수 있다.
Chapter
13
2. 논리적 모델링
순환 관계 설정
Chapter
13
2. 논리적 모델링
순환 관계 설정
[Rolename] 입력상자에‘관리자 ID’라고 입력한 후, [OK] 버튼을
누르면 외래 키가 표시된다. 여기서 외래 키‘관리자 ID’는 비록 이름이
바뀌었지만, 정확히 기본 키‘임직원 ID’를 참조한다(참고로, 약식 병원
관리 프로젝트에는 순환 관계가 없다).
Chapter
13
2. 논리적 모델링
연속 삭제 / 갱신 설정
 약식 병원 관리 프로젝트에서는 다음과 같은 관계들에 연속 삭제
설정을 하기로 한다.
• 의사 - 진료
• 환자 - 진료
 의사 또는 환자 실체의 한 인스턴스를 삭제하면 진료 실체의 해당
인스턴스들이 연속적으로 삭제될 것이다.
Chapter
13
2. 논리적 모델링
연속 삭제 / 갱신 설정
1. ERwin에서 연속 삭제 / 갱신을 설정하려면 해당 관계선
(예: 의사-진료 관계선)을 두 번 눌러 관계 대화상자를 열고,
[RI Actions] 탭을 누른다. 그러면 RI 처리 대화상자가
나타난다.
Chapter
13
2. 논리적 모델링
연속 삭제 / 갱신 설정
Chapter
13
2. 논리적 모델링
연속 삭제 / 갱신 설정
2. 여기서 [Parent Delete] 드롭다운 목록상자의 값을‘CASCADE’
로 지정한다(만약 연속 갱신도 설정하려면 [Parent Update]도
‘CASCADE’로 지정하면 된다). 이어서 환자-진료 관계선도 동일하게
설정한다. 연속 삭제가 설정된 관계선에는 [그림 13-39]처럼“(연속
삭제)”와 같은 코멘트를 달아주는 것이 좋다(제목을 작성할 때와 비슷한
텍스트 도구를 사용하면 된다).
Chapter
13
2. 논리적 모델링
순환 관계 설정
Chapter
13
3. 물리적 모델링
개요
 이제부터는 설계에 해당하는
물리적 모델링을 진행해 보자.
 물리적 모델링은 [그림 1340]과 같은 순서로 진행된다.
Chapter
13
3. 물리적 모델링
물리적 모델 초기 셋업
 물리적 모델은 다음과 같은 절차에 따라 셋업해야 한다.
1. 논리적 모델에서 물리적 모델로 넘어가려면 다이어그램 창 아래에
‘Physical’로 표시된 저장 디스플레이 탭을 눌러야 한다. 앞의
‘저장 디스플레이 설정’부분을 제대로 따라했다면 이때 도구 바의
드롭다운 목록상자도‘Physical’로 동기화된다.
Chapter
13
3. 물리적 모델링
물리적 모델 초기 셋업
2. 논리적 모델의 레이아웃을 계승받으면 실체들이 겹쳐 보일 것이다.
따라서 [그림 13-41]처럼 실체들 사이의 간격을 적당히 유지하도록
조정한다. 실체들의 위치를 맞출 때 정렬 도구를 사용하면 도움이 된다.
예를 들어, 실체 3개를 모두 선택한 다음에 Align Top(
) 도구를
클릭하면 [그림 13-41]처럼 실체의 위쪽이 일치하게 된다.
Chapter
13
3. 물리적 모델링
물리적 모델 초기 셋업
Chapter
13
3. 물리적 모델링
물리적 모델 초기 셋업
3. 관계선에 의해 자동으로 생성된 외래 키들은 논리적 모델에서 순서를
변경했더라도 물리적 모델에는 변경 전의 순서가 유지된다.
- 예를 들어, 진료 테이블의 의사_ID와 환자_ID 열들은 처방전_ID 뒤에
온다. 이 순서를 변경하려면 진료 테이블을 두 번 클릭하여(또는 진료
테이블에서 마우스의 오른쪽 버튼을 클릭하고 [Column...]을 선택
하여) [그림 13-42]와 같은 열 창을 열고 대상 열을 클릭한 후
버튼을 이용하여 순서를 변경하면 된다.
Chapter
13
3. 물리적 모델링
물리적 모델 초기 셋업
Chapter
13
3. 물리적 모델링
이름 영문화
 한글 이름을 부여했던 논리적 모델과 달리, 물리적 모델에서는 영문
이름을 사용하는 것을 권하므로, 이름을 영문으로 바꿔보자.
1. 물리적 모델로 처음 넘어오면 테이블의 이름이 모두 논리적 모델과
같은 한글 이름으로 되어 있을 것이다. 이를 영문 이름으로 바꾸려면
다이어그램 창에서 해당 테이블을 선택하여 누른 후 이어서 테이블
이름을 한 번 더 누른다. 그러면 테이블 이름을 바꿀 수 있는 상태가
된다.
Chapter
13
3. 물리적 모델링
이름 영문화
2. 논리적 모델의 속성 이름(한글)을 물리적 모델의 열 이름(영문)으로
바꾸려면 해당 테이블에서 마우스의 오른쪽 버튼을 누르고 [Columns...]
를 선택한다. 열 대화상자가 나타나면 [Column] 목록에서 이름을 바꿀
열을 선택한 후, [Rename...] 버튼을 누른다. 그러면 [그림 13-43]과
같은 열 이름 변경 대화상자가 나타난다.
Chapter
13
이름 영문화
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
이름 영문화
3. 영문 이름으로 바꿀 때 주의할 점은 물리적 모델에서 바꾼 영문 이름을
논리적 모델에까지 다시 적용해서는 안 된다는 것이다. 논리적 모델의
한글 이름은 그대로 둬야 한다. 즉 각 저장 디스플레이에서 다른 이름을
사용하는 것이다.
Chapter
13
이름 영문화
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
이름 영문화
4. 이름 영문화를 마친 물리적 모델은 [그림 13-44]와 같다.
Chapter
13
3. 물리적 모델링
데이터 형식, NULL / NOT NULL / IDENTITY 설정
 [그림 13-44]를 보면 모든 데이터 형식이 char(18)로 되어
있는데, 이는 물리적 모델의 기본 데이터 형식이기 때문이다.
 각 열에 적절한 데이터 형식과 NULL / NOT NULL / IDENTITY
여부를 [표 13-5]와 같이 설정해야 한다.
Chapter
13
3. 물리적 모델링
데이터 형식, NULL / NOT NULL / IDENTITY 설정
Chapter
13
3. 물리적 모델링
데이터 형식, NULL / NOT NULL / IDENTITY 설정
1. 데이터 형식과 NULL / NOT NULL / IDENTITY를 설정하려면 해당
테이블에서 마우스의 오른쪽 버튼을 누르고 [Columns...]를 선택한다.
열 대화상자가 나타나면 [SQL Server] 탭을 클릭하고 [Column] 목록
상자에서 설정하려는 열을 선택한 후 [SQL Server Datatype] 영역
에서 원하는 데이터 형식을 지정하면 된다. 데이터 형식에 ( )가 있으면
( ) 안에 직접 값을 입력한다. 그리고 [Null Option] 영역에서 NOT
NULL, NULL, IDENTITY 중 하나를 선택한다.
Chapter
13
3. 물리적 모델링
데이터 형식, NULL / NOT NULL / IDENTITY 설정
Chapter
13
3. 물리적 모델링
데이터 형식, NULL / NOT NULL / IDENTITY 설정
2. 일부 데이터 형식(date, time 등)은 ERwin에서 제공하지 않는데,
이때는 직접 입력하면 된다.
- 예를 들어, treatment 테이블의 treat_time 열의 경우, [SQL
Server Datatype] 바로 아래의 입력상자에‘time(0)’을 직접
입력하면 된다. date는 날짜만 저장할 수 있는 새로운 데이터 형식
으로, 기본 문자열 상수 형식은 YYYY-MM-DD(10자리)이며, time은
시각만 저장할 수 있는 새로운 데이터 형식으로, 00:00:00부터
23:59:59.9999999까지 지정할 수 있는데 time(0)로 지정하면
소수점 이하가 생략된다.
Chapter
13
3. 물리적 모델링
데이터 형식, NULL / NOT NULL / IDENTITY 설정
3. 주의할 점은, 부모 테이블의 열부터 먼저 데이터 형식을 지정해야 하며,
자식 테이블의 외래 키 데이터 형식은 부모 테이블의 기본 키를 자동으로
상속받는다. 그러나 부모 테이블의 기본 키에 지정된 IDENTITY 속성은
상속되지 않으며, 강제적 비식별 관계에 의해 외래 키는 NOT NULL로
지정된다.
Chapter
13
3. 물리적 모델링
데이터 형식, NULL / NOT NULL / IDENTITY 설정
4. 이런 방법으로 데이터 형식과 NULL / NOT NULL / IDENTITY를
모두 적용한 물리적 모델은 [그림 13-46]과 같다.
Chapter
13
3. 물리적 모델링
제약조건 설정
 [표13-6]과 같이 키, 기본값, CHECK 제약조건들을 설정하기로 한다.
Chapter
13
3. 물리적 모델링
제약조건 설정
1. 기본 키와 외래 키 제약조건은 논리적 모델링 단계에서 이미 자동으로
설정되었으므로 추가 작업이 불필요하다.
2. 기본값 제약조건을 설정하려면 [그림 13-47]의 제일 밑에 있는
열 대화상자에서 지정하고자 하는 열을 선택하고(예: treat_date),
[Constraint] 탭을 누른 후 열 대화상자의 우하단에 있는 [Default]
영역의 [...] 버튼을 클릭한다.
Chapter
13
제약조건 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
제약조건 설정
3. 이때 기본값 / 초기값 대화상자가 열리는데 여기서 우상단의 [New...]
버튼을 클릭한다.
Chapter
13
3. 물리적 모델링
제약조건 설정
4. 그러면 새 기본값 대화상자가 열린다. Logical 입력상자에 기본값 이름
(예: DFT_Today)을 입력하고 Tab을 누르면 Physical 입력상자에도
Logical과 같은 기본값 이름이 나타난다.
Chapter
13
3. 물리적 모델링
제약조건 설정
5. 새 기본값 대화상자에서 [OK]를 클릭하면 [그림 13-50]과 같은 기본값
/ 초기값 대화상자로 돌아오는데, 목록상자에 방금 등록한 기본값 이름
(예: DFT_Today)이 나타나고 선택된다. [Server Value – SQL
Server Default] 입력상자에 원하는 기본값(예: CONVERT(date,
GETDATE( )))을 입력하고, [Generate As] 영역에서‘DEFAULT’
를 선택한다.
Chapter
13
제약조건 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
제약조건 설정
6. 기본값 / 초기값 대화상자에서 [OK]를 클릭하면 [그림 13-51]과
같은 열 대화상자로 돌아오고, [Default] 영역에 방금 설정한 기본
값이 표시된다. [Name] 입력상자의‘DFT_Today_705314133’은
treat_date 열에서 사용할 기본값 제약조건의 이름으로, 공용할 수
있는 기본값 이름(DFT_Today)을 여러 곳에서 사용할 경우 이들을
각각 고유하게 만들기 위해 ERwin에서 자동으로 일련번호를 추가한
것이므로 이 제약조건 이름은 바꾸지 않는 것이 좋다.
Chapter
13
제약조건 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
제약조건 설정
7. 마찬가지 방법으로 treat_time 열에 대한 기본값 제약조건을 설정하면
[그림 13-52]와 같이 된다.
Chapter
13
3. 물리적 모델링
제약조건 설정
8. CHECK 제약조건을 설정하려면 [그림 13-53]의 제일 밑에 있는 열
대화상자에서 지정하고자 하는 열을 선택하고(예: pat_gender), 열
대화상자의 우상단에 있는 [Validation Constraint] 영역의 [...]
버튼을 클릭한다.
Chapter
13
제약조건 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
제약조건 설정
9. 이때 검증 규칙 대화상자가 열리는데 여기서 우상단의 [New...]
버튼을 클릭한다.
Chapter
13
3. 물리적 모델링
제약조건 설정
10. 새 검증 규칙 대화상자가 열린다. Logical 입력상자에 CHECK 규칙
이름(예: CHECK_Gender)을 입력하고 Tab을 누르면 [Physical]
입력상자에도 Logical과 같은 CHECK 규칙 이름이 나타난다.
Chapter
13
3. 물리적 모델링
제약조건 설정
11. 새 검증 규칙 대화상자에서 [OK]를 클릭하면 [그림 13-56]과 같은
검증 규칙 대화상자로 돌아오는데, 목록상자에 방금 등록한 CHECK
규칙 이름(예: CHECK_Gender)이 나타나고 선택된다. [SQL
Server Rule] 입력상자에 원하는 CHECK 규칙(예: pat_gender
IN ‘( F’, ‘ M’))을 입력하고, [Generate As] 영역에서
‘CHECK Constraint’를 선택한다.
Chapter
13
제약조건 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
제약조건 설정
12. 검증 규칙 대화상자에서 [OK]를 클릭하면 [그림 13-57]과 같은 열
대화상자로 돌아오고, 우상단의 [Validation Constraint] 영역에
방금 설정한 CHECK 규칙이 표시된다. [Name] 입력상자의‘CHECK
_Gender_1346856663’은 pat_gender 열에서 사용할 CHECK
제약조건의 이름으로, 공용할 수 있는 CHECK 규칙(CHECK_
Gender)을 여러 곳에서 사용할 경우 이들을 각각 고유하게 만들기
위해 ERwin에서 자동으로 일련번호를 추가한 것이다.
Chapter
13
제약조건 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
인덱스 설정
 인덱스는 각각의 열에서 별도로 설정을 해줘야 한다.
 논리적 모델링 과정에서 기본 키와 외래 키로 지정된 열(들)에는
인덱스가 자동으로 설정된다. 이를 확인해보자.
1. 열 대화상자의 오른쪽에 있는 [Index] 탭을 누르면 [그림 13-58]과
같은 인덱스 페이지가 나타나는데, 우하단의 [Show FK Indexes]
선택상자는 꼭 선택하도록 한다(외래 키에 대한 인덱스는 매우 중요
하기 때문이다).
Chapter
13
3. 물리적 모델링
인덱스 설정
2. 위쪽에서 Table(예: treatment)을 선택하고, 왼쪽에서 확인하고자
하는 열(예: treat_id)을 선택하면 해당 열에 설정된 인덱스가 오른쪽에
표시된다. 여기서는‘XPK진료’라는 인덱스가 자동으로 만들어져 있는
것을 확인할 수 있다.
Chapter
13
인덱스 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
인덱스 설정
3. 이어서 외래 키(예: phy_id)를 선택하면‘X1F1진료’라는
인덱스가 자동으로 만들어져 있는 것을 확인할 수 있다([Show
FK Indexes] 선택상자가 해제되어 있다면 이것은 나타나지
않으므로 주의해야 한다).
Chapter
13
인덱스 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
인덱스 설정
4. 이 외래 키를 자세히 살펴보려면 [Index Membership] 영역
오른쪽의 [...] 버튼을 클릭한다. 이때 [그림 13-60]과 같은 대화
상자가 나타나고, 해당 인덱스‘( X1F1진료’)에 대한 자세한
설정을 확인할 수 있다.
Chapter
13
인덱스 설정
3. 물리적 모델링
Chapter
13
3. 물리적 모델링
인덱스 설정
5. 새 인덱스를 추가하려면 [그림 13-60] 위쪽의 도구 바에서 New(
도구를 누른다. 그러면 [그림 13-61]과 같은 새 인덱스 종류를 지정
받는 팝업 메뉴가 나타난다. 고유 인덱스를 만들려면 New Unique
Index 메뉴 항목을, 그렇지 않다면 New Non-Unique Index 메뉴
항목을 선택하면 된다.
)
Chapter
13
3. 물리적 모델링
인덱스 설정
그러면 [그림 13-60]의 위쪽 목록상자에 새 인덱스가 추가되고
선택되며, 아래쪽 Index Members에는 아무 열도 지정되지 않은
상태로 표시된다. 여기서 인덱스에 포함시킬 열(들)을 선택하면 된다
(이 프로젝트에는 새 인덱스가 필요하지 않으므로 적용을 생략한다).
Chapter
13
3. 물리적 모델링
테이블별 코멘트 작성
 물리적 모델의 각 테이블 옆이나 아래에 다음과 같은 코멘트를 작성해
놓으면 모델을 파악하는 데 많은 도움이 된다(여기서‘→’의 오른쪽
에 있는 문장은 실제 모델에는 표시하지 않는, 이 책을 위한 코멘트
들이다).
DFT: treat_date(오늘 날짜) → 기본값 제약 조건
CHK: pat_gender('F' 또는 'M') → CHECK 제약 조건
NDX: prescr_id(UNIQUE) → (PK, FK 이외의) 인덱스
Chapter
13
3. 물리적 모델링
테이블별 코멘트 작성
 일반적으로 ERD(특히 물리적 모델)는 매우 복잡하므로, 코멘트가
차지하는 면적을 최소화하도록 축약된 형태로 작성해야 한다.
따라서 코멘트 내의 ( ) 안에도 구체적인 식(예: CONVERT(date,
GETDATE( ))) 대신 간략한 설명(예: 오늘 날짜)을 기재하는 것이
바람직하다.
 참고로‘prescr_id(UNIQUE)’인덱스는 가상적인 코멘트이며,
이 프로젝트에 적용된 것은 아니다.
Chapter
13
3. 물리적 모델링
테이블별 코멘트 작성
 [그림 13-62]는 약식 병원 관리 프로젝트의 완성된 물리적 모델이다.
Chapter
13
3. 물리적 모델링
모델링 시트 작성 및 출력
 이어서 데이터베이스 구축 및 프로그래밍, 웹 응용 프로그램 또는
각종 보고서를 작성하기 위해 논리적 모델과 물리적 모델을 빈번하게
참조하게 될 것이다.
 따라서 [그림 13-39]의 완성된 논리적 모델과 [그림 13-62]의
완성된 물리적 모델을 PowerPoint 등을 이용하여 통합하여 [그림
13-63]과 같이 한 장의 시트로 작성하고 프린트로 출력해서 수시로
참고할 수 있도록 준비하는 것이 꼭 필요하다.
Chapter
13
3. 물리적 모델링
모델링 시트 작성 및 출력