-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
본문내용
Server에서 ‘Exdb’라는 이름의 데이터베이스 생성
. ERwin에 Database >Database Connection... SQL Server Connection대화상자에서 정보입력(Database 입력상자에는 스키마를 생성 할 데이터베이스 이름, Server Name은 데이터베이스 서버 시스템의 컴퓨터 이름..) 하여 접속 그런 다음 Connect 버튼을 누르면 연결을 시도하게 되는데 연결이 정상적으로 이 루어지면 SQL Server Connection대화상자가 사라지게 된다. 아니면 에러 메시지가 나타난다.
* ‘sa’는 SQL Server에서 최고 관리자 계정이며 SQL Server를 설치할 때 비밀번호를 정의했다면 Password입력상자에도 비밀번호를 입력해야한다. ‘sa’ 계정에 아무런 비밀번호도 정의하지 않았다면 입력하지 않는다.
. 정상적으로 연결이 됐다면 이제 데이터베이스 스키마를 생성해야 한다.
Tool> Forward Engineer / Schema generation... SQL Server Schema Generation대화상자
여기서 Generatie 버튼을 누르면 스크립트가 실행 되면서 ‘Exdb’ 데이터베이스에 ERwin에서 정의한 스키마가 만들어 지게 됨 (이 상태에서는 파일 그룹이 적용되지 않으므로 앞에서 정의한 파일그룹의 설정 내용이 실제 데이터베이스에 적용되도록 하려면 아래의 그림처럼 Table과 Index에 있는 Schema옵션 중에서 Physical Storage옵션을 선택 해야만 한다.
만약 중간에 에러가 나면 어떤 종류의 에러메시지인지 잘 확인해 보도록 하자.
그런 다음 해당내용을 다시 ERwin에서 수정해 주어야 하며 위의 Generate Database Schema 대화상자에서 저장 버튼을 눌러 위의 스크립트를 저장해 두도록 하자. 저장 파일의 확장자는 ‘ere’이며 메모장으로 열어서 내용을 확인 할 수 있다.
모두 정상적으로 작업을 마쳤다면 이제 실제 데이터베이스 스키마가 정상적으로 생성되었는지를 SQL Server에서 확인해 보도록 하자. 만일 SQL Server에서 아래와 같이 개체(Object)들이 보이지 않는다면 F5키를 눌러서 REFRESH한 다음 다시한번 확인해 보자. 테이블(Table), 뷰(View), 저장 프로시저( Stored Procedure), 규칙( Rule), 기본값( Default ),트리거(Trigger)등등 모든 내용들을 살펴보자.
* 참고 : 앞에서 파일 그룹을 정의해서 사용했는데 실제로 판매 테이블과 판매테이블의 인덱스가 원하는 파일 그룹에 저장되었는지를 확인하려면 쿼리 분석기에서 ‘SP_HELP 판매’ 를 실행하면 아래와 같이 테이블과 인덱스들의 파일 그 룹에 대한 정보를 확인할 수 있다.
위의 화면에서 Data_located_on_filegroup은 판매 테이블이 위치해 있는 파일 그룹에 대한 정보를 보여주고 있으며 그 밑에 인덱스와 인덱스 유형 그리고 인덱스가 위치해 있는 파일 그룹에 대한 정보를 보여주고 있다. 그런데 판매 테이블의 위치가 ‘FGB’로 정의되어 있다. 이전 실습에서 분명히 판매 테이블의 파일 그룹을 ‘FGA’로 정의했었다. ERwin으로 가서 다시 한번 확인해 보도록 하자.
그런데 이게 왠일인가? 혹시 버그 ? 그렇다면 데이터베이스 스키마를 생성할 때 저장했던 스크립트를 열어서 판매 테이 블과 관련한 내용을 확인해 보자.
CREATE TABLE 판매 ( 판매번호 bigint NOT NULL, 판매날짜 char(8), 판매단가 int, 판매수량 int, 판매금액 int, 회원번호 char(8) NOT NULL, 상품코드 char(6) NOT NULL ) ON "FGA" Execution Successful
CREATE CLUSTERED INDEX XIE1판매 ON 판매 ( 판매날짜 ) ON "FGB" Execution Successful
ALTER TABLE 판매 ADD PRIMARY KEY NONCLUSTERED (판매번호) ON "FGB" Execution Successful
아마도 인덱스에 대해서 제대로 공부하신 분들이라면 위 상황에 대한 대답을 할 수 있을 것이다. 클러스터드 인덱스는 인덱스의 리프 레벨(Leaf Level)이 데이터 페이지(Data Page)이다. 해서 위의 소스코드에서 테이블을 만들 때는 ‘FGA’파일 그룹에 만들어 지지만 판매날짜 컬럼에 클러스터드 인덱스를 만들면서 인덱스의 리프 레벨 (Leaf Level) 즉 데이터 페이지 ( Data Page )가 ‘FGB’파일 그룹으로 재정의 되어졌다. 해서 판매 테이블이 최종적으로 위치하게 되는 파일 그룹은 ‘FGB’인 것이다. 그렇기 때문에 아무리 테이블의 파일 그룹과 인덱스의 파일 그룹을 구분한다 하더라도 클러스터드 인덱스가 만들어지면 클러스터드 인덱스가 정의된 파일 그룹에 테이블이 위치하게 되기 때문에 클러스터드 인덱스는 테이블을 저장하고자 하는 파일 그룹에 정의해야 하며 넌 클러스터드 인덱스를 테이블과 다른 파일 그룹에 저장해야 한다. 위의 파일 그룹에 대한 예는 다음 도표처럼 판매 테이블에 인덱스를 정의해야 한다.
인덱스 유형 유니크 컬럼 종류 파일그룹
X판매 기본키 Unique 판매번호 Non Clustered Index FGB
XIE1판매 Inversion Entry Non Unique 판매날짜 Clustered Index FGA
그런 다음 다시한번 쿼리 분석기에서 ‘SP_HELP 판매’문을 실행하면 다음과 같이 테이블과 판매날짜 컬럼의 인덱스는 ‘FGA’ 파일 그룹에 그리고 판매 테이블의 기본키 인덱스는 ‘FGB’파일 그룹에 있는 것을 확인할 수 있다.
프린트 하기
1. 가로 방향 or 세로 방향으로 출력 선택 : File >Print Setup 2. File > Print 출력 용지의 외곽선을 선택해서 출력물의 위치와 사이즈를 정의 오른쪽 밑에 Fit Model버튼을 누르면 전체 디자인 했던 스키마가모두 보여질 수 있도록 자동으로 사이즈를 최적화
에러처리: ERWin Unable to locate client connectivity software
. ERwin에 Database >Database Connection... SQL Server Connection대화상자에서 정보입력(Database 입력상자에는 스키마를 생성 할 데이터베이스 이름, Server Name은 데이터베이스 서버 시스템의 컴퓨터 이름..) 하여 접속 그런 다음 Connect 버튼을 누르면 연결을 시도하게 되는데 연결이 정상적으로 이 루어지면 SQL Server Connection대화상자가 사라지게 된다. 아니면 에러 메시지가 나타난다.
* ‘sa’는 SQL Server에서 최고 관리자 계정이며 SQL Server를 설치할 때 비밀번호를 정의했다면 Password입력상자에도 비밀번호를 입력해야한다. ‘sa’ 계정에 아무런 비밀번호도 정의하지 않았다면 입력하지 않는다.
. 정상적으로 연결이 됐다면 이제 데이터베이스 스키마를 생성해야 한다.
Tool> Forward Engineer / Schema generation... SQL Server Schema Generation대화상자
여기서 Generatie 버튼을 누르면 스크립트가 실행 되면서 ‘Exdb’ 데이터베이스에 ERwin에서 정의한 스키마가 만들어 지게 됨 (이 상태에서는 파일 그룹이 적용되지 않으므로 앞에서 정의한 파일그룹의 설정 내용이 실제 데이터베이스에 적용되도록 하려면 아래의 그림처럼 Table과 Index에 있는 Schema옵션 중에서 Physical Storage옵션을 선택 해야만 한다.
만약 중간에 에러가 나면 어떤 종류의 에러메시지인지 잘 확인해 보도록 하자.
그런 다음 해당내용을 다시 ERwin에서 수정해 주어야 하며 위의 Generate Database Schema 대화상자에서 저장 버튼을 눌러 위의 스크립트를 저장해 두도록 하자. 저장 파일의 확장자는 ‘ere’이며 메모장으로 열어서 내용을 확인 할 수 있다.
모두 정상적으로 작업을 마쳤다면 이제 실제 데이터베이스 스키마가 정상적으로 생성되었는지를 SQL Server에서 확인해 보도록 하자. 만일 SQL Server에서 아래와 같이 개체(Object)들이 보이지 않는다면 F5키를 눌러서 REFRESH한 다음 다시한번 확인해 보자. 테이블(Table), 뷰(View), 저장 프로시저( Stored Procedure), 규칙( Rule), 기본값( Default ),트리거(Trigger)등등 모든 내용들을 살펴보자.
* 참고 : 앞에서 파일 그룹을 정의해서 사용했는데 실제로 판매 테이블과 판매테이블의 인덱스가 원하는 파일 그룹에 저장되었는지를 확인하려면 쿼리 분석기에서 ‘SP_HELP 판매’ 를 실행하면 아래와 같이 테이블과 인덱스들의 파일 그 룹에 대한 정보를 확인할 수 있다.
위의 화면에서 Data_located_on_filegroup은 판매 테이블이 위치해 있는 파일 그룹에 대한 정보를 보여주고 있으며 그 밑에 인덱스와 인덱스 유형 그리고 인덱스가 위치해 있는 파일 그룹에 대한 정보를 보여주고 있다. 그런데 판매 테이블의 위치가 ‘FGB’로 정의되어 있다. 이전 실습에서 분명히 판매 테이블의 파일 그룹을 ‘FGA’로 정의했었다. ERwin으로 가서 다시 한번 확인해 보도록 하자.
그런데 이게 왠일인가? 혹시 버그 ? 그렇다면 데이터베이스 스키마를 생성할 때 저장했던 스크립트를 열어서 판매 테이 블과 관련한 내용을 확인해 보자.
CREATE TABLE 판매 ( 판매번호 bigint NOT NULL, 판매날짜 char(8), 판매단가 int, 판매수량 int, 판매금액 int, 회원번호 char(8) NOT NULL, 상품코드 char(6) NOT NULL ) ON "FGA" Execution Successful
CREATE CLUSTERED INDEX XIE1판매 ON 판매 ( 판매날짜 ) ON "FGB" Execution Successful
ALTER TABLE 판매 ADD PRIMARY KEY NONCLUSTERED (판매번호) ON "FGB" Execution Successful
아마도 인덱스에 대해서 제대로 공부하신 분들이라면 위 상황에 대한 대답을 할 수 있을 것이다. 클러스터드 인덱스는 인덱스의 리프 레벨(Leaf Level)이 데이터 페이지(Data Page)이다. 해서 위의 소스코드에서 테이블을 만들 때는 ‘FGA’파일 그룹에 만들어 지지만 판매날짜 컬럼에 클러스터드 인덱스를 만들면서 인덱스의 리프 레벨 (Leaf Level) 즉 데이터 페이지 ( Data Page )가 ‘FGB’파일 그룹으로 재정의 되어졌다. 해서 판매 테이블이 최종적으로 위치하게 되는 파일 그룹은 ‘FGB’인 것이다. 그렇기 때문에 아무리 테이블의 파일 그룹과 인덱스의 파일 그룹을 구분한다 하더라도 클러스터드 인덱스가 만들어지면 클러스터드 인덱스가 정의된 파일 그룹에 테이블이 위치하게 되기 때문에 클러스터드 인덱스는 테이블을 저장하고자 하는 파일 그룹에 정의해야 하며 넌 클러스터드 인덱스를 테이블과 다른 파일 그룹에 저장해야 한다. 위의 파일 그룹에 대한 예는 다음 도표처럼 판매 테이블에 인덱스를 정의해야 한다.
인덱스 유형 유니크 컬럼 종류 파일그룹
X판매 기본키 Unique 판매번호 Non Clustered Index FGB
XIE1판매 Inversion Entry Non Unique 판매날짜 Clustered Index FGA
그런 다음 다시한번 쿼리 분석기에서 ‘SP_HELP 판매’문을 실행하면 다음과 같이 테이블과 판매날짜 컬럼의 인덱스는 ‘FGA’ 파일 그룹에 그리고 판매 테이블의 기본키 인덱스는 ‘FGB’파일 그룹에 있는 것을 확인할 수 있다.
프린트 하기
1. 가로 방향 or 세로 방향으로 출력 선택 : File >Print Setup 2. File > Print 출력 용지의 외곽선을 선택해서 출력물의 위치와 사이즈를 정의 오른쪽 밑에 Fit Model버튼을 누르면 전체 디자인 했던 스키마가모두 보여질 수 있도록 자동으로 사이즈를 최적화
에러처리: ERWin Unable to locate client connectivity software
소개글