4. 순차화일 DBLAB, SNU v 순차화일 (sequential file) u 정의 레코드들을조직하는가장기본적인방법 화일생성시레코드들을연속적으로저장하기때문에레코드들을접근할때도저장순서에따라연속적으로접근하는것이효율적 스트림화일 (stream file) u 레코드저장기준

Similar documents
7장인덱스된 순차화일 DBLAB, SNU v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬

Discrete Mathematics

Microsoft PowerPoint File Structures.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

chap 5: Trees

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap11.ppt [호환 모드]

5장 SQL 언어 Part II

02장.배열과 클래스

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - chap06-2pointer.ppt

슬라이드 1

슬라이드 1

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

11장 포인터

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

11. 텍스트를위한 화일 DBLAB, SNU 텍스트를위한화일 u 텍스트데이타로구성된문서 (documents) 나텍스트필드 (text field) 를포함하고있는레코드검색에이용할수있는화일 텍스트 (text): 긴문자열로구성된데이타 ( 예 ) 학생의자기소개, 신문기사, 사전

PowerPoint 프레젠테이션

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

설계란 무엇인가?

Chapter 4. LISTS

Microsoft PowerPoint - chap11-포인터의활용.pptx

금오공대 컴퓨터공학전공 강의자료

BMP 파일 처리

슬라이드 1

Lab 3. 실습문제 (Single linked list)_해답.hwp

2007_2_project4

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

C 언어 강의노트

adfasdfasfdasfasfadf

제1장 Unix란 무엇인가?

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

chap7.key

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft PowerPoint - ch07 - 포인터 pm0415

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Microsoft Word - FunctionCall

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

KNK_C_05_Pointers_Arrays_structures_summary_v02

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

API 매뉴얼

11장 포인터

Microsoft PowerPoint - C++ 5 .pptx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Microsoft PowerPoint - 제11강 파일 처리

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

제12장 파일 입출력

PowerPoint Presentation

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

PowerPoint Template

Chapter 4. LISTS

PowerPoint 프레젠테이션

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint Presentation

C# Programming Guide - Types

JVM 메모리구조

Microsoft PowerPoint - lec07_tree [호환 모드]

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

2002년 2학기 자료구조

슬라이드 1

chap 5: Trees

슬라이드 1

Microsoft PowerPoint - 10Àå.ppt

PowerPoint Presentation

강의 개요

14장.탐색

설계란 무엇인가?

Chapter 4. LISTS

Microsoft PowerPoint - chap11-1.ppt [호환 모드]

컴파일러

Microsoft PowerPoint 웹 연동 기술.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

Microsoft PowerPoint - 알고리즘_4주차_1차시.pptx

PowerPoint Presentation

제 11 장 다원 탐색 트리

06장.리스트

쉽게 풀어쓴 C 프로그래밍

The Pocket Guide to TCP/IP Sockets: C Version

18강.hwp

PowerPoint Presentation

금오공대 컴퓨터공학전공 강의자료

디지털영상처리3

Microsoft PowerPoint - 제11장 포인터

슬라이드 1

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

Frama-C/JESSIS 사용법 소개

슬라이드 1

Algorithms

본 강의에 들어가기 전

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - [2009] 02.pptx

Transcription:

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

v 스트림화일 (stream file) u 특성 데이타가하나의연속된바이트스트림 (byte stream) 으로구성 연속적인판독연산을통해레코드가화일에저장되어있는순서에따라데이타를접근 u 종류 순차접근스트림화일 (sequential access stream file) 순차접근만허용 임의접근스트림화일 (random access stream file) 임의접근이허용 u 화일접근모드 (access mode) 화일개방시수행하려는연산을명세 : 판독 (read), 기록 (write), 갱신 (read/write), 첨가 (append) 등 DBLAB, SNU 3 순차접근스트림화일 u 판독 (read) 스트림화일을판독 (read) 모드로열면판독포인터는화일의첫번째바이트를가리킴. 판독연산 해당위치에서시작하여해당바이트를전송하고, 판독포인터를스트림화일의다음바이트의시작위치로변경. n번째바이트를판독하기위해서는반드시 (n-1) 번째바이트를판독해야함. u 기록 (write) 화일을기록 (write) 모드로열면기록포인터는화일의첫번째바이트가기록될위치를가리킴. 기록연산 해당위치에서시작하여해당바이트값을기록하고, 기록포인터를다음바이트가기록될위치로변경. n번째바이트를기록하기위해서는반드시 (n-1) 번기록연산을수행해야함. DBLAB, SNU 4

