반응형

저장 프로시저 구현 15

5. 3 DBM ForSearch에 필요한 저장 프로시저 구현

5. 3 DBM ForSearch에 필요한 저장 프로시저 구현 DBM ForSearch는 웹 검색을 요청했을 때 DBMS에 필요한 정보를 검색할 때 사용하는 라이브러리입니다. 사용자가 EH 응용에게 웹 검색을 요청하거나 관리자가 WSEManager 응용에게 웹 검색을 요청할 수 있습니다. EH 응용과 WSEManager 응용은 검색 요청이 오면 검색 서비스에게 검색을 요청합니다. 검색 서비스는 형태소 분석기를 통해 검색 질의에 있는 형태소를 분석합니다. 그리고 분석한 형태소 별로 DBM ForSearch 라이브러리를 이용하여 행태소를 포함하고 있는 페이지를 검색 요청합니다. DBM ForSearch 라이브러리는 저장 프로시저와 쿼리문을 이용하여 역 파일 요소에 형태소가 있는지 확인하고 형태소를 포함하는 ..

5.1.19 AddInvertedItem 저장 프로시저

5.1.19 AddInvertedItem 저장 프로시저 이번에는 형태소와 웹 페이지 주소, 참조 카운터를 입력 인자로 받아 동적으로 생성한 형태소 테이블에 웹 페이지 주소와 참조 카운터를 추가하는 저장 프로시저를 구현해 봅시다. 저장 프로시저 이름은 AddInvertedItem으로 결정합시다. 입력 인자로 형태소 이름, 웹 페이지 주소, 참조 카운터를 받습니다. CREATE PROCEDURE dbo.AddInvertedItem ( @Morpheme varchar(50), @Url varchar(50), @Refcnt int ) 먼저 GetMIndex 저장 프로시저를 이용하여 형태소 이름으로 역 파일 테이블에 있는 형태소 항목 번호를 얻어옵니다. 형태소 항목 번호를 얻어오기 위한 변수도 선언합니다. dec..

5.1.18 AddMorphemeInfo 저장 프로시저

5.1.18 AddMorphemeInfo 저장 프로시저 이제 AddMorphemeInfo 저장 프로시저를 만듭시다. 입력 인자로 형태소 이름을 받고 OUTPUT 유형의 존재 여부를 설정할 인자를 받습니다. CREATE PROCEDURE dbo.AddMorphemeInfo ( @Morpheme varchar(200), @Existed int OUTPUT ) 먼저 ExistedMorpheme 저장 프로시저로 존재하는 형태소인지 확인합니다. exec ExistedMorpheme @Morpheme, @Existed OUTPUT 존재하지 않으면 AddMorpheme 저장 프로시저를 이용해 형태소를 추가합니다. 그리고 GetMIndex를 이용해 형태소 번호를 얻어온 후에 CreateInvertedFile로 형태소 ..

5.1.17 CreateInvertedFile 저장 프로시저

5.1.17 CreateInvertedFile 저장 프로시저 역 파일에 매핑하는 형태소 테이블을 동적으로 생성하는 저장 프로시저를 만듭시다. 저장 프로시저 이름은 CreateInvertedFile로 합시다. 입력 인자로 역 파일 테이블의 형태소 항목 번호를 받습니다. CREATE PROCEDURE dbo.CreateInvertedFile ( @MIndex int ) 테이블을 동적으로 생성해야 하므로 쿼리문을 만들기 위한 변수와 테이블 이름을 동적으로 만들기 위한 변수를 선언합니다. declare @query nvarchar(200) declare @TName varchar(50) 테이블 이름은 MTB_를 prefix로 하고 뒤에 형태소 번호로 할 것입니다. 일단 형태소 항목 번호를 문자열로 변환하여 TN..

5.1.13 AddMCPostedUrlInfo 저장 프로시저

5.1.13 AddMCPostedUrlInfo 저장 프로시저 역 파일 생성기에서 역 파일을 만드는 과정은 MakeInvertedFile 시퀀스 다이어그램에 약속하였습니다. 시퀀스를 보면 수집한 웹 페이지에 있는 전체 형태소 개수를 보관하기 위해 DBM ForAll은 AddMCPostedUrlInfo 저장 프로시저를 이용합니다. 그리고 수집한 웹 페이지에서 발견한 형태소마다 별도의 테이블을 생성하는 AddMorphemeInfo 저장 프로시저를 사용합니다. 마지막으로 형태소와 웹 페이지 주소, 웹 페이지에 해당 형태소가 존재하는 참조 개수를 저장하기 위해 AddInvertedItem 저장 프로시저를 사용합니다. 먼저 웹 페이지 주소와 전체 형태소 개수를 저장하는 AddMCPostedUrlInfo 저장 프로시..

