3.3.1 웹 로봇에서 수집해야 할 대상

웹 로봇에서는 관리자에 의해 Seed 사이트를 추가하면 이를 수집해야 할 대상으로 등록합니다. 그리고 웹 로봇은 주기적으로 수집해야 할 대상을 얻어와서 웹 페이지를 수집한 이후에 수집한 웹 페이지에 있는 링크를 다시 수집해야 할 대상으로 등록합니다. 여기에서는 Seed 사이트에서 특정 depth 내에 있는 웹 페이지를 수집할 수 있게 합시다.

이와 같은 정보를 반영하여 CandidateTable을 만들기로 합시다. 테이블의 컬럼에는 사이트 주소와 Seed 사이트에서의 상대적 깊이가 있어야겠죠. 그리고 수집해야 할 대상들을 순차적으로 일련 번호를 부여하기로 할게요.

[그림 3.16]처럼 Url을 Primary Key로 선정하였고 그림에는 나타나지 않았지만 SeqNo 속성으로 ID 사용을 true로 하고 Seed와 Step을 1로 합시다.

참고로 테이블 다이어그램은 Microsoft Visual Studio .NET에서 제공하는 기능입니다.

CandidateTable 다이어그램
[그림 3.16] CandidateTable 다이어그램

* 서버 탐색기를 이용하여 MS SQL Server에 DB 구축

여기에서는 Microsoft Visual Studio 2010에서 서버 탐색기를 이용하여 DB를 구축하는 과정을 간략하게 소개할게요. 먼저 Microsoft Visual Studio 2010 메뉴에서 보기 => 서버 탐색기를 선택합니다.

서버 탐색기
[그림 1] 서버 탐색기

 서버 탐색기를 이용하면 이미 만들어져 있는 데이터 베이스에 연결하거나 새로운 데이터 베이스를 만들 수있습니다. 여기에서는 새로운 데이터 베이스를 만들어서 사용해 봅시다. 여러분께서는 서버 탐색기 창에 데이터 연결에 마우스 커서를 이동한 후에 오른쪽 마우스 버튼을 클릭하세요. 클릭하면 나오는 컨텍스트 메뉴에서 새 SQL Server 데이터 베이스 만들기를 선택합니다.

새 SQL Server 데이터 베이스 만들기
[그림2] 새 SQL Server 데이터 베이스 만들기

새 SQL Server 데이터 베이스 만들기 창이 뜨면 설치되어 있는 MS SQL 서버를 선택하시고 서버를 사용하기위해 로그온을 지정하세요. Windows 인증 사용을 선택하거나 SQL Server 인증 사용을 선택할 수 있습니다. 여기에서는 SQL Server 인증 사용을 선택할게요.

여러분은 SQL Server 설치 시에 설정하였거나 이 후에 추가한 사용자 계정과 암호를 입력하세요. 그리고 새로 만들 데이터 베이스 이름을 입력한 후에 확인 버튼을 누르면 새로운 데이터 베이스를 생성할 수 있습니다.

새 SQL Server 데이터 베이스 만들기
[그림 3] 새 SQL Server 데이터 베이스 만들기

 이번에는 새로 만든 데이터 베이스에 새로운 테이블을 추가해 봅시다. 서버 탐색기의 테이블 항목에서 마우스 오른쪽 버튼을 클릭할 시에 나오는 컨텍스트 메뉴에서 새 테이블을 추가합니다.

새 테이블 추가
[그림 4] 새 테이블 추가

테이블 추가를 선택하고 테이블을 디자인합니다. 테이블을 디자인하는 것은 열(Column)을 추가하고 열의 속성 등을 지정하는 것을 말합니다.

여기서는 상품 테이블을 디자인해 볼게요. 상품 테이블에는 상품의 일련 번호인 PID와 상품 이름(PNAME), 가격(Price), 설명(Description)에 해당하는 열을 추가할게요.

상품 테이블 디자인
[그림 5] 상품 테이블 디자인

상품 아이디는 기본 키(Primary Key)로 설정합시다. 다음 그림처럼 컨텍스트 메뉴에서 기본 키 설정을 선택하세요.

기본 키 설정
[그림 6] 기본 키 설정

그리고 속성 창을 이용하여 열의 세부 속성을 지정하세요.

열 속성 지정
[그림 7] 열 속성 지정

테이블을 디자인한 후에 컨텍스트 메뉴를 통해 테이블을 저장합니다.

테이블 저장
[그림 8] 테이블 저장

테이블 저장을 선택한 후에 테이블 이름을 결정하면 테이블이 만들어집니다.

테이블 이름 선택
[그림 9] 테이블 이름 선택

이제 새로 만들어진 Product 테이블에 상품을 추가할게요. 테이블을 선택한 후에 컨텍스트 메뉴를 띄운 후에 테이블 데이터 표시를 선택하세요. 참고로 테이블 정의 열기를 선택하면 테이블을 디자인할 수 있습니다.

