7장 인덱스된 순차 화일.

Slides:



Advertisements
Similar presentations
Book Review 작지만강한기업에 투자하라 - 랄프 웬저. 목차 1.- 랄프웬저에 대하여 2. 심리에대하여 3. 어떤기업에 투자할것인가 ? - 합리적인 주가의 성장주, - 작은기업 - 작지만 강한기업의 3 가지 지지대 4. 종목발굴의 아이디어 - 테마 - 나쁜뉴스.
Advertisements

폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
7 월 소식지에서는 도서관 분류에 대해 알아보았어요. 한국십진분류법은 0 에서 9 까지 열 개의 수를 가지고 이 세상 의 모든 것을 나누는 방법이라는 것. 이 세상의 모든 것이 이 열 개 가운데 어딘가에 꼭 들어가 야 한 다는 것 그럼,
© DBLAB, SNU 화일구조. 강의 소개 - 화일구조  Instructor : Prof. Sukho Lee (301 동 404 호 )  홈페이지 :  교과목 개요 – 이 과목은 데이타 관리와 응용을 위한 화일 구조의 설계와.
1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
2008 사회통계조사 통 계 청 사회복지통계과.
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
진지한씨와 유령선생 언론영상학과 장미선.
2016학년도 중학교 대상 학교로 찾아가는 대입설명회 [학교혁신과].
화일구조.
1. 자료구조 개념 (1) 자료구조의 개요 1) 자료구조 ① 일련의 자료들을 조직하고 구조화하는 것 ② 자료의 표현과 그것과 관련된 연산 2) 자료구조에 따라 저장공간의 효율성과 프로그램의 실행시간이 달라짐 3) 어떠한 자료구조에서도 필요한 모든 연산들을 처리하는 것이.
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
8. 파일 인덱스: 탐색트리 (Search Tree)
Moving Walk Set by sequential circuit 6조 장철훈 장황재
데이터베이스 시스템.
M원 탐색트리.
암호화 기술(SSL, IPSec) 손재성 권기읍 안복선 최준혁
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
2017년 1/4분기 상1동 주민자치센터프로그램 수강생 모집【선착순】
꼼꼼한 청소법 생활의 지혜.
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
01 화일의 기본 개념 02 화일 저장장치 03 화일 입출력 제어 04 순차화일 05 화일의 정렬 06 화일의 합병
Chapter 4. Fundamental File Structure Concepts
컴퓨터 구조학 정보보호학과.
쉽게 배우는 알고리즘 5장. 검색트리
State Chart Diagram WHY DON’T WE BE a GREEN?.
Chapter 16 데이터베이스 파일 인덱싱 기법, B-트리 및 B+-트리
1장. 데이터베이스 시스템 컴퓨터를 사용하여 정보를 수집하고 분석하는데 데이터베이스 기술이 활용되고 있음
3주 컴퓨터구조.
운영체제 (Operating Systems)
워드프로세서 필기 (구 1급) 6일차 강 사 : 박영민.
Chapter 10. 파일 시스템 인터페이스(File System Interface)
파일 시스템 인터페이스(File System Interface)
제 4 장 결합원가계산.
Computer System Architecture
제10,11,12장 파일시스템 디스크 스케줄링.
제 4 장 가상 메모리 관리 4.1 개요 가상 메모리는 하나의 프로세스 전체가 한 번에 주기억 장치 내에 존재하지 않고 일부만 있어도 수행하게 하는 방법을 제공함. 가상 메모리를 사용하면 사용자는 실제 주소 공간의 크기에 구애 받지 않고 보다 큰 가상 주소 공간상에서 프로그래밍을.
본 자료는 광고/홍보 목적이 아닌 회원을 위한 내부 교육용 자료입니다.
제10장 파일 시스템 인터페이스(File System Interface)
목차 INDEX 1. 회원가입 및 로그인 2. 업체정보 3. 제조검사 신청 4. 인보이스 5. 검사진행현황(현장검사 신청)
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
1조 김성수 백현기 석광우 김지원 박광연.
매장 가이드북 프로그램접속방법 판매등록 RT 등록 주문등록 수선등록 5)현황 6)즐겨찾기 설정방법.
운영체제 (Operating Systems) (Memory Management Strategies)
호암초등학교 박대현 선생님의 음악 수업 안내.
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
Chapter 12 Memory Organization
파일 구조의 이해 PE Format 안녕하십니까
[ 강남구 청담동 “이동수에프엔지” ].
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
[ACE+] 서비스-러닝 프로그램 (00000) 대학 00 학과.
화일구조.
CHAPTER 04 파일 설계(FiLE Design).
C언어 응용 제 15 주 검색.
MFC를 이용한 자바클래스파일 분석기 < Java Virtual Machine Simulator >
2017학년도 학력인정 문해교육 운영 기관 현황 행정구별 기관수 현황 초등학력 프로그램 운영기관 중학학력 프로그램 운영기관
제 8장 데이터베이스.
PE File Format? 20-1 김건호.
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
제9장 가상 메모리 관리.
1. Cut 편집.
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.