순차접근스트림화일 u C 언어를이용해 streamfile이라는스트림화일을생성 함수호출문 fopen(filename, mode) 은화일을개방하거나화일이없으면생성해서화일포인터 (file pointer) 를반환 화일이개방되면화일포인터가화일이름대신사용됨 streamfp = fopen( streamfile, w ); 화일이공백인경우에는공백스트림화일을생성하고개방 streamfp는화일포인터 mode에는 r (read), w (write), a (append) 등 화살표는판독 / 기록위치를표현하는인덱스 streamfile??????? index : 0 1 2 3 4 5 6 DBLAB, SNU 5 순차접근스트림화일 함수호출문 fputc() 로스트림화일에한문자씩기록 fputc(ch,streamfp) 를연속적으로사용하여문자 S, M, I, T, H 값을입력하면다음과같은 streamfile 이생성. ch 는문자에대한정수값 streamfp 는 streamfile 에대한화일포인터 S streamfile M I T H?? index : 0 1 2 3 4 5 6 DBLAB, SNU 6

순차접근스트림화일 함수호출문 fclose(filepointer) 로화일을폐쇄 fclose(streamfp); 화일포인터 streamfp 가지시하는화일 streamfile 을폐쇄. end-of-file( ) 표시가화일끝에첨가 S streamfile M I T H index : 0 1 2 3 4 5 연속적으로화일을접근하고, 화일에있는모든바이트를처리하는경우에유용 ( 즉배열과유사 ) DBLAB, SNU 7 임의접근스트림화일 u 화일의시작, 끝, 현재의판독 / 기록위치로부터오프셋 (offset) 값을이용하여이전의바이트를접근하지않고직접접근 판독 / 기록위치인덱스를이동 u 임의접근을위한함수 fseek(filepointer, offset, WhereFrom) WhereFrom은 SEEK_SET, SEEK_END, SEEK_CUR 중하나 화일스트림에서판독 / 기록위치인덱스를변경하는데사용 ftell(filepointer) 파일스트림에서현재의판독 / 기록위치인덱스값을반환하기위해사용 DBLAB, SNU 8

임의접근스트림화일 u r ( 판독 ) 모드로개방한스트림화일 streamfp = fopen( streamfile, r ); 화일이개방되면판독위치인덱스는첫번째바이트를가리키게설정 S streamfile M I T H index : 0 1 2 3 4 5 ftell(streamfp) 현재의판독 / 기록인덱스값을반환 현재 streamfile 의판독 / 기록인덱스값이 0 이므로, 0 이반환됨. DBLAB, SNU 9 임의접근스트림화일 fseek(streamfp, 2, SEEK_SET); 시작위치 (SEEK_SET) 로부터판독인덱스를 2 바이트 (offset) 만큼이동시킴. SEEK_SET: 시작위치 SEEK_END: 끝위치 SEEK_CUR: 현재위치 S streamfile M I T H index : 0 1 2 3 4 5 ftell(streamfp) 현재판독인덱스값이 2 이므로, 2 가반환됨. DBLAB, SNU 10

