구조
역 인덱스
역 인덱스 구성
역 화일의 종류
효율적인 역 인덱스 구성
가변 길이 인덱스 엔트리로 관리
고정 길이 인덱스 엔트리로 관리
→ 최대 수의 기본 키 값을 수용할 수 있는 공간 할당
인덱스 엔트리를 중복시켜 관리
→ 역 인덱스 엔트리는 <인덱스 키 값, 하나의 기본 키> 로만 구성
역 인덱스 응용
인덱스 만으로 질의 처리 가능
주민번호가 20010921인 학생이 있는가?
컴퓨터학부에는 몇 명의 학생이 있는가?
컴퓨터학부에 속하는 학생의 학번들을 나열하라
주민번호가 20010921인 학생의 학번은 무엇인가?
ex. ‘학번’ 키로 하는 인덱스된 순차화일 주고, ‘주민번호’ 인덱스 키로 하는 역 인덱스 구성
→ ‘학번’, ‘주민번호’에 의한 직접 접근
→ ‘학번’에 의한 순차 접근도 지원
‘주민 번호’를 키로 만든 역 인덱스에서 키 엔트리 정렬시켜 유지
→ ‘주민번호’ 순으로 순차 접근 가능
예제
→ ‘주민번호’와 데이터 레코드의 ‘주소’쌍으로 구성한 직접 주소 기법
‘학번’이 3358인 학생의 ‘주민번호’는 무엇인가?
1. 데이터 화일에서 ‘학번’이 3358인 학생 레코드의 주소를 검색
2. ‘주민번호’ 역 인덱스에서 이 레코드 주소를 포함하고 있는 인덱스 엔트리 탐색 (순차 검색 필요 : 비효율적)
← ‘주민번호’값은 데이터 레코드에 없기 때문
→ 학번을 이용한 주민 번호 역 인덱스 (보조키, 기본키 쌍) 간접 주소 기법
레코드 주소 대신 기본 키 사용
→ 역 인덱스 화일과 데이터 레코드 화일은 독립적 X
→ 기본 키를 기초로 한 데이터 레코드 화일: 물리적 재구성, 재조직
→ 기본 키 값을 통해서만 접근 가능
역 화일의 연산
다중 리스트 화일
데이터 레코드 구조
설계시 고려사항
레코드 검색 과정
리스트 길이 정보 활용
학생 데이터 화일 순차적 검색
→ 20개의 레코드 접근
학과 다중 리스트 인덱스 사용
→ 4개의 레코드 접근
입학년도 다중 리스트 인덱스 사용
→ 7개의 레코드 접근
삽입
삭제
갱신
구현 방법