데이터 베이스의 내부 구조.
1. 데이터베이스 환경.
유예 X-FILE *조사자* 1301권희원 1315이예지 1317장아정 1322홍자현.
책을 읽읍시다  탈향 진지하게 설명해드림 1303 김소희 1309박지호 1315이지수.
Chapter 2. 경영분석을 위한 재무제표 재무제표의 공시.
2016년 제1차 운영위원회 평택시건강가정 ∙다문화가족지원센터
Presentation transcript:

7장 인덱스된 순차 화일

 인덱스된 순차 화일의 구조 순차 화일 : 순차 접근 방법 결합 직접 화일 : 직접 접근 방법 구조 순차 데이타 화일 : 순차적으로 정렬 인덱스 : 화일에 대한 포인터

▶ 인덱스된 순차 화일의 예 이원 탐색 트리의 인덱스 구조를 가진 인덱스된 순차 화일의 예

▶ 구현 방법 삽입, 삭제시 정적 인덱스(static index) 방법 순차 데이타 화일의 레코드 순서 유지 방법 인덱스 갱신 방법 정적 인덱스(static index) 방법 인덱스의 내용 변경, 구조 불변 오버플로우 구역 사용 인덱스 : 하드웨어 의존적 설계 보조기억장치의 물리적 특성(실린더, 트랙) IBM의 ISAM

▶ 구현 방법 동적 인덱스(dynamic index) 방법 인덱스, 데이타 화일 : 블럭 블럭 : 예비 공간 인덱스 오버플로우 → 분열(split) 언더플로우 → 합병(merge) 인덱스 B+-트리 하드웨어 독립적 IBM의 VSAM

 정적 인덱스 방법 정적인 구현 기억장치의 물리적 특성에 기반

▶ 데이타 화일 기본 구역(prime area) 오버플로우 구역 각 실린더 분리된 화일 : 추가적인 삽입 트랙 0 : 트랙의 레코드에 대한 인덱스 트랙 1-n : 데이타 레코드 오버플로우 구역 분리된 화일 : 추가적인 삽입 오버플로우 포인터 = <실린더, 트랙, 레코드 번호> 실린더 당 오버플로우 구역 또는 한 화일당 한 오버플로우 구역

▶ 인덱스 화일 엔트리 = <키 값, 포인터(실린더 번호, 트랙 번호)> 마스터 인덱스 실린더 인덱스 트랙 인덱스 최상위 레벨 인덱스 (주기억장치에 상주) <최고키값, 포인터> 실린더 인덱스 <최고키값, 실린더 번호> 트랙 인덱스 실린더에 저장된 레코드들에 대한 인덱스 트랙 0에 위치 <최저키값, 트랙 번호>

▶ 정적 인덱스 방법 예 정적 인덱스 방법으로 구성된 인덱스된 순차 화일