v 입력순차화일 (entry-sequenced file) u 히프화일 (heap file), 파일화일 (pile file) 이라고도함 데이타가입력되는순서대로저장된화일 레코드에대한분석, 분류, 표준화과정을거치지않음 필드의순서, 길이등에제한없음 레코드의길이, 타입이일정하지않음 레코드 : < 필드, 값 > 5 개의레코드예 분리문자 (delimiter) SNUMBER = 1234 #SNAME = 홍길동 #SEX = 남 #IQ = 130; SNUMBER=1234 #WEIGHT=60; CITY = 서울 #POPULATION = 800만 ; SNAME = 김철수 #HEIGHT = 170 #AGE = 30; DEPARTMENT = 전산과 #NUMBER_OF_PROCESSOR = 10; DBLAB, SNU 11 v 입력순차화일 삽입작업 삽입되는레코드는화일의끝에첨가 검색작업 주어진탐색매개변수 (search parameter) 의값과이에대응하는화일레코드필드값을화일시작부터비교하여레코드를선정하고, 선정된레코드에서원하는필드값을검색 키필드 (key field) : 레코드선정시탐색매개변수와대응되는데이타필드 탐색키필드 (search key field) : 탐색매개변수의필드 DBLAB, SNU 12

v 입력순차화일 삭제, 변경작업 새로운순차화일을동시에생성하면서수행 삭제작업삭제대상레코드를탐색하면서기존의레코드를새로운화일로출력해당레코드선정시나머지레코드들을그대로새로운화일로출력 변경작업삭제대상레코드를탐색하면서기존의레코드를새로운화일로출력해당레코드선정시레코드의값을변경하고새로운화일에출력나머지레코드들은그대로새로운화일에출력 입력순차화일응용예 데이타를처리하기전에임시로수집만해놓는경우 화일조직을결정하지못한경우 화일의용도가결정되지않은경우데이타은행 (data bank) 화일조직의변경과정에서중간단계의화일형태로이용 DBLAB, SNU 13 v 키순차화일 (key-sequenced file) u 키순차화일 (key-sequenced file) 저장장치에서의레코드순서와레코드리스트의논리적순서가같은구조의화일 화일내에서의레코드는키필드값에따라정렬 모든레코드는똑같은순서의데이타필드로구성 데이타필드는화일설명자에한번만저장하면됨 ( 즉각필드에해당하는필드값만순서에따라입력 ) 학번 1243 1257 1332 1334 1367 1440 이름홍길동김철수박영희이기수정미영최미숙 나이 10 20 19 21 20 21 본적서울경기충청전라경상강원 성남남여남여여 DBLAB, SNU 14

v 키순차화일 정렬된화일 (sorted file) : 키순차화일처럼레코드들이특정키필드값에따라정렬된화일 정렬키 (sort key) : 정렬에사용된값의필드 오름차순 (ascending) / 내림차순 (descending) 정렬 오름차순정렬 if ( 레코드 i 의키값 레코드 j 의키값 ) then 레코드 i 는레코드 j 앞에위치 ; DBLAB, SNU 15 v 키순차화일 u 순차화일의정렬순서 응용에따라결정 전화번호부 : 가입자이름순또는상호순 하나의순차화일은두개의상이한정렬순서를만족시킬수없음. 여러가지상이한정렬순서의화일이필요한경우에는임시화일을만들어사용했다가용도가끝나면화일을삭제 u 순차화일의특징 대화식 (interactive) 처리보다는일괄 (batch) 처리에유리 장점 : 데이타의순차접근에서는차위레코드의접근이신속 데이타의접근형태를고려한뒤그접근방법에맞는화일구조를선정 DBLAB, SNU 16

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

v 순차화일의설계 2. 키필드는어느것으로할것인가? 응용요건에따라선정 키값은순차화일에서레코드접근순서를결정 트랜잭션화일은마스터화일과같은키 보고서화일은출력형식 ( 순서 ) 에따라레코드가정렬될수있게결정 3. 적정블로킹인수는얼마이어야하는가? 일반적으로가능한한블록을크게하는것이바람직함 버퍼의크기와운영체제가지원하는페이지크기에의해제한 순차화일의디스크저장 섹터주소기법사용시블록크기를섹터크기와같게 실린더주소기법사용시블록크기를트랙크기와같게 DBLAB, SNU 19 v 순차화일의생성 u 화일생성 데이타저장장치에레코드들을순서대로입력하여생성 키순차화일의갱신 ( 삽입, 삭제, 변경 ) 연산은트랜잭션화일 (transaction file) 을이용 트랜잭션화일은데이타수집, 레코드형식으로변환, 레코드편집, 정렬과정을거쳐생성 u 편집 트랜잭션화일생성과정에서입력되는데이타값에오류가있는지검사하는과정 검사내용 입력된값이올바른범위안에있는가 필수적인필드값존재여부, 필드타입적절성, 필드값유효성, 관련필드값유무 합계의일치, 계수 숫자타입필드의앞자리공백은 0 으로채움, 영숫자나텍스트를적절한단축코드로채움, 누락된데이타값삽입 DBLAB, SNU 20