5.1.12 AddPostedUrl 저장 프로시저

5.1.12 AddPostedUrl 저장 프로시저 이제 DBM ForAll에서 실제 수집한 정보를 추가할 때 사용하는 저장 프로시저를 만듭시다. 저장 프로시저 이름은 AddPostedUrl로 합니다. 입력 인자는 InsertPostedUrl과 같습니다.CREATE PROCEDURE dbo.AddPostedUrl ( @Url varchar(200), @OriginUrl varchar(200), @Depth int, @PostedTime DateTime, @PostedContent varchar(MAX), @Title varchar(200) ) 먼저 수집 정보가 있는지 ExistedPostedUrl을 이용하여 확인합니다. 존재 여부를 기억하기 위한 변수 선언이 필요합니다.declare @Existed int..

5.1.11 InsertPostedUrl 저장 프로시저

5.1.11 InsertPostedUrl 저장 프로시저 이번에는 수집한 웹 페이지를 추가하는 프로시저를 만듭시다. 이름은 InsertPostedUrl로 할게요. 입력 인자로 웹 페이지 주소, 요청한 원래 주소, Seed 사이트에서의 상대적 깊이, 수집 시각, 웹 페이지 내용과 제목이 필요합니다. 그리고 insert 쿼리문을 이용하여 PostedUrlTable에 추가합니다. insert into PostedUrlTable values (@Url,@OriginUrl,@Depth,@PostedTime,@PostedContent,@Title) ▷ InsertPostedUrl 저장 프로시저

5.1.10 UpdatePostedUrl 저장 프로시저

5.1.10 UpdatePostedUrl 저장 프로시저 웹 로봇으로 웹 페이지를 수집하면 DBM ForAll에게 DBMS에 저장할 것을 요청합니다. 이와 같은 내용은 StorePostedUrl 시퀀스 다이어그램을 보면 알 수 있습니다. 그리고 시퀀스 다이어그램을 보면 DBM ForAll은 AddPostedUrl 저장 프로시저를 사용하기로 약속하였습니다. 그리고 수집한 페이지 내부에 링크를 다시 수집 대상 후보 사이트로 추가하는 부분이 있는데 앞에서 작성한 AddSeedSite 저장 프로시저를 이용하면 되므로 추가로 작성할 필요가 없습니다. 수집한 웹 페이지 정보를 추가할 때는 이미 수집한 웹 페이지인지 확인할 필요가 있습니다. 만약 이미 수집한 웹 페이지라면 내용을 변경하고 그렇지 않으면 추가하면 되겠죠..

5.1.9 GetFrontCandidate 저장 프로시저

5.1.9 GetFrontCandidate 저장 프로시저 CandidateTable의 맨 앞에 있는 요소 정보를 얻어오는 저장 프로시저를 만듭시다. 저장 프로시저 이름은 GetFrontCandidate로 결정할게요. 인자는 OUTPUT 유형으로 수집 후보 페이지 주소와 Seed 사이트에서의 상대적 깊이를 선언합니다. 그리고 수집 후보 대상이 없을 수도 있으니 이를 확인하는 인자도 선언합니다. CREATE PROCEDURE dbo.GetFrontCandidate ( @Url varchar(200) OUTPUT, @Depth int OUTPUT, @Getted int OUTPUT ) 먼저 CandidateTable에 항목 개수를 얻어옵니다. 항목 개수를 얻어오기 위해 변수 선언이 필요하고 GetCountCa..

5.1.6 GetMinSeqNo 저장 프로시저

5.1.6 GetMinSeqNo 저장 프로시저 이번에는 CandidateTable에서 일련 번호가 가장 작은 값을 얻어오는 저장 프로시저를 만듭시다. 저장 프로시저 이름은 GetMinSeqNo라고 할게요. 인자로 OUTPUT 형태의 가장 작은 값을 설정하기 위한 SeqNo인자를 선언합시다. CREATE PROCEDURE dbo.GetMinSeqNo ( @SeqNo int OUTPUT ) CandidateTable에서 SeqNo의 최소값을 얻어와 변수 SeqNo에 설정합니다. set @SeqNo = (select min(SeqNo) from CandidateTable ) 그런데 CandidateTable에 항목이 비어 있다면 변수 SeqNo에는 null 상태가 됩니다. 이럴 떄는 변수 SeqNo 값을 -1..

반응형