▶ 갱신 연산 (삽입) 가정 : 각 트랙 : 5 레코드, 40 % 자유공간 ① INSERT 김수철 INSERT 강원구 가정 : 각 트랙 : 5 레코드, 40 % 자유공간 ① INSERT 김수철 INSERT 강원구 ★ 트랙의 각 항목은 오름차순 유지

▶ 갱신 연산 (삽입) ② INSERT 김시만 ★ 오버플로우 구역 - 기본구역과는 별개의 실린더

▶ 갱신 연산 (삽입) ③ INSERT 남창원 INSERT 나용선 INSERT 나원규 ★ 레코드의 순서 - 기본 트랙의 항목에 오버플로우된 항목도 포함하여 순서유지 기본 데이타 화일 실린더 1 트랙 1 2 3 강석오 1 김시만 op1 김연주 2 남창원 op2 문봉기 3 강 석오 김 연주 문 봉기 강 원구 나 민영 안 기영 강 인희 나 용선 유 성렬 김 성기 김 수철 나 원규 남 윤희 실린더 7 오버플로 구역 트랙 1 2 3 김 시 만 남 창 원

▶ 갱신 연산 (삽입) ④ INSERT 김성복 ★오버플로우 구역의 레코드 : 체인으로 연결 <레코드, 해당 트랙의 다음 오버플로우 레코드에 대한 포인터>

▶ 검색 직접 검색 순차 검색 마스터 인덱스 → 실린더 인덱스 → 실린더 주소 트랙 인덱스 → 트랙 포인터 포인터 = 데이타 구역의 트랙 데이타 트랙의 순차 탐색 포인터 = 오버플로우 구역 오버플로우 체인 탐색 순차 검색 기본 데이타 트랙 검색 오버플로우 체인 접근

▶ 검색 성능 기본 구역의 레코드 접근 : 4회 오버플로우 구역 : 3 + k 재구성 인덱스 화일 : 2 트랙 인덱스 : 1 데이타 트랙 : 1 오버플로우 구역 : 3 + k 체인의 k번째 : k 재구성 삽입 빈번 → 긴 체인(성능 저하) 화일 관리자의 주기적 재구성 순차적 완독 재기록

▶ 삭제 동적 삭제 삭제 표시 물리적 제거 ① 오버플로우 구역 - 체인 조정 ② 체인의 첫 레코드 - 트랙 인덱스 수정 ③ 기본 구역 큰 키값의 레코드는 한자리씩 이동 오버플로우 레코드가 있는 경우 체인의 첫 레코드가 기본구역 이동 ②의 작업 삭제 표시 주기적인 쓰레기 수집(garbage collection)

 ISAM 화일 IBM의 ISAM(Indexed Sequential Access Method) 특정 하드웨어의 특성에 맞도록 설계 장점 접근 시간 단축 기억 공간의 효율성 단점 기억장치의 유형 변경 또는 화일의 복사시 문제

(1) ISAM 화일의 구조 기본 데이타 구역 인덱스 구역 독립된 오버플로우 구역 데이타 레코드 저장 실린더 화일의 첫 실린더 트랙 0 : 트랙 인덱스 (기본구역과 오버플로우구역에 대한 포인터) 트랙 1~(n-1) : 고정 크기 레코드 (오름차순) 트랙 n : 실린더 오버플로우 구역 인덱스 구역 화일의 첫 실린더 실린더 인덱스 : 실린더를 지시 독립된 오버플로우 구역 화일의 마지막 실린더 실린더 오버플로우 구역의 오버플로우

▶ 실린더의 트랙 할당

▶ ISAM 화일의 실린더 할당

▶ 실린더 오버플로우 구역 기본 구역의 오버플로우 트랙 오버플로우 인덱스 이점 단점 오버플로우 레코드를 원래 트랙과 연결 기본구역과 동일 실린더 오버플로우 구역 접근을 위한 별도의 탐구가 필요 없음 독립 오버플로우 구역 별도의 탐구 단점 모든 실린더에 동일 크기 → 사용의 불균형

