4. 순차 화일.

Slides:



Advertisements
Similar presentations
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
Advertisements

컴퓨터와 인터넷.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
제14장 동적 메모리.
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
01 화일의 기본 개념 02 화일 저장장치 03 화일 입출력 제어 04 순차화일 05 화일의 정렬 06 화일의 합병
연결리스트(linked list).
제 9 장 구조체와 공용체.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
자료 구조: Chapter 3 (2)구조체, 포인터
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
P150 문제를 프로그래밍 할 것 Source file (헤더파일포함), 실행화면 (학번_이름_1.txt)
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
11.텍스트를 위한 화일.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
1. 화일의 기본개념.
7장 인덱스된 순차 화일.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
TCP/IP Socket Programming…
11장. 1차원 배열.
DBMS 기능 DBMS 구성 요소 물리적 저장 구조
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
인터넷응용프로그래밍 JavaScript(Intro).
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
24장. 파일 입출력.
01 화일의 기본 개념 02 화일 저장장치 03 화일 입출력 제어 04 순차화일 05 화일의 정렬 06 화일의 합병
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
USN(Ubiquitous Sensor Network)
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
Fucntion 요약.
CHAP 21. 전화, SMS, 주소록.
9.다중 키 화일.
Canary value 스택 가드(Stack Guard).
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
데이터 동적 할당 Collection class.
단축키 기능 1. 단축키 기능 설명 Alt + R 조회 S 저장 I 삽입 A 추가 D 삭제 P 출력 Q 닫기
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
9장 파일시스템(File System) 박동근.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
05. General Linear List – Homework
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
Chapter 10 데이터 검색1.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
발표자 : 이지연 Programming Systems Lab.
구조체(struct)와 공용체(union)
Summary of Pointers and Arrays
9 브라우저 객체 모델.
Numerical Analysis Programming using NRs
Chapter 12 파일 입출력.
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제 4 장 Record.
 6장. SQL 쿼리.
9장 파일 시스템 이성연.
Docker Study 6~7.
7 생성자 함수.
6 객체.
타이머를 시작하려면 슬라이드 쇼 메뉴에서 쇼 보기를 클릭하십시오.
20 XMLHttpRequest.
Presentation transcript:

4. 순차 화일

 순차 화일(sequential file) 정의 레코드들을 조직하는 가장 기본적인 방법 화일 생성시 레코드들을 연속적으로 저장하기 때문에 레코드들을 접근할 때도 저장 순서에 따라 연속적으로 접근하는 것이 효율적 스트림 화일(stream file) 레코드 저장 기준에 의한 종류 입력 순차 화일(entry-sequenced file) 레코드가 입력되는 순서대로 저장, heap file, pile file 키 순차 화일(key-sequenced file) 레코드의 특정 필드 값 순서에 따라 저장

 스트림 화일(stream file) 특성 종류 화일 접근 모드(access mode) 데이타가 하나의 연속된 바이트 스트림(byte stream)으로 구성 연속적인 판독 연산을 통해 레코드가 화일에 저장되어 있는 순서에 따라 데이타를 접근 종류 순차 접근 스트림 화일(sequential access stream file) 순차 접근만 허용 임의 접근 스트림 화일(random access stream file) 임의 접근이 허용 화일 접근 모드(access mode) 화일 개방 시 수행하려는 연산을 명세: 판독(read), 기록(write), 갱신(read/write), 첨가(append) 등

▶ 순차 접근 스트림 화일 판독(read) 기록(write) 판독 연산 해당 위치에서 시작하여 해당 바이트를 전송하고, 판독 포인터를 스트림 화일의 다음 바이트의 시작 위치로 변경. n번째 바이트를 판독하기 위해서는 반드시 (n-1)번째 바이트를 판독해야 함. 기록(write) 화일을 기록(write) 모드로 열면 기록 포인터는 화일의 첫 번째 바이트가 기록될 위치를 가리킴. 기록 연산 해당 위치에서 시작하여 해당 바이트 값을 기록하고, 기록 포인터를 다음 바이트가 기록될 위치로 변경. n번째 바이트를 기록하기 위해서는 반드시 (n-1)번 기록 연산을 수행해야 함.

▶ 순차 접근 스트림 화일 C 언어를 이용해 streamfile이라는 스트림 화일을 생성 함수 호출문 fopen(filename, mode)은 화일을 개방하거나 화일이 없으면 생성해서 화일 포인터(file pointer)를 반환 화일이 개방되면 화일 포인터가 화일 이름 대신 사용됨 streamfp = fopen(“streamfile”, “w”); 화일이 공백인 경우에는 공백 스트림 화일을 생성하고 개방 streamfp는 화일 포인터 mode에는 “r”(read), “w”(write), “a”(append) 등 화살표는 판독/기록 위치를 표현하는 인덱스 ? index : 0 1 2 3 4 5 6 streamfile

