1장: 파일의 기본 개념

I=p(D)
Information = Processing(Data)

데이터를 처리해서 정보가 만들어짐
// DBMS가 데이터를 처리 (생성/변경/삭제 연산 진행)


Q. 의미있는 정보가 되려면?

정확성, 현재성이 보장 <정확한가 & 실재하는가>


컴퓨터로 데이터를 처리할 때 중요한 이슈는?

-> 데이터를 어떻게 효율적으로 저장/전송하는가?


디스크에 저장하는 데이터는 크게 무엇으로 구분되는가?

1. 파일
공통적인 응용 목적(급여,인사,재무 등)을 가지고 보조기억장치에 저장된 데이터 레코드 집합

  • 세로[열](초록): 필드, 가로[행](빨강): 레코드
  • 필드는 논리적 데이터의 최소 단위(배의 코드,이름,색)이며 attribute 또는 item이라고도 함 <color를 더 이상 쪼갤 수 있어? -> co,lor 이렇게 쪼개봤자 논리적 의미가 없잖아!>
  • 레코드는 서로 연관된 필드들로 구성된 것 (가로 한 줄 데이터(레코드) -> 배의 코드+이름+색)


파일구조란?

디스크에 저장할 데이터를 표현하는 방식 & 데이터에 접근하기 위한 연산 방식
-> 어떻게 파일 구조를 설계하느냐에 따라 시스템이 시간을 허비하지 않고 효율적으로 데이터 처리가 가능함


데이터의 집합을 왜 디스크 파일로 구성하는가?

  1. 주기억장치에 전부 적재하기에 데이터 양이 너무 많다.
  2. 프로그램은 데이터 집합의 일부만 접근하기 때문에 모두 주 메모리에 넣을 필요는 없다.
  3. 여러 응용 프로그램이 공용하기 쉽게 하기 위해 프로그램과 데이터를 별도(파일)로 저장시키는 것이다. (=) 데이터의 독립성을 유지


기능에 따른 파일의 분류

  1. 마스터 파일
    영속적 데이터 레코드를 포함하고 있는 파일, 일반적인 파일, 현재성(최신성)을 유지해야 함
    Ex) 제조회사의 급여/고객/인사/재고/자재 요청 마스터 파일

  2. 트랜잭션 파일
    마스터 파일에 적용할 변경 내용을 모아 저장한 파일
    Ex) 인사 마스터 파일을 변경해야 될 때, 인사 변동의 내용만을 담은 데이터 파일,
    출석부가 마스터 파일이면, 취소되거나 새로 들어오는 학생들 모음은 트랜잭션 파일

  3. 보고서 파일
    사용자에게 정보 검색의 결과를 보여주기 위해 일정한 형식을 갖춘 데이터를 저장하는 파일
    Ex) 쪽수 매기고 줄 간격 맞춤, 들여쓰기하는 등 형식 갖춘 파일

  4. 작업 파일
    (출력 데이터를 다른 프로그램의 입력 데이터로 사용하기 위해)임시로 만들어 사용하는 파일
    Ex) 정렬을 하려면 중간 중간에 임시 파일을 만들 때가 있음

  5. 프로그램 파일
    데이터를 처리하기 위한 명령어들을 저장하고 있는 파일

  6. 텍스트 파일
    문자 숫자와 그래픽 데이터를 포함하고 있는 파일

접근 목적에 따른 파일의 분류

  1. 입력 파일
    프로그램이 판독을 위해 접근하는 파일 (원시 프로그램 파일)

  2. 출력 파일
    프로그램이 기록을 위해 접근하는 파일 (목적코드 파일)

  3. 입출력 파일
    프로그램이 실행 중 판독과 기록을 위해 접근하는 파일


파일의 연산

  1. 일괄처리 형식
    한 번에 다 모아서 처리/ 트랜잭션들을 그룹화하여 처리하는 성능이 주요 관심사

  2. 대화 형식
    트랜잭션이 터미널에 도착하는대로 구성하고 처리함/ 개개 트랜잭션 처리하는 성능이 주요 관심사

생성: 데이터 정의, 적재(정의에서 맞춘 타입에 맞게 적재)
-> 파일을 생성하려면 공간 할당/ 디렉토리 엔트리에는 파일의 위치 정보를 포함

기록: 레코드 삽입, 삭제, 갱신
-> 디렉토리를 조사해서 파일의 위치를 찾아냄 -> 해당되는 위치에 레코드를 삭제/변경함

판독: 파일의 이름을 찾기
-> 파일의 위치와 판독해야 될 레코드의 디스크 주소를 찾아냄  

삭제: 파일 제거
-> 다른 파일이 사용할 수 있도록 디스크 공간 반환 / 디렉토리 엔트리 삭제

개방과 폐쇄: 파일 열기/닫기
-> Fopen/fclose 활용, 버퍼 할당, 버퍼 반환


주기억장치
최대 비교 연산 횟수가 프로그램 성능 평가 요소 / 적을수록 좋게 평가

보조 기억장치
데이터에 접근하는 시간이 메인 메모리에 비해 10^5배 느림 <10ms과 100ns의 차이>
보조 저장 장치의 접근 횟수가 프로그램 성능 평가 요소

(1ms -> 10^-3 s, 1ns -> 10^-9 s, 10ms -> 10^-2 s,100ns -> 10^-7 s-> 10^-5배 차이)


파일 구조 선정 요소

  1. 가변성
    전체 레코드 수에 대해 추가되거나 삭제되는 레코드 수
    가변성이 높다(추가되거나 삭제되는 레코드 수가 많다) -> 동적인 파일 -> 삽입/삭제 연산이 빠르고 효율적이어야 됨

  2. 활동성
    파일의 총 레코드 수에 대해 접근한 레코드 수의 비율
    활동성이 높다(접근된 레코드수가 많다) -> 순차적으로 파일을 구성하면 좋음

  3. 사용 빈도 수
    얼마나 많이 접근되는가(8개의 레코드 중 2개의 레코드를 n회 찾음, 이 때의 n)
    사용 빈도 수가 높다(방문을 많이 함) -> 다른 파일에 비해 더 빠르게 접근하게 만들어야 됨

  4. 응답 시간
    초 단위로 빠른 응답 시간이 필요하면 임의 접근 방식이 필요함

파일 크기와 파일 구조

레코드 수와 각 레코드의 길이가 파일 크기 결정, 시간이 지남에 따라 파일의 크기 성장, 나중에 추가될 레코드들의 저장 공간을 예비해 두어야 함
// 더 이상 레코드를 수용할 수 없을 때는 재조직이 필요

Leave a Reply

Your email address will not be published. Required fields are marked *