v 순차화일의생성 u 편집과정렬작업 특정응용프로그램이나범용유틸리티프로그램을이용하여수행 1. 한저장장치에서다른저장장치로순차화일을복사 2. 같은저장장치에서하나의순차화일을또다른순차화일로복사 3. 레코드에대한간단한편집수행 4. 레코드에대해간단한재구성수행 5. 주어진필드값에따라오름차순 / 내림차순으로화일을정렬 6. 여러개의정렬된화일을오름차순 / 내림차순으로하나의정렬된화일로합병 DBLAB, SNU 21 v 순차화일의갱신 u 순차화일에서의검색 레코드의저장순서에따라연속적으로검색 레코드검색순서에따라레코드입력순서를결정 u 순차화일에대한질의 화일구조상연속적이고레코드전체에대한접근이필요한검색의경우에효율적 사원봉급의평균과표준편차는얼마인가? 네개의의료보험에각각몇명의사원들이가입되어있는가? 화일의질의적중비율 (inquiry hit ratio) = 질의응답을위해접근해야되는레코드수화일전체의레코드수 질의적중비율이높으면입력순차화일구조가적합 DBLAB, SNU 22

키순차화일의갱신 u u u 키순차화일에대한레코드삽입 키값에따라오름차순 / 내림차순을유지해야하므로복잡 1. 두기존레코드사이에삽입위치를검색 2. 이삽입점앞에있는모든레코드들은새로운화일로복사 3. 새로운레코드를삽입 4. 삽입점뒤에있는나머지레코드들을새로운화일로복사 키순차화일에서의레코드삭제 삽입과거의같은단계를거친다. 삭제할레코드를제외하고나머지레코드만새로운화일로복사 키순차화일에서의레코드수정 수정할레코드앞의모든레코드를새로운화일로복사 원하는레코드를수정해서새로운화일에삽입 나머지레코드들을새로운화일로복사 직접접근저장장치에저장된화일 순차화일의임의접근이가능하므로, 레코드를수정해서기존레코드위치에수정된레코드를기록 DBLAB, SNU 23 순차마스터화일의갱신 u 갱신트랜잭션을트랜잭션화일에모아서일괄처리 트랜잭션화일의트랜잭션레코드 마스터화일과똑같은키로정렬 갱신프로그램에의해마스터화일에적용 트랜잭션레코드는대응하는마스터레코드의키값과갱신타입을나타내는갱신코드 (update code) 를포함 레코드갱신 새레코드의삽입 (I) 기존레코드의삭제 (D) 기존레코드의수정 (C) 트랜잭션코드 사원번호 성명 주소 부서 전화번호 I 1 2 7 5 1 김철수 당산 1 동 1 2 8 경리과 갱신을위한트랜잭션레코드 DBLAB, SNU 24

순차마스터화일의갱신 u 트랜잭션의삽입 레코드키값은필수 기타데이타필드값은선택적 ( 나중에삽입가능 ) u 트랜잭션의삭제 보통해당마스터레코드의키값만을명세 u 트랜잭션의수정 레코드키값과수정될필드들과해당값만명세 일반적으로수정하지않을필드는공백으로남겨놓는다. u 화일갱신 ( 삽입, 삭제, 수정 ) 시고려사항 이미저장되어있는레코드의삽입 ( 키값의중복 ), 화일에없는레코드삭제나수정등의오류 갱신프로그램은오류보고서를생성하여수행하지못한모든트랜잭션의내용과이유를출력 DBLAB, SNU 25 마스터화일의갱신빈도 u 화일의갱신빈도를결정하는요인 데이타내용의변경율 마스터화일의크기 마스터화일에대한최신데이타요구 화일활동비율 u 화일활동비율 (file activity ratio) = 일련의트랜잭션에의해영향을받는화일의레코드수화일의총레코드수 DBLAB, SNU 26

