CHAPTER 04 파일 설계(FiLE Design)
목차 파일 설계의 기본 파일 매체의 설계 파일 편성의 설계
4.1 파일 설계의 기본[1] 자료의 기본 구성 비트(BIT : Binary digIT) 2진법 한 자리를 기억하는 자료 표현의 최소 단위 반도체 회로에서 전류가 흐르는 상태(ON)와 흐르지 않는 상태(OFF) 스위치(Switch)가 ON되어 있는 상태와 OFF되어 있는 상태 [예1] 2비트 : (00, 01, 10, 11) - 22 = 4가지 3비트 : (000, 001, …, 111) - 23 = 8가지 N비트 : 2N가지 [예2] N가지의 서로 다른 정보를 나타내기 위한 비트 수는? : ⌠log2N⌡비트 1024가지의 서로 다른 정보를 나타내기 위한 비트 수는? : ⌠log21024⌡ = ⌠log2210⌡ = 10비트
4.1 파일 설계의 기본[2] 니블(Nibble) 텍스 트를 입력 하세 요. 4개의 비트들이 기억 공간에 연속적으로 모여서 이루어진 단위 텍스 트를 입력 하세 요. Left Nibble Right Nibble
4.1 파일 설계의 기본[3] 바이트(Byte) 7 6 5 4 3 2 1 C 하나의 문자 또는 숫자를 표현하는 최소 단위 8개의 비트가 모여 구성되는 비트의 집합 존 비트 디지트 비트 7 6 5 4 3 2 1 C 패리티 비트
4.1 파일 설계의 기본[4] 워드(Word) 컴퓨터 내의 정보가 저장되고 연산될 때의 기본단위 CPU의 레지스터(Register) 크기를 의미함 반워드(Half Word) 전워드(Full Word) 배워드(Doube Word) 워드(Word) 2바이트 4바이트 8바이트
4.1 파일 설계의 기본[5] 필드(Field, Item) 특정한 의미를 나타내기 위해 하나 이상의 바이트로 구성된 프로그램의 처리 단위 레코드(Record)를 구성하는 기본 구성 단위 부산 경기 경남 618-142 451-840 664-010 58.06.04 83.11.30 86.06.13 91.01.17 女 男 金 恩 兆 李 珍 敬 李 旺 孝 李 雄 孝 001 002 003 004 주소 우편번호 생년월일 성별 성명 번호 필드 레코드 파일
4.1 파일 설계의 기본[6] 레코드(Record) 여러 개의 항목(Item)이 모여서 하나의 단위로 취급할 수 있는 연관성을 가진 것으로서 파일의 구성 요소임 논리적레코드(Logical Record) : 프로그램에서 처 리되는 1개의 레코드 단위 물리적레코드(Physical Record) : 레코드를 입•출 력하는 단위로서 몇 개의 논리적레코드로 구성 - 블록(Block)
4.1 파일 설계의 기본[7] 파일(File) 볼륨(Volume) 정보 처리의 목적상 하나의 단위로서 연관된 레코드의 집합 파일의 집합으로 한 개의 디스크나 테이프임 단일 볼륨(Single Volume) 또는 다중 파일(Multi File) : 한 개 의 테이프에 여러 개의 파일이 기록된 것
4.1 파일 설계의 기본[8] 파일의 계층 구조 파일 (file) 블록 (block) 레코드 (record)
4.1 파일 설계의 기본[9] 논리적 레코드와 물리적 레코드
4.1 파일 설계의 기본[10] 레코드 형식 여러 개의 논리적 레코드를 하나의 물리적 레코드로 만 드는 것 블록킹 (Blocking) 여러 개의 논리적 레코드를 하나의 물리적 레코드로 만 드는 것 비블록 고정길이 레코드(Unblocking Fixed Length Record) 블록화 고정길이 레코드(Blocking Fixed Length Record) 비블록 가변길이 레코드(Unblocking Variable Length Record) 블록화 가변길이 레코드(Blocking Variable Length Record)
4.1 파일 설계의 기본[11] 비블록 고정길이 레코드 논리적 레코드와 물리적 레코드의 길이가 동일한 형식 IBG LR1 LR2 LR3 블록 장점 : 프로그램 작성 용이 단점 : 경제성이 낮고, 처리 속도가 느림
4.1 파일 설계의 기본[12] 블록화 고정길이 레코드 모든 레코드의 길이가 일정하고 블록내의 레코드의 수가 같은 경우 IBG LR1 LR2 LR3 LR4 물리적 레코드(블록) 장점 : 경제성이 높고, 처리 속도가 빠르며, 프로그 램 작성 용이
4.1 파일 설계의 기본[13] 비블록 가변길이 레코드 레코드의 길이가 서로 다르고 각 블록의 크기와 레코드의 크기가 서로 다른 형식 IBG BL RL LR1 LR2 LR3 블록 단점 : 경제성이 낮고, 처리 속도가 느리며, 프로그 램의 작성이 어려움
4.1 파일 설계의 기본[14] 블록화 가변길이 레코드 블록의 길이와 레코드의 길이가 서로 다른 형식 IBG BL RL LR1 LR2 LR3 물리적 레코드(블록) 장점 : 경제성이 높고, 처리 속도가 빠름 단점 : 프로그램 작성이 어려움
4.1 파일 설계의 기본[15] 자기테이프의 구성 BOT 레코드1 IRG 레코드2 ••• 레코드n EOT 길이 800, 1200, 1600, 2400 피트 0.5∼ 0.75 인치 순차 접근 저장 장치(Sequential Access Storage Device) BOT : Begin Of Tape, IRG : Inter Record Gap, EOT : End Of Tape 종류 : 7트랙(BCD 코드), 9트랙(ACSII, EBCDIC 코드) 기록 밀도 : 1인치 당 기록할 수 있는 바이트 수(Byte Per Inch : BPI) 자료 전송률 : 1초 동안에 전송할 수 있는 바이트 수(BPS)
4.1 파일 설계의 기본[16] 자기디스크의 구성 디 스 크 팩 트랙(Track) : 하나의 원판위에 여러 개의 동심원 판독/기록 헤드 섹터 트랙 액세스 암 디 스 크 팩 트랙(Track) : 하나의 원판위에 여러 개의 동심원 섹터(Sector) : 하나의 트랙 위에 몇 개의 영역 실린더(Cylinder) : 디스크 팩의 동일 트랙 모임 실린더
4.1 파일 설계의 기본[17] 자기디스크의 자료처리시간 탐구 시간(Seek Time) : 자료를 찾기 위하여 디스크의 헤드가 해당 트랙으로 이동하는데 소요되는 시간 회전 지연 시간(Rotational Delay Time) : 해당 트랙으로 이동한 후, 원판이 회전하면서 자료가 저장되어 있는 해당 섹터 를 찾는데 소요되는 시간 자료 전송 시간(Data Transfer Time) : 주기억장치와 디스 크 장치간에 실제 자료를 전송하는데 소요되는 시간
자료 처리 시간 = 회전 지연 시간 + 자료 전송 시간 4.1 파일 설계의 기본[18] MHD와 FHD의 자료처리시간 MHD 자료 처리 시간 = 탐구 시간 + 회전 지연 시간 + 자료 전송 시간 ※ MHD : Moving Head Disk FHD 자료 처리 시간 = 회전 지연 시간 + 자료 전송 시간 ※ FHD : Fixed Head Disk
4.1 파일 설계의 기본[19] 데이터 파일(Data File) 마스터 파일(Master File) : 어느 한 시점에서 조직체의 사업에 관한 정적인 면을 나타내는 데이터의 집합 트랜잭션 파일(Transaction File) : 마스터 파일의 내용을 수정하기 위한 변동 자료의 집합 요약 파일(Summary File) : 업무를 편리하기 위해 어떤 파일의 내용을 요약해서 만든 합계 파일 히스토리 파일(History File) : 통계 처리나 파일의 자료에 잘못이 발생하였을 때 파일을 원상 복구하기 위한 파일 보고서 파일(Report File) : 각종 자료를 일정한 형식을 갖추어 출력하기 위한 파 일 트레일러 파일(Trailer File) : 항상 필요로 하는 정보만을 기록한 원본 파일에 어 느 시점에서만 필요로 하는 추가 정보를 덧붙여 놓은 파일
4.1 파일 설계의 기본[20] 프로그램 파일(Program File) 작업 파일(Work File) 목적 프로그램(Object Program) 원시 프로그램(Source Program) 제어 프로그램 파일(Control Program File) 처리 프로그램 파일(Process Program File) 작업 파일(Work File) 입력 자료 파일(Input Data File) 출력 자료 파일(Output Data File) 중간 임시 파일(Temporary File) 입출력 자료 파일(Input Output File) 체크 포인트 파일(Check Point File) 또는 백업 파일(Back File)
4.2 파일 매체의 설계[1] 파일 속성의 결정 파일 설계전 검토 사항 파일 성격에 관한 특성 파일 성격, 데이터 항목, 파일 처리, 파일의 신뢰성에 관한 특성 등 파일 성격에 관한 특성 파일의 성격이나 연상하기 쉬운 파일 명칭(File Name)을 결정하여야 함 파일의 역할이나 필요성을 고려하여 작성 목적(Object)을 명확히 정의함 파일이 마스터 파일 또는 트랜잭션 파일인가의 파일 종류를 확정해야 함 파일이 단일 업무에 사용될 것인가 또는 여러 개의 업무에 사용할 것인가 등의 적용 업무를 결정하여야 함
4.2 파일 매체의 설계[2] 데이터 항목에 관한 특성 파일 구성에 필요한 모든 항목에 대하여 고유한 항목 명칭(Item Name)을 부여하여야 함 각 항목의 자릿수를 확정하여야 함 파일을 구성하는 여러 개의 항목 배열 순서를 결정해야 함 항목이 문자인가 또는 숫자인가 등에 대한 문자 구분을 결정해야 함 레코드가 가변 길이 레코드로 할 것인가 또는 고정 길이 레코드로 할 것인가를 확정해야 함 데이터를 취급하는데 레코드 길이와 블록화할 경우 블록 길이를 결정해야 함
4.2 파일 매체의 설계[3] 파일 처리에 관한 특성 파일을 순차 처리 또는 랜덤 처리 형태 중에 어느 처리 형태로 할 것 인가를 결정해야 함 파일의 처리 주기(수시, 일일, 주간, 월별, 분기, 연도 등) 형태 중에서 어느 형태로 할 것인가를 결정해야 함 파일의 갱신 형태(추가, 삭제, 삽입 등) 중에서 어느 것을 대상으로 하 는지를 확정하고, 갱신율을 파악해야 함 파일에 대해서 요구하는 처리를 하는데 소요되는 처리 시간을 파악하 고 조회 처리나 즉시 처리를 요하는 업무에서 요구하는 접근 시간 (Access Time)을 정확히 파악해야 함 파일을 구성하고 있는 레코드의 현재량을 비롯한 장래 변동을 고려하 여 미래의 정확한 데이터 양을 파악해야 함
4.2 파일 매체의 설계[4] 파일의 신뢰성에 관한 특성 파일 매체의 결정 기술적 축면에서 신뢰성 방안 설비적 측면에서 신뢰성 방안 운용 관리적 측면에서 신뢰성 방안 파일 매체의 결정 처리 방식 접근 시간 기억 용량 작동의 용이성 저장 매체 결정
4.2 파일 매체의 설계[5] 처리 방식 접근 시간 순차 처리(Sequential Processing) 색인 순차처리(Indexed Sequential Processing) 랜덤 처리(Random Processing) 접근 시간 온라인 실시간 처리(On-Line Real Time Processing) 랜덤 처리(Random Processing)
4.2 파일 매체의 설계[6] ( ) ( ) 기억 용량 자기 테이프의 길이 자기 테이프의 레코드 수 블록 길이 기록 밀도 + IBG 길이 ) ⅹ 전체 레코드 수 블록내의 레코드 수 자기 테이프의 레코드 수 자기 테이프 길이 ( + IBG 길이 ) / 물리적 레코드 길이 기록 밀도
4.2 파일 매체의 설계[7] 자기테이프의 레코드 수 계산 예제1 자기 테이프의 길이가 2400Feet이고, 기록 밀도는 6250BPI, IBG의 길이는 0.3Inch이며, 논리적 레코드의 길이가 200Byte라는 조건 하에서 비블록(Unblocking) 형태로 데이터를 기록할 때, 이 자기 테이프 전체에 기록되는 레코드 수는? 레코드 수 = (2400 X 12) / (0.3 + 200 / 6250) = 28800 / 0.332 = 86,746레코드
4.2 파일 매체의 설계[8] 자기테이프의 레코드 수 계산 예제2 앞 예제에서 제시된 조건과 동일하고, 10개의 논리적 레코드가 모여서 하나의 물리적 레코드(블록)를 구성하는 경우, 이 자기 테이프에 기록되는 레코드 수는? 레코드 수 = (2400 X 12) / (0.3 + 2000 / 6250) = 28800 / 0.62 X 10 = 464,515레코드
4.2 파일 매체의 설계[9] 자기테이프의 형태 자기 디스크의 실린더 수 전체 레코드 수 실린더 수 = 단일 볼륨 단일 파일(Single Volume Single File) - 하나의 파일이 하나의 릴(Reel)에 기록된 형태 단일 볼륨 다중 파일(Single Volume Multi File) - 여러 개의 파일이 하나의 릴에 기록된 형태 다중 볼륨 단일 파일(Multi Volume Single File) - 하나의 파일이 여러 개의 릴에 기록된 형태 다중 볼륨 다중 파일(Multi Volume Multi File) - 여러 개의 파일이 여러 개의 릴에 기록된 형태 자기 디스크의 실린더 수 실린더 수 = 전체 레코드 수 블록 내의 레코드 수 X 실린더 당 블록의 수
4.2 파일 매체의 설계[10] 플로피디스크의 기억용량 2면 X 40트랙 X 9섹터 X 512바이트 5.25인치 (2DD) 2면 X 40트랙 X 9섹터 X 512바이트 = 368,640바이트 ≒ 360KB 5.25인치 (2HD) 2면 X 80트랙 X 15섹터 X 512바이트 = 1,228,800바이트 ≒ 1.2MB 3.5인치 (2HD) 2면 X 80트랙 X 18섹터 X 512바이트 = 1,474,560바이트 ≒ 1.4MB
4.2 파일 매체의 설계[11] 작동의 용이성 저장 매체 결정 데이터 양의 많고 적음, 파일 종류의 많고 적음, 파일의 개수, 사용 빈도의 많고 적음 사람의 조작 시간 및 관련 조작이 달라짐 저장 매체 결정 시스템 전체의 균형과 비용을 분석하여 특정 매체의 선정 해당 파일을 위한 필요한 매체의 개수 매체의 운용 관리 및 조작을 위한 장치의 대수
4.2 파일 매체의 설계[12] 파일 설계 순서 파일 작성 목적 정의 파일 명칭, 파일 목적 및 종류(마스터 파일 또는 트랜잭션 파일) 적용 업무
4.2 파일 매체의 설계[13] 파일 항목 검토 파일 특성 조사 ※ 평균 활동 비율 항목 명칭, 항목 속성(자릿수, 사용 문자, 표현 단위), 키 항목, 항목 배열 순서 레코드 가변성 여부 및 레코드 크기, 전송 블록 크기, 정보량 파일 특성 조사 처리 주기 및 처리 방식 처리 시간 또는 검색 시간 갱신 빈도와 형태(추가, 삭제, 수정 등) 검색용 키 항목의 개수 및 분류용 키 항목 평균 활동 비율(Average Activity Ratio) 레코드별 검색 빈도의 분포 ※ 평균 활동 비율
4.2 파일 매체의 설계[14] 파일 매체 검토 파일 편성법 검토 처리 방식, 처리 시간, 정보량, 작동의 용이성,저장 매체의 결정 파일 편성법 검토 처리 유형(순차 처리, 랜덤 처리 등) 편성 방식(순차 편성, 색인 순차 편성, 랜덤 편성, 다중 리스트 편성 등)
4.3 파일 편성의 설계[1] 순차 파일(Sequential File) 개념 : 파일 편성 방법 중에서 가장 간단한 방법으로 레코드를 논리적 순서에 따라 파일을 편성하는 방법 명칭 : SAM(Sequential Access Method) - 레코드들은 특정 항목의 키값(Key Value)에 따라 정렬되어 있음 학번 성명 성별 주소 자격증 비고 9780001 강성민 남 진주 워드프로2급 9780004 강현민 여 전자기기2급 9780008 공미정 정보통신2급 9780019 김봉순 9780029 김태일 9780032 김현영
4.3 파일 편성의 설계[2] 인덱스 순차 파일 인덱스 순차 파일의 구성 개념 : 키값에 따라 정렬된 레코드들을 순차적으로 접근하는 순차 파일 구조와 주어진 키값에 따라 직접적으로 접근하는 직접 파일 구조가 모두 사용되는 효과적인 파일 편성 방법 명칭 : ISAM(Indexed Sequential Access Method) 인덱스 순차 파일의 구성 기본 데이터 영역(Primary Data Area) 인덱스 영역(Index Area) 오버플로우 영역(Overflow Area)
4.3 파일 편성의 설계[3] 기본 데이터 영역 기본 개념 : 처음에 파일이 만들어질 때 실제적으로 처리될 데이터가 기록되는 부분으로 새로 삽입되는 모든 레코드들은 키값에 따라 정렬 되어 기본 데이터 영역에 저장됨 구성 요소 : 카운트 영역(Count Area), 키 영역(Key Area), 데이 터 영역(Data Area) 저장 위치 : 키값에 의해 정해진 실린더의 두 번째 트랙부터 차례로 저 장됨
4.3 파일 편성의 설계[4] 인덱스 영역 ※ 인덱스 영역의 종류 개념 : 기본 데이터 영역에 관한 색인(Index)이 기록된 부분 - 색인 : 순차 파일에 저장된 레코드의 키값과 포인터 주소가 쌍을 이루고, 각 색인의 레벨을 나타냄 저장 위치 : 가장 낮은 레벨은 트랙 색인 영역으로서 색인 순차 파일의 각 실린더의 첫 번째 트랙에 기록됨 ※ 인덱스 영역의 종류 트랙 인덱스 영역(Track Index Area) 실린더 인덱스 영역(Cylinder Index Area) 마스터 인덱스 영역(Master Index Area)
4.3 파일 편성의 설계[5] ※ 3가지 인덱스
4.3 파일 편성의 설계[6] 오버플로우 영역 개념 : 색인 순차 파일이 생성된 후에, 기본 데이터 영역에 빈 공간이 없어 새로운 데이터 레코드의 삽입이 불가능할 때 초 과되는 데이터 레코드를 수록할 수 있도록 예비적으로 확보 해 두는 영역 종류 : 실린더 오버플로우 영역(Cylinder Overflow Area), 독립 오버플로우 영역 (Independent Overflow Area)
4.3 파일 편성의 설계[7] 랜덤 파일(Random File) 사상 함수의 3가지 방법 개념 : 레코드의 키값으로부터 레코드가 기억되어 있는 기억 장소의 주 소를 직접 계산하여 원하는 레코드를 직접 접근할 수 있는 파일 방법 : 키값(Key Value) → 주소(Address) 변환하는 사상 함수 사용 사상 함수의 3가지 방법 절대 주소 방법(Direct Addressing) 디렉토리 조사 방법(Directory Look-up) 해싱 방법(Hashing)
4.3 파일 편성의 설계[8] 절대 주소 방법 개념 : 주소 공간에 있는 레코드의 실제 주소를 키값으로 직접 지정하는 가장 간단한 방법 방법 : 레코드를 파일에 저장할 때 (실린더 번호, 레코드 번호) 또는 (섹터 번호, 레코드 번호)를 사용자가 결정함 특징 : 키와 주소가 일치하는 경우가 드물기 때문에 특수한 경 우를 제외하고 별로 사용하지 않음
4.3 파일 편성의 설계[9] 디렉토리 조사 방법 해싱 방법 개념 : (키값, 주소) 쌍으로 구성된 디렉토리를 유지하면서 해당 레코드의 위치를 찾는 방법 방법 : 랜덤 파일에서 해당 레코드를 검색하려면 먼저 디렉토리에서 레코드 주소에 대한 인덱스를 검색하고, 그 키값에 해당하는 주소로 기억 장치 내에서 해당 레코드를 접근함 해싱 방법 개념 : 해시 색인(Hash Index)을 이용하여 해당 레코드를 접근할 수 있는 방법
4.3 파일 편성의 설계[10] ※ 충돌(Collision) 현상 ※ 해싱 함수 선택시 고려사항 기본 개념 : 해싱 함수에 의한 주소 계산 기법에서 서로 다른 키값에 의해 동일한 주 소 공간을 점유하는 현상 해결 방법 : 재해싱 방법(Rehashing), 선형 방법(Linear Method), 체인 방법 (Chaining), 오버플로우 방법(Overflow) 등 ※ 해싱 함수 선택시 고려사항 오버플로우의 최소화 충돌의 최소화 해싱 함수의 단순성
해싱 함수 기법(1) 접지 변환법(folding transformation) 키의 숫자들을 종이를 접듯이 양끝을 접어 숫자를 변환하는 것 접어 포개진 두수를 더한 결과를 주소 범위에 맞도록 조정 길이가 긴 키에 적합하다. [예] : 키는 12345678 이며 두수 321 + 487 의 결과는 808 주소를 산출
해싱 함수 기법(2) 진법 변환법(RADIX transformation) 키가 구성된 진수가 아닌 다른 진수를 가지고 숫자를 표현하는 것 진수 환된 결과를 다시 주소 범위에 맞도록 조정해야 한다.
해싱 함수 기법(3) 나눗셈 변환법(DIVISION transformation) 제산 방법 주소 공간을 제수로 하여 키를 나눈 나머지를 레코드 주소로 하는 방법 제수 - 단순한 숫자가 아닌 소수를 제수로 이용 (균등한 분포) 균등한 분산성 이외에 오버플로우 방지
해싱 함수 기법(4) 미드-스퀘어 변환법(Mid-Square transformation) 중간 제곱법 키값을 제곱한 다음 그 수의 중앙위치에서 미리 정해진 자리의 숫자를 뽑아내어 상대 주소를 만든다. [예] n자리의 상대주소 - 제곱한 키의 중앙 n 자리만 남기고 양끝 자리를 잘라 버린다 . 123456 “123456”을 제곱하여 얻은 15241383936에서 중앙의 5자리를 이용 → 상대주소
4.3 파일 편성의 설계[11] 다중 리스트 파일 개념 : 다중 키(Multi Key) 접근을 지원하기 위해 색인과 데 이터 레코드 파일을 연결하는 방법으로 각 보조키에 대해 하나 의 다중 리스트 색인을 유지하는 방법 다중 리스트 색인 : 각 키값에 대한 엔트리로 그 키값을 가지고 있는 데이터 레코드 중에 하나의 레코드에 대한 포인터만 가지 고 있고, 나머지 레코드들에 대한 정보는 리스트 구조로 실제 데이터 파일에 유지됨