화일의 종류
정보와 데이터
정보(Information) != 데이터(Data)
정보: 데이터를 처리하여(processing) 가공한 결과
물리 저장공간(tape, disk 등) 안에 존재하는 raw data를 컴퓨터에서 처리하여(processing) 가공하면 정보(Information)가 되는 것!
정형화된 데이터 & 중요 용어
학생
| 학번(int) | 이름(char(6)) | 학년(int) | 학과(char(10)) |
|---|
| 100 | 최정환 | 4 | 컴퓨터 |
| 200 | 이태욱 | 3 | 전기 |
| 300 | 김현석 | 1 | 컴퓨터 |
| 400 | 김가람 | 4 | 컴퓨터 |
| 500 | 안지은 | 2 | 산업공학 |
Data Attribute (Data Field · Data Item)
- 이름을 가진 논리적 데이터의 최소단위
- 특정 객체(object, entity)의 한 성질 값
- ex) 학번, 이름, 학년, 학과
Record Type (Entity Type)
- 논리적으로 서로 연관된 항목들의 집합
- Attribute + Datatype
- ex)
| 학번(int) | 이름(char(6)) | 학년(int) | 학과(char(10)) |
|---|
Record Occurrence (Record)
- 한 레코드 타입의 인스턴스(instance)
- 레코드 타입의 각 필드에 따라 실제 값이 들어가 어떤 특정 객체를 나타내는 것
- 일반적으로 레코드(Record)라고 함
File
- 보조기억장치에 저장된 같은 종류의 레코드 집합
- 하나의 응용 목적(급여, 인사 재고, 재무, 회계 등)을 위해 함께 저장된 레코드
데이터의 집합을 File로 구성하는 이유
- 주기억장치에 전부 적재하기에는 데이터의 양이 너무 많음
- 프로그램은 특정시간에 데이터 집합의 일부만 접근함
= 모든 데이터를 주기억장치에 한꺼번에 저장할 필요 X
- 데이터를 특정 프로그램의 수행과 독립적으로 보관하여 데이터의 독립성(independency)을 유지하기 위함
= 여러 응용프로그램이 공용하기 쉬움
화일의 연산
화일 사용의 형식
일괄처리(batch) 형식
- 마스터 화일에 효율적으로 접근하도록 트랜잭션 구성(요청을 쌓아뒀다가 한 번에 처리)
- 트랜잭션들을 그룹화하여 처리하는 성능이 주요 관심사
대화(interactive) 형식
- 트랜잭션이 터미널에 도착하는대로 구성하고 처리(요청 들어오는대로 처리)
- 개별 트랜잭션의 처리 성능이 주요 관심사
화일 연산의 성격
화일에 대한 기본연산
화일 단위의 연산
- create: 화일의 생성
- open/close: 화일의 개방/폐쇄 = 버퍼 할당/반환
- delete: 화일의 삭제
레코드 단위의 연산
- retrieve/read: 레코드의 검색/판독 = 내용 읽기
- update: 레코드의 갱신
- insert: 레코드의 삽입
- delete: 레코드의 삭제
- modify: 레코드의 수정
update와 modify 혼용에 주의!
update = insert + delete + modify
화일 구조의 선정 요소
화일의 성격
- 내용이 변하지 않는 정적 화일(과거의 기록)
- 내용이 자주 변하는 동적 화일(현재 상황의 데이터)
가변성 (volatility)
전체 레코드 수에 대해 추가/삭제되는 레코드 수의 비율
- 가변성이 높은 동적 화일은 빠른 접근과 갱신이 필요
활동성 (activity)
주어진 기간 동안 화일의 총 레코드 수에 대해 접근한 레코드 수의 비율
- 활동성이 높은 화일: 대부분의 레코드에 고르게 접근(순차 화일 구조 유리)
- 활동성이 낮은 화일: 일부 레코드에 집중 접근(임의 접근 구조 유리)
사용 빈도 (frequency of use)
일정 기간 동안 화일에 빈번하게 접근한 정도
제한된 화일 접근 방법이 사용 빈도에 장애?
- 사용 빈도가 높은 화일: 임의 접근 구조 유리
- 사용 빈도가 낮은 화일: 순차 화일 구조 유리
응답 시간 (response time)
화일 검색 · 갱신에 대해 요구하는 지연 시간
- 빠른 응답 시간: 임의 접근 방법
- 정렬된 키를 이용: 순차 접근 방법
화일 크기 (file size)
레코드 수와 각 레코드 길이가 화일의 크기 결정
- 시간이 지남에 따라 화일 크기는 성장함(레코드 길이 확장 & 레코드 수 증가)
- 화일의 성장 유연하게 수용 가능한 구조가 필요
화일 접근 유형
화일 연산 유형과 접근 형식에 따라 화일 구조 결정
- 연산 유형: 판독 위주 접근 VS 갱신 위주 접근
- 접근 형식: 순차 접근 VS 임의 접근