▶ 순차 접근 스트림 화일 함수 호출문 fputc()로 스트림 화일에 한 문자씩 기록 fputc(ch,streamfp)를 연속적으로 사용하여 문자 S, M, I, T, H 값을 입력하면 다음과 같은 streamfile이 생성. ch는 문자에 대한 정수 값 streamfp는 streamfile에 대한 화일 포인터 M I T H ? S index : 0 1 2 3 4 5 6 streamfile

▶ 순차 접근 스트림 화일 함수 호출문 fclose(filepointer)로 화일을 폐쇄 fclose(streamfp); 화일 포인터 streamfp가 지시하는 화일 streamfile을 폐쇄. end-of-file(♦) 표시가 화일 끝에 첨가 연속적으로 화일을 접근하고, 화일에 있는 모든 바이트를 처리하는 경우에 유용 M I T H ◆ S index : 0 1 2 3 4 5 streamfile

▶ 임의 접근 스트림 화일 화일의 시작, 끝, 현재의 판독/기록 위치로부터 오프셋(offset) 값을 이용하여 이전의 바이트를 접근하지 않고 직접 접근 판독/기록 위치 인덱스를 이동 임의 접근을 위한 함수 fseek(filepointer, offset, WhereFrom) 화일 스트림에서 판독/기록 위치 인덱스를 변경하는 데 사용 ftell(filepointer) 화일에서 현재의 판독/기록 위치 인덱스 값을 알기 위해 사용

▶ 임의 접근 스트림 화일 “r”(판독) 모드로 개방한 스트림 화일 streamfp = fopen(“streamfile”, “r”); 화일이 개방되면 판독 위치 인덱스는 첫 번째 바이트를 가리키게 설정 ftell(streamfp) 현재의 판독/기록 인덱스 값을 반환 현재 streamfile의 판독 /기록 인덱스 값이 0이므로, 0이 반환됨. M I T H ◆ S index : 0 1 2 3 4 5 streamfile

