KRISTAL-II v.1.6을 이용한 Database 구축 1997. 7. 11. 연구개발정보센터 김진숙/GIIS
차례 데이타베이스 구조 문서구조 색인형태 데이타베이스 적재 스키마화일 문서적재 웹인터페이스 구축
데이타베이스 구조 ..... Database Group Catalog Catalog Volume Document Volume 데이타베이스그룹 카탈로그 데이터베이스 카탈로그 문서 카탈로그 섹션 카탈로그 복합섹션 카탈로그 데이타베이스 1 데이타베이스 n 데이타베이스 2 데이타베이스 3 문서볼륨 1 문서볼륨 2 문서볼륨 N 카탈로그볼륨 Catalog Volume 하나 이상의 데이타베이스들에 대한 문서구조, 저장 위치, 색인 방법 등에 대한 정보들을 저장 Document Volume 구축하려는 실제의 문서들과 문서들에 대한 색인 저장 Database Group n개의 데이타베이스를 하나의 DB Group으로 확장
문서 구조 기본 섹션 (Primitive Section) 코드화된 섹션 (Coded Section) 문서를 구성하는 최소 단위 예) 제어번호, 저자, 제목, 초록 섹션 등 코드화된 섹션 (Coded Section) 축약된 형태의 데이타를 갖는 섹션을 위한 논리적인 섹션 예) 문헌종류 코드, 기관코드 등 결합 섹션 (Complex Section) 두개 이상의 기본 섹션들을 결합한 논리적인 섹션 예) 서명(통일서명, 총서명, 등), 저자 섹션 등
색인 형태(1) EXACT INCLUSIVE_NONE, INCLUSIVE_MA Not_Exist 기본섹션의 내용 또는 값 전체를 하나의 색인어로 추출 예) 제어번호, 기관코드 등 INCLUSIVE_NONE, INCLUSIVE_MA 내용기반의 부분 일치 검색 형태소 해석기의 사용 유무 예) 제목, 초록 등 Not_Exist 색인을 수행하지 않음
색인 형태(2) INCLUSIVE_CHAR NUMERIC STRING 글자단위로 색인어 생성 “홍_길동”, “홍_길_동”, “홍길동”의 검색 예) 저자명 등 NUMERIC 숫자로만 구성된 기본 섹션의 색인어 추출 예) 날짜, 일련번호 등 STRING EXACT와 동일한 방식이나 값의 비교가 가능 예) 제어번호 등
데이타베이스 적재 ... Catalog Database Group Database Documents Code List Schema File Documents Code List Stopwords KRISTAL LOADER Catalog Database Group Catalog Database Document Database 1 Document Database n Document Database 2 ... Catalog Volume Document Volume 1 Document Volume 2 Document Volume 3 Document Volume n
스키마 화일 스키마 화일 데이타베이스 디렉토리, 문서 볼륨, DB 그룹, 섹션의 정의, 기본 섹션 색인 방법 정의, 원시 문서의 구조, 적재 방법 등에 관한 정보 DATABASE_DIRECTORY CREATE_DOCUMENT_VOLUME CREATE_SCHEMA CREATE_DATABASE DEFINE_DOCUMENT_STRUCTURE DEFINE_DOCUMENT_GROUP LOAD_DATABASE END
스키마 화일(DB 디렉토리 지정) DATABASE_DIRECTORY 데이타베이스를 저장하기 위한 디렉토리 지정 DATABASE_DIRECTORY=‘directory_name’; // 디렉토리 이름 예) DATABASE_DIRECTORY=‘/home/saturn/volume’; 데이타베이스를 저장하기 위한 디렉토리 지정 KRISTAL-II가 시스템 내부적으로 사용하는 목록데이타베이스 생성 및 문서볼륨 저장을 위한 명령어 위의 결과로 목록볼륨과 문서식별자 매핑 파일이 생성된다. /home/saturn/volume/CATALOG.SYS /home/saturn/volume/DOCLOC.SYS
스키마 화일(문서볼륨 생성) 볼륨의 크기 = (num_ext * extent_size * 4Kbytes) 예 CREATE_DOCUMENT_VOLUME { (1) VOLUME_NAME=‘saturnvol01’ NUMBER_OF_EXTENTS=10000 EXTENT_SIZE=16, (1) VOLUME_NAME=‘saturnvol02’ EXTENT_SIZE=16 }; 볼륨의 크기 = (num_ext * extent_size * 4Kbytes) 예 10000 * 16 * 4Kb = 640000Kb = 640Mb
스키마 화일 (CREATE_SCHEMA) { DATABASE_GROUP_NAME=database_group_name SECTION_DEFINITION (sec_no) [section_def], . . . . . . , (sec_no) [section_def] } COMPLEX_SECTION_DEFINITION (sec_no) [complex_section_def], (sec_no) [complex_section_def] INDEX_DEFINITION (idx_no) [index_def], (idx_no) [index_def] };
스키마 화일(SECTION_DEFINITION) { (1) LABEL=“section_descripton” SECTION_NAME=section_name, (2) LABEL=“section_descripton” SECTION_NAME=section_name . . . . . . (n) LABEL=“section_descripton” } 예) SECTION_DEFINITION { (1) LABEL=“문헌종류” SECTION_NAME=DT, (2) LABEL=“문헌종류” SECTION_NAME=DTC . . . . . . (n) LABEL=“초록” SECTION_NAME=AB }
스키마 화일(COMPLEX_SECTION_DEFINITION) { (1) LABEL=“complex_section_descripton” SECTION_NAME=complex_section_name SECTIONS=(section_name, section_name, . . . , section_name), (2) LABEL=“complex_section_descripton” . . . . . . } 예) COMPLEX_SECTION_DEFINITION { (1) LABEL=“기본 검색 필드” SECTION_NAME=BI SECTIONS=(TI, AB), (2) LABEL=“저자” SECTION_NAME=AU . . . . . . }
스키마 화일(INDEX_DEFINITION) { (1) SECTION_NAME=“section_name” INDEX_TYPE=index_type, (2) SECTION_NAME=“section_name” INDEX_TYPE=index_type STOPWORD=(‘stopword_file_pathname’), . . . . . . } 예) INDEX_DEFINITION { (1) SECTION_NAME=AN INDEX_TYPE=EXACT, (2) SECTION_NAME=DT (3) SECTION_NAME=DTC INDEX_TYPE=NOT_EXIST, (3) SECTION_NAME=TI INDEX_TYPE=INCLUSIVI_MA STOPWORD=(‘~/dict/stopword/swords’), . . . . . . }
스키마 화일(CREATE_DATABASE) { (1) DATABASE_GROUP_NAME=“database_group_name” DATABASES=(database_name, database_name, ......, database_name) } 예) CREATE_DATABASE { (1) DATABASE_GROUP_NAME=SATURN DATABASES=(SATURN1, SATURN2, SATURN3, SATURN4, SATURN5, SATURN6, SATURN7, SATURN8, SATURN9, SATURN10, SATURN12, SATURN13, SATURN14, SATURN15) }
스키마 화일(문서구조 정의) DEFINE_DOCUMENT_STRUCTURE 예) DEFINE_DOCUMENT_STRUCTURE { DATABASE_GROUP_NAME=database_group_name STRUCTURE_DEFINITION=document_structure_name (1) TAG=“section_start_tag” ACTION=DISCARD, COPY, or TRANSLATE NEW_DOCUMENT_FLAG=FALSE (default) or TRUE, (2) TAG=“section_start_tag” SECTION_NAME=section_name, . . . . . . } 예) DEFINE_DOCUMENT_STRUCTURE { DATABASE_GROUP_NAME=SATURN STRUCTURE_DEFINITION=DOCSTRUC1 (1) TAG=“@ SATURN_VIEW” ACTION=DISCARD NEW_DOCUMENT_FLAG=TRUE, (2) TAG=“#AN=” ACTION= COPY SECTION_NAME=AN, } . . . . . . }
스키마 화일(문서그룹 정의) DEFINE_DOCUMENT_GROUP 예) DEFINE_DOCUMENT_GROUP { (1) doc_group_name=(‘doc_pathname’, . . . . . ‘doc_pathname’), (2) doc_group_name=(‘doc_pathname’, . . . . . . } 예) DEFINE_DOCUMENT_GROUP { (1) kord92=(‘~/data/kord/92/kord001.dat’, . . . . . . ‘~/data/kord/92/kord100.dat’), (2) kord93=(‘~/data/kord/93/kord001.dat’, ‘~/data/kord/93/kord100.dat’), }
스키마 화일(문서적재 및 종료) LOAD_DATABASE 예) LOAD_DOCUMENT END { (1) FROM=document_group_name TO=(DATABASE_GROUP_NAME:database_group_name DATABASE_NAME:database_name VOLUME_NAME:’document_volume_name’ FILE_NAME:file_name_in_volume) WITH=document_structure_name, . . . . . . } 예) LOAD_DOCUMENT { (1) FROM=kord92 TO=(DATABASE_GROUP_NAME:SATURN DATABASE_NAME:SATURN1 VOLUME_NAME:’saturnvol01’ FILE_NAME:kord92) WITH=DOCSTRUC1, . . . . . . } END
문서적재(1) 문서적재시 필요한 디렉토리 ~/data ~/schema ~/dict ~/dict/code ~/dict/stopword ~/kristal bin@, include@, lib@ KRISTAL-II 디렉토리와의 link ~/volume catalog volume, document volume
문서 적재(2) KRISTAL -Syntax < Schema_File_Name KRISTAL -Create < Schema_File_Name schema 파일에 지정된 목록볼륨과 문서볼륨을 생성하고 시스템정보를 목록볼륨에 저장 KRISTAL -Semantic < Schema_File_Name schema 파일에 지정된 섹션이름, 필요한 파일들의 존재 여부를 확인하고, 데이타베이스그룹 이름, 문서볼륨이름, 문서구조이름 등이 제대로 사용되었는 지 검사하고 실제작업은 수행하지 않음
문서 적재(3) KRISTAL -Index < Schema_File_Name KRISTAL -Loadp < Schema_File_Name schema 파일에 기술된 문서구조에 따라 원시문서를 읽어들여 문서 데이타베이스에 적재하고, 위의 과정에서 생성된 색인어 파일로부터 색인 파일을 적재 KRISTAL -Alter < Schema_File_Name 데이타베이스 적재후 변경사항 있을 경우 사용
웹 인터페이스 구축 1) 홈에서 WebInterface.tar를 푼다 tar xvf WebInterface.tar 2) 기본적인 tuning make tuning 3) ~/public_html/tuning/systemtuning.html을 웹브라저로 읽는다. 4) 주어진 빈칸들을 채우고 실행을 시키면 시스템에 맞게 인터페이스가 tuning 된다. 2) 다음 명령어에 의해 설치가 완료된다. make install