▶ 기본 데이타 구역 물리적 순서 유지 실린더 i의 레코드 키값 < 실린더 i+1의 임의의 키값 순차 접근 지원

(2) ISAM 화일의 인덱스 구조 다단계 인덱스 구조 트랙 인덱스 실린더 인덱스 마스터 인덱스

▶ 트랙 인덱스 탐구 시간의 최소화 - 각 실린더의 트랙 0 인덱스 엔트리 정상 엔트리 (트랙의 최대키값, 트랙번호) 오버플로우 엔트리 (해당 트랙의 오버플로우 레코드의 최대키값, 최소키값을 가진 레코드 주소 쌍) NK1  OK1 < NK2  OK2 < ••• < NKn  OKn NKi : 트랙 i의 정상 엔트리 키값 OKi : 트랙 i의 오버플로우 엔트리 키값 ★ NKi = OKi : 오버플로우 레코드 없음

▶ 실린더 인덱스 기본 데이타 구역의 실린더에 대한 엔트리 (실린더중 최대키값, 실린더의 트랙 인덱스 주소)

▶ 마스터 인덱스 실린더 인덱스 - 여러 트랙으로 구성 마스터 인덱스 엔트리 (실린더 인덱스의 각 트랙에서 최대키값, 트랙의 주소) 한단계 또는 다단계 : 여러 트랙 최상위 단계 마스터 인덱스 : 한 트랙 정도 크기

▶ ISAM 파일에서 키값이 144인 레코드 검색

(3) ISAM 화일에서의 삽입과 삭제 검색과 동일 방법으로 삽입해야될 기본 데이타 트랙 삽입 (a) 초기 화일 독립된 오버플로우 구역을 이용한 삽입 (a) 초기 화일

▶ ISAM 화일에서의 삽입 (b) ARK를 삽입 (c) BED, BEG, BEN, BET, ARL을 차례로 삽입

▶ ISAM 화일에서의 삽입 (d) ACE, BAR, BAT, AMY를 차례로 삽입

▶ ISAM 화일에서의 재구성 및 삭제 재구성 삭제 독립된 오버플로우 구역의 사용 → 접근 시간 지연 오버플로우 체인 길이 증가 주기적 재구성 모든 레코드 → 기본 데이타 트랙으로 저장 삭제 삭제 표시 아주 높은 키값 삭제 필드 또는 플래그 삽입시 재이용

 동적 인덱스 방법 블럭에 기초한 구현 : 동적인 구현 인덱스 화일 데이타 화일 인덱스 블럭의 트리구조 다중 레벨 인덱싱 (인덱스의 인덱스 화일) 최고 레벨 인덱스(마스터 인덱스)는 주기억장치에 적합 인덱스 엔트리 = <키 애트리뷰트 값, 포인터(데이타 블럭 또는 인덱스 블록)> 데이타 화일 순차적인 구조 - 데이타 블럭들 블럭들 사이에 자유공간이 분포 나중의 삽입을 위해 데이타 블럭들은 논리적인 순서로 연결 데이타 블럭 체인

▶ 동적 인덱스 방법의 인덱스된 순차 파일 직접 검색 검색 레코드의 키 = '문봉기'

▶ 삽입 데이타 블럭 분할 인덱스 블럭의 분할을 야기할 수 있음 (가정) 데이타 블럭 : 5 레코드 인덱스 블럭 : 4개의 <키값, 포인터> 쌍 자유공간 또는 패딩(padding) 존재

▶ 삽입 예 ① INSERT 나동성 INSERT 강인회 데이타 블럭 1에 삽입

▶ 삽입 예 ② INSERT 나문수 데이타 블럭 1의 분열과 인덱스 블럭의 변화