▶ 임의 접근 스트림 화일 fseek(streamfp, 2, SEEK_SET); ftell(streamfp) M I T H ◆ 시작 위치(SEEK_SET)로부터 판독 인덱스를 2바이트(offset)만큼 이동시킴. SEEK_SET:시작 위치 SEEK_END:끝 위치 SEEK_CUR:현재 위치 ftell(streamfp) 현재 판독 인덱스 값이 2이므로, 2가 반환됨. M I T H ◆ S index : 0 1 2 3 4 5 streamfile

 입력 순차 화일(entry-sequenced file) 히프 화일(heap file), 파일 화일(pile file)이라고도 함 데이타가 입력되는 순서대로 저장된 화일 레코드에 대한 분석, 분류, 표준화 과정을 거치지 않음 필드의 순서, 길이 등에 제한 없음 레코드의 길이, 타입이 일정하지 않음 레코드는 <필드, 값> 쌍들로 구성 5 개의 레코드 예

 입력 순차 화일 삽입 작업 검색 작업 삽입되는 레코드는 화일의 끝에 첨가 주어진 탐색 매개변수(search parameter)의 값과 이에 대응하는 화일 레코드 필드 값을 화일 시작부터 비교하여 레코드를 선정하고, 선정된 레코드에서 원하는 필드 값을 검색 키 필드(key field) : 레코드 선정 시 탐색 매개변수와 대응되는 데이타 필드 탐색 키 필드(search key field) : 탐색 매개변수의 필드

 입력 순차 화일 삭제, 변경 작업 입력 순차 화일 응용 예 새로운 순차 화일을 동시에 생성하면서 수행 삭제작업 변경 작업 삭제 대상 레코드를 탐색하면서 기존의 레코드를 새로운 화일로 출력 해당 레코드 선정 시 나머지 레코드들을 그대로 새로운 화일로 출력 변경 작업 해당 레코드 선정 시 레코드의 값을 변경하고 새로운 화일에 출력 나머지 레코드들은 그대로 새로운 화일에 출력 입력 순차 화일 응용 예 데이타를 처리하기 전에 임시로 수집만 해 놓는 경우 화일 조직을 결정하지 못한 경우 화일의 용도가 결정되지 않은 경우 데이타 은행(data bank) 화일 조직의 변경 과정에서 중간 단계의 화일 형태로 이용

 키 순차 화일(key-sequenced file) 저장 장치에서의 레코드 순서와 레코드 리스트의 논리적 순서가 같은 구조의 화일 화일 내에서의 레코드는 키 필드 값에 따라 정렬 모든 레코드는 똑같은 순서의 데이타 필드로 구성 데이타 필드는 화일 설명자에 한 번만 저장하면 됨 학번 1243 1257 1332 1334 1367 1440 이름 홍길동 김철수 박영희 이기수 정미영 최미숙 나이 10 20 19 21 본적 서울 경기 충청 전라 경상 강원 성 남 여

 키 순차 화일 정렬된 화일(sorted file) : 키 순차 화일처럼 레코드들이 특정 키 필드 값에 따라 정렬된 화일 정렬 키(sort key) : 정렬에 사용된 값의 필드 오름차순(ascending) / 내림차순(descending) 정렬 오름차순 정렬 if (레코드 i의 키 값 ≤ 레코드 j의 키 값) then 레코드 i는 레코드 j 앞에 위치;

 키 순차 화일 순차 화일의 정렬 순서 순차 화일의 특징 응용에 따라 결정 전화번호부: 가입자 이름 순 또는 상호 순 하나의 순차 화일은 두 개의 상이한 정렬 순서를 만족시킬 수 없음. 여러 가지 상이한 정렬 순서의 화일이 필요한 경우에는 임시 화일을 만들어 사용했다가 용도가 끝나면 화일을 삭제 순차 화일의 특징 대화식(interactive) 처리 보다는 일괄(batch) 처리에 유리 장점 : 데이타의 순차 접근에서는 차위 레코드의 접근이 신속 데이타의 접근 형태를 고려한 뒤 그 접근 방법에 맞는 화일 구조를 선정

 순차 화일의 설계 설계 시 고려 사항 1. 레코드 내의 필드 배치는 어떻게 할 것인가? 데이타의 필드 활용도에 따라 활동 화일(active file)과 비활동 화일(inactive file)로 분리하여 저장 활동 화일의 크기를 감소시켜 데이타 화일에 대한 처리 시간 감소 활동과 비활동을 필드 타입이 아닌 레코드 어커런스 활용에 따라 구분 가능 고정 길이(fixed length)와 가변 길이(variable length) 고정 길이 레코드: 사용하지 않는 공간 낭비 가변 길이 레코드: 각 레코드 길이를 적절한 제어 정보와 함께 저장 레코드 제어 정보는 각 레코드 앞 부분에 있는 시스템용 필드에 저장됨

 순차 화일의 설계 C 프로그램 예 typedef struct course_type /* 과목 데이타 타입 선언 */ { char dept[4]; char course_name[20]; char prof_ID[7]; int credit; }; typedef struct STUDENT /* 학생 레코드 구조 선언 */ { int st_num; struct name_type { char last[20]; char midinit; char first[20]; } name; struct address_type { char street[25]; char city[10]; char state[2]; int zip; } address; int no_of_courses; course_type course[10]; /* 한 학생이 최대 10강좌 수강 가능 */ }

 순차 화일의 설계 2. 키 필드는 어느 것으로 할 것인가? 3. 적정 블로킹 인수는 얼마이어야 하는가? 응용 요건에 따라 선정 키 값은 순차 화일에서 레코드 접근 순서를 결정 트랜잭션 화일은 마스터 화일과 같은 키 보고서 화일은 출력 형식(순서)에 따라 레코드가 정렬될 수 있게 결정 3. 적정 블로킹 인수는 얼마이어야 하는가? 일반적으로 가능한 한 블록을 크게 하는 것이 바람직함 버퍼의 크기와 운영 체제가 지원하는 페이지 크기에 의해 제한 순차 화일의 디스크 저장 섹터 주소 기법 사용 시 블록 크기를 섹터 크기와 같게 실린더 주소 기법 사용 시 블록 크기를 트랙 크기와 같게

 순차 화일의 생성 화일 생성 편집 데이타 저장 장치에 레코드들을 순서대로 입력하여 생성 키 순차 화일의 갱신(삽입, 삭제, 변경) 연산은 트랜잭션 화일(transaction file)을 이용 트랜잭션 화일은 데이타 수집, 레코드 형식으로 변환, 레코드 편집, 정렬 과정을 거쳐 생성 편집 트랜잭션 화일 생성 과정에서 입력되는 데이타 값에 오류가 있는지 검사하는 과정 검사 내용 입력된 값이 올바른 범위 안에 있는가 필수적인 필드 값 존재 여부, 필드 타입 적절성, 필드 값 유효성, 관련 필드 값 유무 합계의 일치, 계수 숫자 타입 필드의 앞자리 공백은 0으로 채움, 영숫자나 텍스트를 적절한 단축 코드로 채움, 누락된 데이타 값 삽입

 순차 화일의 생성 편집과 정렬 작업 특정 응용 프로그램이나 범용 유틸리티 프로그램을 이용하여 수행 1. 한 저장 장치에서 다른 저장 장치로 순차 화일을 복사 2. 같은 저장 장치에서 하나의 순차 화일을 또 다른 순차 화일로 복사 3. 레코드에 대한 간단한 편집 수행 4. 레코드에 대해 간단한 재구성 수행 5. 주어진 필드 값에 따라 오름차순/내림차순으로 화일을 정렬 6. 여러 개의 정렬된 화일을 오름차순/내림차순으로 하나의 정렬된 화일로 합병

 순차 화일의 갱신 순차 화일에서의 검색 순차 화일에 대한 질의 레코드의 저장 순서에 따라 연속적으로 검색 레코드 검색 순서에 따라 레코드 입력 순서를 결정 순차 화일에 대한 질의 화일 구조상 연속적이고 레코드 전체에 대한 접근이 필요한 검색의 경우에 효율적 사원 봉급의 평균과 표준 편차는 얼마인가? 네 개의 의료 보험에 각각 몇 명의 사원들이 가입되어 있는가? 화일의 질의 적중 비율(inquiry hit ratio) 질의 적중 비율이 높으면 입력 순차 화일 구조가 적합 = 질의 응답을 위해 접근해야 되는 레코드 수 화일 전체의 레코드 수