순차화일의갱신작업 u 마스터화일 / 신마스터화일 화일활동비율이낮을수록신마스터화일로단순히복사하는레코드수가증가 갱신작업종료시실행과정에서일어난여러가지오류와갱신요약을보고서로생성 트랜잭션화일 마스터 갱신 ( 다음주기 ) 갱신요약및오류보고서 ( 신마스터 ) DBLAB, SNU 27 키순차마스터화일의갱신알고리즘 u 가정 트랜잭션화일과순차마스터화일은똑같은키로오름차순으로정렬 각화일의레코드키값은유일 u 갱신알고리즘 트랜잭션화일레코드를마스터화일레코드와비교 레코드키값이두화일에서일치하면갱신코드에따라레코드를수정또는삭제 트랜잭션레코드키값이마스터화일의어떤레코드의것과도일치하지않으면, 새로삽입할레코드로판정하고마스터화일에삽입 DBLAB, SNU 28

키순차마스터화일의갱신알고리즘 u 오류처리 마스터화일에있는레코드키값을가진레코드를삽입 마스터화일에없는레코드키값을가진레코드를삭제 마스터화일에없는레코드키값을가진레코드를수정 u transkey 와 masterkey 의비교 갱신알고리즘의핵심은 transkey와 masterkey의비교작업 transkey : 트랜잭션화일의레코드키 masterkey : 마스터화일의레코드키 가정 : 화일의끝을표시하는 EOF는어떤레코드키값보다크다. DBLAB, SNU 29 키순차마스터화일의갱신알고리즘 1. masterkey < transkey 마스터레코드에적용할트랜잭션레코드가없는경우마스터레코드를새로운마스터화일로복사만하고, 다음마스터레코드를읽어온다. 2. masterkey = transkey 트랜잭션레코드의갱신코드에따라적절한연산을수행 수정 (C) 인경우 : 레코드를변경해서새로운마스터화일에삽입하고, 다음트랜잭션레코드를읽어온다. 삭제 (D) 인경우 : 마스터레코드는삭제, 즉무시된다. 삽입 (I) 인경우 : 마스터화일에이미같은키값을가진레코드가있으므로중복레코드라는오류메시지를출력하고다음트랜잭션레코드를읽어온다. DBLAB, SNU 30

키순차마스터화일의갱신알고리즘 3. masterkey > transkey 트랜잭션레코드키와일치하는마스터레코드가없는경우갱신코드가삽입 (I) 인경우 : 레코드를구성해서새로운마스터화일에삽입하고다음트랜잭션레코드를처리그이외갱신코드가수정 (C) 이거나삭제 (D) 인경우 : 적절한오류메시지를출력하고, 다음트랜잭션레코드를처리 u 하나의마스터레코드에적용할트랜잭션이다수인경우 트랜잭션레코드들을발생시간순서에따라적용 트랜잭션레코드들을 1차키 transkey, 2차키트랜잭션발생시간으로정렬한뒤에갱신작업을시작 갱신된레코드를새로운마스터화일에출력하기전에관련트랜잭션들이모두처리되었는지확인 DBLAB, SNU 31 v 순차화일과임의접근 u 순차화일의저장 순차접근저장장치 ( 테이프 ) 임의접근저장장치 ( 디스크 ) 에도저장가능 실린더단위로저장하면탐구시간을절약 u 임의갱신 (random update) 갱신과정 1. 해당마스터레코드를판독 2. 마스터레코드에트랜잭션적용 3. 갱신된마스터레코드를원래의위치에재기록 효율적 : 해당레코드만읽고, 원위치에재기록 레코드삭제 : 물리적인제거보다해당레코드위에 deleted 플래그를표시하여논리적삭제로대신하는것이효율적 DBLAB, SNU 32