I=p(D)
Information = Processing(Data)
데이터를 처리해서 정보가 만들어짐
// DBMS가 데이터를 처리 (생성/변경/삭제 연산 진행)
Q. 의미있는 정보가 되려면?
정확성, 현재성이 보장 <정확한가 & 실재하는가>
컴퓨터로 데이터를 처리할 때 중요한 이슈는?
-> 데이터를 어떻게 효율적으로 저장/전송하는가?
디스크에 저장하는 데이터는 크게 무엇으로 구분되는가?
1. 파일
공통적인 응용 목적(급여,인사,재무 등)을 가지고 보조기억장치에 저장된 데이터 레코드 집합
- 세로[열](초록): 필드, 가로[행](빨강): 레코드
- 필드는 논리적 데이터의 최소 단위(배의 코드,이름,색)이며 attribute 또는 item이라고도 함 <color를 더 이상 쪼갤 수 있어? -> co,lor 이렇게 쪼개봤자 논리적 의미가 없잖아!>
- 레코드는 서로 연관된 필드들로 구성된 것 (가로 한 줄 데이터(레코드) -> 배의 코드+이름+색)
파일구조란?
디스크에 저장할 데이터를 표현하는 방식 & 데이터에 접근하기 위한 연산 방식
-> 어떻게 파일 구조를 설계하느냐에 따라 시스템이 시간을 허비하지 않고 효율적으로 데이터 처리가 가능함
데이터의 집합을 왜 디스크 파일로 구성하는가?
- 주기억장치에 전부 적재하기에 데이터 양이 너무 많다.
- 프로그램은 데이터 집합의 일부만 접근하기 때문에 모두 주 메모리에 넣을 필요는 없다.
- 여러 응용 프로그램이 공용하기 쉽게 하기 위해 프로그램과 데이터를 별도(파일)로 저장시키는 것이다. (=) 데이터의 독립성을 유지
기능에 따른 파일의 분류
- 마스터 파일
영속적 데이터 레코드를 포함하고 있는 파일, 일반적인 파일, 현재성(최신성)을 유지해야 함
Ex) 제조회사의 급여/고객/인사/재고/자재 요청 마스터 파일 - 트랜잭션 파일
마스터 파일에 적용할 변경 내용을 모아 저장한 파일
Ex) 인사 마스터 파일을 변경해야 될 때, 인사 변동의 내용만을 담은 데이터 파일,
출석부가 마스터 파일이면, 취소되거나 새로 들어오는 학생들 모음은 트랜잭션 파일 - 보고서 파일
사용자에게 정보 검색의 결과를 보여주기 위해 일정한 형식을 갖춘 데이터를 저장하는 파일
Ex) 쪽수 매기고 줄 간격 맞춤, 들여쓰기하는 등 형식 갖춘 파일 - 작업 파일
(출력 데이터를 다른 프로그램의 입력 데이터로 사용하기 위해)임시로 만들어 사용하는 파일
Ex) 정렬을 하려면 중간 중간에 임시 파일을 만들 때가 있음 - 프로그램 파일
데이터를 처리하기 위한 명령어들을 저장하고 있는 파일 - 텍스트 파일
문자 숫자와 그래픽 데이터를 포함하고 있는 파일
접근 목적에 따른 파일의 분류
- 입력 파일
프로그램이 판독을 위해 접근하는 파일 (원시 프로그램 파일) - 출력 파일
프로그램이 기록을 위해 접근하는 파일 (목적코드 파일) - 입출력 파일
프로그램이 실행 중 판독과 기록을 위해 접근하는 파일
파일의 연산
- 일괄처리 형식
한 번에 다 모아서 처리/ 트랜잭션들을 그룹화하여 처리하는 성능이 주요 관심사 - 대화 형식
트랜잭션이 터미널에 도착하는대로 구성하고 처리함/ 개개 트랜잭션 처리하는 성능이 주요 관심사
생성: 데이터 정의, 적재(정의에서 맞춘 타입에 맞게 적재)
-> 파일을 생성하려면 공간 할당/ 디렉토리 엔트리에는 파일의 위치 정보를 포함
기록: 레코드 삽입, 삭제, 갱신
-> 디렉토리를 조사해서 파일의 위치를 찾아냄 -> 해당되는 위치에 레코드를 삭제/변경함
판독: 파일의 이름을 찾기
-> 파일의 위치와 판독해야 될 레코드의 디스크 주소를 찾아냄
삭제: 파일 제거
-> 다른 파일이 사용할 수 있도록 디스크 공간 반환 / 디렉토리 엔트리 삭제
개방과 폐쇄: 파일 열기/닫기
-> Fopen/fclose 활용, 버퍼 할당, 버퍼 반환
주기억장치
최대 비교 연산 횟수가 프로그램 성능 평가 요소 / 적을수록 좋게 평가
보조 기억장치
데이터에 접근하는 시간이 메인 메모리에 비해 10^5배 느림 <10ms과 100ns의 차이>
보조 저장 장치의 접근 횟수가 프로그램 성능 평가 요소
(1ms -> 10^-3 s, 1ns -> 10^-9 s, 10ms -> 10^-2 s,100ns -> 10^-7 s-> 10^-5배 차이)
파일 구조 선정 요소
- 가변성
전체 레코드 수에 대해 추가되거나 삭제되는 레코드 수
가변성이 높다(추가되거나 삭제되는 레코드 수가 많다) -> 동적인 파일 -> 삽입/삭제 연산이 빠르고 효율적이어야 됨 - 활동성
파일의 총 레코드 수에 대해 접근한 레코드 수의 비율
활동성이 높다(접근된 레코드수가 많다) -> 순차적으로 파일을 구성하면 좋음 - 사용 빈도 수
얼마나 많이 접근되는가(8개의 레코드 중 2개의 레코드를 n회 찾음, 이 때의 n)
사용 빈도 수가 높다(방문을 많이 함) -> 다른 파일에 비해 더 빠르게 접근하게 만들어야 됨 - 응답 시간
초 단위로 빠른 응답 시간이 필요하면 임의 접근 방식이 필요함
파일 크기와 파일 구조
레코드 수와 각 레코드의 길이가 파일 크기 결정, 시간이 지남에 따라 파일의 크기 성장, 나중에 추가될 레코드들의 저장 공간을 예비해 두어야 함
// 더 이상 레코드를 수용할 수 없을 때는 재조직이 필요