▶ 키 순차 화일의 갱신 키 순차 화일에 대한 레코드 삽입 키 순차 화일에서의 레코드 삭제 키 순차 화일에서의 레코드 수정 키 값에 따라 오름차순/내림차순을 유지해야 하므로 복잡 두 기존 레코드 사이에 삽입 위치를 검색 이 삽입 점 앞에 있는 모든 레코드들은 새로운 화일로 복사 새로운 레코드를 삽입 삽입 점 뒤에 있는 나머지 레코드들을 새로운 화일로 복사 키 순차 화일에서의 레코드 삭제 삽입과 거의 같은 단계를 거친다. 삭제할 레코드를 제외하고 나머지 레코드만 새로운 화일로 복사 키 순차 화일에서의 레코드 수정 수정할 레코드 앞의 모든 레코드를 새로운 화일로 복사 원하는 레코드를 수정해서 새로운 화일에 삽입 나머지 레코드들을 새로운 화일로 복사 직접 접근 저장 장치에 저장된 화일 순차 화일의 임의 접근이 가능하므로, 레코드를 수정해서 기존 레코드 위치에 수정된 레코드를 기록

▶ 순차 마스터 화일의 갱신 갱신 트랜잭션을 트랜잭션 화일에 모아서 일괄 처리 트랜잭션 화일의 트랜잭션 레코드 레코드 갱신 마스터 화일과 똑같은 키로 정렬 갱신 프로그램에 의해 마스터 화일에 적용 트랜잭션 레코드는 대응하는 마스터 레코드의 키 값과 갱신 타입을 나타내는 갱신코드(update code)를 포함 레코드 갱신 새 레코드의 삽입(I) 기존 레코드의 삭제(D) 기존 레코드의 수정(C) 갱신을 위한 트랜잭션 레코드

▶ 순차 마스터 화일의 갱신 트랜잭션의 삽입 트랜잭션의 삭제 트랜잭션의 수정 화일 갱신(삽입, 삭제, 수정)시 고려 사항 레코드 키 값은 필수 기타 데이타 필드 값은 선택적(나중에 삽입 가능) 트랜잭션의 삭제 보통 해당 마스터 레코드의 키 값만을 명세 트랜잭션의 수정 레코드 키 값과 수정될 필드들과 해당 값만 명세 일반적으로 수정하지 않을 필드는 공백으로 남겨 놓는다. 화일 갱신(삽입, 삭제, 수정)시 고려 사항 이미 저장되어 있는 레코드의 삽입(키 값의 중복), 화일에 없는 레코드 삭제나 수정 등의 오류 갱신 프로그램은 오류 보고서를 생성하여 수행하지 못한 모든 트랜잭션의 내용과 이유를 출력

