[파일 처리] 11 텍스트를 위한 화일

2022. 6. 7. 21:14·Major/Database
728x90

 

1. 텍스트를 위한 파일

1) 개념 : 텍스트 필드로만 구성된 레코드를 접근할 수 있는 화일

 

2) 특징

- 텍스트 필드는 하나의 필드 안에 여러 개의 탐색 값(단어, keyword)가 포함

- keyword : '데이터베이스', '시스템', '질의어' 라는 단어를 어떤 방법으로 탐색할 것

 

2. 역 리스트 화일

1) 특징

- 역 리스트 화일 구조 : 인덱스 화일 + 포스팅 화일 + 데이터 화일로 구성

- 인덱스 화일 : 키워드 + 관련 레코드 수 + 포스팅에 대한 포인터

- 포스팅 화일 : 키워드를 포함한 데이터 레코드에 대한 포인터 리스트, 발생빈도, 키워드의 중요도, 발생 위치 추가

- 데이터 화일 : 문서 화일

 

2) 예시

- 키워드는 가나다 순으로 정렬

 

3) 장단점

ⓐ 장점 : 구현이 용이, 속도가 빠름

ⓑ 단점 : 많은 기억 공간 요구, 인덱스 갱신 재구성 시 비용이 크게 증가

 

4) 탐색 방법

> 불리언 질의

- 탐색 키워드들간의 논리 연산자('&','|','!')를 이용

 

> 랭킹 질의

- 탐색 질의어와 데이터 레코드간의 근접도를 평가하기 위해 유사도 휴리스틱을 사용하여

  일정한 개수의 근접 데이터 레코드들을 결과로 가져옴

- 초기 검색 엔진에 사용, 최근에는 불리언 질의와 병행 지원

 

3. 시그니처 화일

1) 개념

- 개략적 필터 방식에 기반

- 전체 화일의 내용을 순차적으로 검색하지 않고, 화일의 내용을 부호화 하여 소량의 공간에서 질의 검색하는 방법

- 중첩 코딩 : 시그니처 화일 생성 방법

 

* 개략적 필터라고 하는 이유는 ?

  • 서로 다른 키워드에 대한 해싱 결과가 동일한 시그니처를 생성할 가능성 있음
  • 블록 시그니처 만들 때 여러 개의 시그니처를 'or'연산을 하면서 다른 키워드와 일치 가능성 있음

2) 질의 연산 종류

- exact match : 질의문에 블록 시그니처의 모든 키워드가 주어질 때

- partial match : 질의문에 블록 시그니처의 키워드 일부만 주어질 때

 

3) 시그니처 코딩 방법

> 중첩 코딩 방법

- 각 문서를 동일한 수의 상이한 키워드를 포함하는 "논리 블록" 나눔

- 각 기워드를 F개의 비트로 구성된 "단어 시그니처"를 작성

- 단어 시그니처들을 or연산으로 하나의 "블록 시그니처"를 작성

 

4) 검색

5) 활용

① 시그니처 화일이 적합한 경우 

- pc에서 사용되는 중규모의 DB

- 검색 질의 빈도가 낮은 DB

- 병렬 처리되는 DB

 

② 장점

- 전문검색보다 2배정도 빠름

- 역화일 기법에 비해 적은 10~15%의 추가 공간 필요

- 추가적인 삽입만을 허용하므로 삽입 연산이 간단

 

③ 단점

- 대규모 DB에서는 레코드 수에 비례하여 속도가 저하

- 시그니처 구성에 사용되지 않은 키워드가 매치되는 것

 

 

6) 탐색 방법

ⓐ 순차 시그니처 화일

ⓑ 압축

- 시그니처의 행렬이 희소할 경우, 압축을 통해 저장 공간 감소시킴

- 시그니처 화일의 검색 시간 단축

- 연속된 숫자의 길이를 코드화하여 나타낸다.

 

728x90
저작자표시 비영리 (새창열림)

'Major > Database' 카테고리의 다른 글

[파일 처리] 10 다차원 공간 화일  (0) 2022.06.04
[파일 처리] 09 다중 키 화일  (0) 2022.06.04
[파일 처리] 08 직접 화일  (0) 2022.06.01
[파일 처리] 07 인덱스 된 순차 화일  (0) 2022.06.01
[파일 처리] 06 인덱스 구조 (기말고사 부분)  (0) 2022.06.01
'Major/Database' 카테고리의 다른 글
  • [파일 처리] 10 다차원 공간 화일
  • [파일 처리] 09 다중 키 화일
  • [파일 처리] 08 직접 화일
  • [파일 처리] 07 인덱스 된 순차 화일
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (253)
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (65)
        • Article (11)
        • Study (35)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (111)
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (15)
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    백준
    Algorithm
    react
    프로그래머스
    lisp
    C++
    데브코스
    리팩토링
    자료구조
    파일처리
  • hELLO· Designed By정상우.v4.10.2
BeNI
[파일 처리] 11 텍스트를 위한 화일
상단으로

티스토리툴바