▶ 삽입 예 ③ INSERT 김성복 INSERT 권성길 INSERT 고재현

 VSAM 화일 VSAM : Virtual Storage Access Method 동적 인덱스 방법 VSAM 화일의 구조 제어 구간(control interval) 데이타 레코드 저장 제어 구역(control area) 제어 구간의 모임 순차셑(sequence set) 제어 구역에 대한 인덱스 저장 인덱스 셑(index set) 순차셑의 상위 인덱스

(1) VSAM 화일 구조

▶ 제어 구간 구조 데이타 블럭 자유 공간 레코드 정의 필드(RDF: Record Definition Field) 키값에 따른 물리적 순차 자유 공간 레코드 정의 필드(RDF: Record Definition Field) RBA (Relative Byte Address) 레코드의 바이트 수 제어구간 정의필드(CIDF: Control Interval Definition Field) 제어 구간 내의 자유 공간 바이트 수 자유 공간의 위치

▶ 제어 구간 양식과 삽입, 삭제 VSAM화일의 제어구간 양식 제어 구간에 대한 삽입, 삭제 저장된 레코드들 사이에 빈공간이 없도록 함

▶ 제어 구역 일정 수의 제어 구간의 그룹 일정 수의 트랙으로 구성 순차셑 인덱스 엔트리=(제어 구간의 최대키값, 주소) 제어 구간의 물리적 순서는 필요 없음 순차셑에 의해 유지(체인으로 연결)

▶ 인덱스셑 인덱스 블럭으로 구성된 트리 구조 엔트리= (차하위 레벨의 인덱스 블럭의 최대키값, 인덱스 블럭에 대한 주소) 인덱스셑의 최하위 단계 : 순차셑 지시 키값의 크기순으로 저장

(2) VSAM 화일에서의 삽입과 삭제 키 순차 화일(key-sequenced file) 지원 레코드들을 키값순으로 저장 제어 구간내의 물리적 순서 제어 구간들의 정렬 : 순차셑 순차셑의 정렬 : 인덱스셑 분산 자유 공간 (distributed free space) 제어 구간 내의 자유 공간 키 순차 VSAM : 각 제어 구역 끝의 빈 제어 구간

▶ 키 순차 VSAM 화일 순차적 접근 직접 접근 화일의 첫 제어 구간의 RBA를 식별위해 인덱스 탐색 연결된 순차셑 체인을 따라가며 각 제어 구간 접근 직접 접근 인덱스셑 -> 순차셑 (B+-트리와 유사)

▶ 키 순차 VSAM 화일 예 제어 구역 2

▶ 레코드의 삽입 레코드의 이동 (∵ 제어 구간내의 물리적 순서 유지) 자유 공간의 부족 → 제어 구간의 분열(split) 만원이 된 제어 구간 제어 구역 끝의 빈 제어 구간으로 레코드 절반 이동 순차셑 엔트리로 제어구간 순서 유지 제어 구역 분열 만원이 된 제어 구역 화일 끝의 빈 제어구역으로 반 이동 순차셑 고정으로 문서 유지

▶ 키가 52인 레코드가 삽입된 뒤의 제어 구역

▶ 키가 54인 레코드가 삽입된 뒤의 제어 구역 키가 54인 레코드가 삽입되어 제어 구간 분열이 일어난 뒤의 제어 구역 1

▶ 삽입과 삭제 물리적 삭제 → 레코드 이동 수록 순차 화일 (entry-sequential file) 순차셑 엔트리 변경 → 인덱스 셑 수록 순차 화일 (entry-sequential file) 레코드 순서: 화일에 수록되는 순서 인덱스 유지 안 함 RBA 제공: 사용자가 인덱스 구축 가능 상대 화일 (Relative File) 레코드의 제어 구간 저장시 상대 레코드 번호에 따라 저장 상대 레코드 번호 : 사용자가 정의 인덱스 없음 레코드길이 일정 : 제어구간의 레코드수 동일