테이블 데이터 표시
[그림 10] 테이블 데이터 표시

테이블 데이터 표시를 선택하면 쉽게 데이터를 추가할 수 있는 탭이 생깁니다. 여러분께서는 몇 개의 상품 데이터를 추가해 보세요.

상품 데이터 추가
[그림 11] 상품 데이터 추가

이번에는 쿼리문을 이용하여 테이블을 추가하는 것을 해 봅시다. 여기서는 고객 테이블을 추가하는 것을 보여드릴게요. 데이터 베이스의 컨텍스트 메뉴에서 새 쿼리를 선택하세요. 그리고 테이블 추가 창에서 닫기 버튼을 누르세요.

새 쿼리 선택
[그림 12] 새 쿼리 선택
테이블 추가 창에서 닫기 버튼 선택
[그림 13] 테이블 추가 창에서 닫기 버튼 선택

그리고 테이블을 생성하는 쿼리문을 작성합니다. 테이블을 생성하는 쿼리문은 다음과 같습니다.

CREATE TABLE [테이블 명]

(

[컬럼 이름] [컬럼 형식 및 속성 지정],

[컬럼 이름] [컬럼 형식 및 속성 지정],

)

테이블 생성 쿼리문 작성
[그림 14] 테이블 생성 쿼리문 작성

쿼리문을 작성하였으면 컨텍스트 메뉴에서 SQL 실행을 선택하세요.

SQL 실행
[그림 15] SQL 실행

만약, 쿼리 정의 다름 창이 뜨셔도 계속 버튼을 누르면 쿼리를 실행합니다. 물론 쿼리문을 잘못 작성하면 동작하지 않습니다.

쿼리를 실행하더라도 서버 탐색기에 추가한 테이블이 바로 보이지 않습니다. 테이블의 컨텍스트 메뉴에서 새로 고침을 선택하셔야 새로 추가한 테이블을 볼 수 있습니다.

테이블의 컨텍스트 메뉴에서 새로 고침 선택
[그림 16] 테이블의 컨텍스트 메뉴에서 새로 고침 선택

고객 테이블과 상품 테이블을 추가하였으면 판매 테이블을 추가해 봅시다. 여기서는 처음에 추가한 상품 테이블을 만드는 방법으로 판매 테이블을 추가할게요. 추가할 판매 테이블은 CID, PID와 판매 개수(COUNT), 판매 일시(SaleDate)로 구성할게요.

판매 테이블 디자인
[그림 17] 판매 테이블 디자인

고객 테이블의 CID와 판매 테이블의 CID 사이의 관계와 상품 테이블의 PID와 판매 테이블의 PID 사이의 관계를 설정합니다. 관계를 설정하면 고객 테이블에 존재하지 않는 CID나 상품 테이블에 존재하지 않는 PID를 값으로 하는 데이터를 판매 테이블에 추가할 수 없게 합니다. 관계를 추가하기 위해 컨텍스트 메뉴에서 관계를 선택하세요.

컨텍스트 메뉴에서 관계 선택
[그림 18] 컨텍스트 메뉴에서 관계 선택

그리고 구체적인 관계를 추가하기 위해 외래 키 관계 창에서 추가를 선택하세요.

외래 키 관계 창에서 추가 선택
[그림 19] 외래 키 관계 창에서 추가 선택

테이블 및 열 사양 항목을 선택하면 기본 키 테이블의 어떤 항목과 외래 키 테이블의 어느 항목을 관계로 지정할 것인지 선택할 수 있습니다. 같은 방법으로 상품 테이블의 PID와 판매 테이블의 PID 관계도 추가하세요.

고객 테이블 CID와 판매 테이블의 CID 관계 설정
[그림 20] 고객 테이블 CID와 판매 테이블의 CID 관계 설정
상품 테이블의 PID와 판매 테이블의 PID 관계 설정
[그림 21] 상품 테이블의 PID와 판매 테이블의 PID 관계 설정

Microsoft Visual Studio 2010의 서버 탐색기에서는 데이터 베이스에 추가한 테이블과 관계를 시각적으로 보기 쉽게 다이어그램을 제공합니다. 이를 위해 서버 탐색기의 컨텍스트 메뉴에서 새 다이어그램 추가를 선택하세요.

새 다이어그램 추가 선택
[그림 22] 새 다이어그램 추가 선택

그리고 테이블 추가창에서 다이어그램에 도식할 테이블을 선택한 후에 추가 버튼을 클릭하세요.

다이어그램에 도식할 테이블 추가
[그림 23] 다이어그램에 도식할 테이블 추가

이렇게 하면 선택한 테이블의 디자인과 관계를 다이어그램으로 확인할 수 있습니다.

다이어그램
[그림 24] 다이어그램