일련의 트랜잭션에 의해 영향을 받는 화일의 레코드 수 ▶ 마스터 화일의 갱신 빈도 화일의 갱신 빈도를 결정하는 요인 데이타 내용의 변경율 마스터 화일의 크기 마스터 화일에 대한 최신 데이타 요구 화일 활동 비율 화일 활동 비율(file activity ratio) = 일련의 트랜잭션에 의해 영향을 받는 화일의 레코드 수 화일의 총 레코드 수

▶ 순차 화일의 갱신 작업 마스터 화일 / 신마스터 화일 화일 활동 비율이 낮을수록 신마스터 화일로 단순히 복사하는 레코드 수가 증가 갱신 작업 종료 시 실행 과정에서 일어난 여러 가지 오류와 갱신 요약을 보고서로 생성

▶ 키 순차 마스터 화일의 갱신 알고리즘 가정 갱신 알고리즘 트랜잭션 화일과 순차 마스터 화일은 똑같은 키로 오름차순으로 정렬 각 화일의 레코드 키 값은 유일 갱신 알고리즘 트랜잭션 화일 레코드를 마스터 화일 레코드와 비교 레코드 키 값이 두 화일에서 일치하면 갱신 코드에 따라 레코드를 수정 또는 삭제 트랜잭션 레코드 키 값이 마스터 화일의 어떤 레코드의 것과도 일치하지 않으면, 새로 삽입할 레코드로 판정하고 마스터 화일에 삽입

▶ 키 순차 마스터 화일의 갱신 알고리즘 오류 처리 transKey와 masterKey의 비교 마스터 화일에 있는 레코드 키 값을 가진 레코드를 삽입 마스터 화일에 없는 레코드 키 값을 가진 레코드를 삭제 마스터 화일에 없는 레코드 키 값을 가진 레코드를 수정 transKey와 masterKey의 비교 갱신 알고리즘의 핵심은 transKey와 masterKey의 비교작업 transKey : 트랜잭션 화일의 레코드 키 masterKey : 마스터 화일의 레코드 키 가정 : 화일의 끝을 표시하는 EOF는 어떤 레코드 키 값보다 크다.

▶ 키 순차 마스터 화일의 갱신 알고리즘 masterKey < transKey masterKey = transKey 마스터 레코드에 적용할 트랜잭션 레코드가 없는 경우 마스터 레코드를 새로운 마스터 화일로 복사만 하고, 다음 마스터 레코드를 읽어 온다. masterKey = transKey 트랜잭션 레코드의 갱신코드에 따라 적절한 연산을 수행 수정(C)인 경우 : 레코드를 변경해서 새로운 마스터 화일에 삽입하고, 다음 트랜잭션 레코드를 읽어 온다. 삭제(D)인 경우 : 마스터 레코드는 삭제, 즉 무시된다. 삽입(I)인 경우 : 마스터 화일에 이미 같은 키 값을 가진 레코드가 있으므로 중복 레코드라는 오류 메시지를 출력하고 다음 트랜잭션 레코드를 읽어 온다.

▶ 키 순차 마스터 화일의 갱신 알고리즘 하나의 마스터 레코드에 적용할 트랜잭션이 다수인 경우 3. masterKey > transKey 트랜잭션 레코드 키와 일치하는 마스터 레코드가 없는 경우 갱신 코드가 삽입(I)인 경우: 레코드를 구성해서 새로운 마스터 화일에 삽입하고 다음 트랜잭션 레코드를 처리 그 이외 갱신 코드가 수정(C)이거나 삭제(D)인 경우: 적절한 오류 메시지를 출력하고, 다음 트랜잭션 레코드를 처리 하나의 마스터 레코드에 적용할 트랜잭션이 다수인 경우 트랜잭션 레코드들을 발생 시간 순서에 따라 적용 트랜잭션 레코드들을 1차 키 transKey, 2차 키 트랜잭션 발생 시간으로 정렬한 뒤에 갱신 작업을 시작 갱신된 레코드를 새로운 마스터 화일에 출력하기 전에 관련 트랜잭션들이 모두 처리되었는지 확인

 순차 화일과 임의 접근 순차 화일의 저장 임의 갱신(random update) 순차 접근 저장장치(테이프) 임의 접근 저장장치(디스크)에도 저장 가능 실린더 단위로 저장하면 탐구 시간을 절약 임의 갱신(random update) 갱신 과정 해당 마스터 레코드를 판독 마스터 레코드에 트랜잭션 적용 갱신된 마스터 레코드를 원래의 위치에 재기록 효율적 : 해당 레코드만 읽고, 원 위치에 재기록 레코드 삭제 : 물리적인 제거보다 해당 레코드 위에 “deleted” 플래그를 표시하여 논리적 삭제로 대신하는 것이 효율적