▶ 삽입과 삭제 크기가 8인 상대 레코드 VSAM 화일의 제어 구간 구조 VSAM 의 장점 기본데이타구역과 오버플로우구역의 구분 없음 레코드 삭제 → 빈공간도 자동적으로 자유 공간에 통합 B+-트리 구조를 인덱스로 이용 제어 구간의 분열 제어 구간에서 각 레코드의 제어 정보 유지 가변 길이 레코드 수용

 인덱스된 순차 화일의 설계 기본적인 고려사항 ① 필드의 배치 ② 키 필드 - 고정 vs 가변 길이 레코드 - 인덱스와 데이타 화일에 같은 키 ③ 예상되는 레코드 삽입 - 자유공간 할당 (약 40%) ④ 화일을 구현하기 위한 방식

▶ 설계 결정을 위한 매개 변수 정적 인덱스 방법 ① 인덱스 구역의 크기 ② 인덱스의 레벨 ③ 기본 데이타 구역의 크기 정적 인덱스 방법  ① 인덱스 구역의 크기 ② 인덱스의 레벨 ③ 기본 데이타 구역의 크기 ④ 오버플로우 데이타 구역의 크기 ⑤ 기본 데이타 구역의 레코드 블럭킹 동적 인덱스 방법 ① 데이타 블럭의 크기 ② 인덱스 블럭의 크기 ③ 초기 인덱스 레벨 수 ④ 최대 인덱스 레벨 ★ 시스템 본래의 블럭 크기, 예상 레코드수, 화일의 용도 등에 따라 결정

▶ 인덱스 설계 인덱스 참조 능력 y =  블럭의 크기 / 인덱스 엔트리 크기  =  B / (V+P)  인덱스 분기율(fanout) y =  블럭의 크기 / 인덱스 엔트리 크기  =  B / (V+P)  인덱스 레벨 vs 인덱스 분기율

(1) 정적 인덱스의 설계 2,000 바이트 레코드 100만개 디스크 팩 : 200 실린더 실린더 : 19 트랙, 140,000 바이트/트랙 트랙 : 최대 70 레코드 55 레코드만 적재 마지막 2트랙 : 자유공간 트랙 0 : 트랙 인덱스

▶ 초기 적재 실린더 16 트랙  55 레코드 = 880 레코드/실린더 실린더 수 =  100만 레코드/880  실린더 수 =  100만 레코드/880  = 1,137 실린더 = 6 디스크 팩 트랙 인덱스 V = 14 바이트 P = 6 바이트 18 트랙  20 바이트  2 = 720 바이트 └ (정상, 오버플로우) 엔트리 실린더 인덱스 디스크 팩 별로 200 실린더씩 그룹 6  200  20 = 24,000 바이트 마스터 인덱스 6 디스크 팩에 대한 6 인덱스 엔트리

▶ 정적 인덱스 설계 예

(2) 동적 인덱스 설계 하드웨어 독립적인 인덱스의 설계 B : 2000 바이트 ( 블럭크기 ) R : 200 바이트 ( 레코드 크기 ) V : 14 바이트 ( 인덱스 값 크기 ) P : 6 바이트 ( 포인터 크기 ) 100만 레코드 : 화일 B 2000 ------ = ------- = 10 : 블럭당 레코드의 수 R 200 106 ------- = 105 : 화일에 필요한 블럭의 수 10 || 첫단계의 인덱스 엔트리 수

▶ 동적 인덱스 설계 계산 B 2000 y = ---------- = ---------- = 100 : 분기율 V + P 20 블럭당 인덱스 엔트리들의 최대 수 ┛ 105 ----- = 103 : 첫째 단계의 인덱스를 위해 필요한 블럭의 수 100 ⇒ 1000  20 = 20,000 : 인덱스의 바이트 103 ----- = 10 : 둘째 단계의 인덱스를 위해 필요한 블럭의 수 ⇒ 10  20 = 200 : 인덱스의 바이트 (주기억장치에 저장)  10/100  = 1 : 최고단계의 인덱스 블럭

▶ 동적 인덱스 설계 예