8. 레코드 파일 관리

💦 레코드 키

  • 파일 내의 특정 레코드 검색
  • 레코드 내용을 근거로 특정한 레코드를 검색
    ex) "1st record", "2nd record" vs "Ames record", "Mason record"
  • 키를 레코드 주소로 변환하는 규칙필요
  • 기본 키(primary key) : 하나의 레코드를 유일하게 식별하는 키
  • 보조키(secondary key)
    ex) 이름, 학과

💦 순차 검색/접근(Sequential Search)

  • 순차 검색의 성능 평가
    - 평가 기준 : Read 함수의 호출 수 (메모리 내의 비교시간 무시)
    • 평균 시간 : n개의 레코드를 갖고있는 파일 -> 2/n 회의 호출필요
    • 레코드 Blocking을 사용한 순차 검색성능
      - Blocking : 레코드의 묶음으로 성능 측정을 위해 사용함.
      - 여러 레코드로 구성된 블록을 한꺼번에 판독한 뒤, 메모리에서 그 레코드를 처리함.

      장점 :

      1. 쉬운 프로그래밍 
      2. 가장 단순한 형태의 파일구조를 요구

      주로사용하는 경우 :

      1. 레코드의 개수가 적을 파일들일때 편리.
      2. 좀처럼 검색될 필요가 없는 파일들
      3. 특정한 보조키 값에 일치하는 레코드의 개수가 매우 크게 예상되는 파일들

💦 직접 검색/접근(Direct Access)

  • 직접 검색 : 레코드의 시작위치를 바로 찾아가서 판독 가능할 때
    순차검색은 O(n)연산, 직접검색은 O(1) 연산 -> 바로 찾아감.
  • 직접 검색의 주요 문제
  1. 레코드의 시작위치를 알아야한다.
  • RRN(Relative record number) : 파일의 시작에 대한 레코드의 상대적 위치
  • 가변길이 레코드인 경우는 도움이 안됨
  • 고정길이 레코드인 경우 : byte offset = n * r
    (n: 레코드의 RRN, r : 레코드의 크기)

💦 레코드 구조와 레코드 길이의 선택

✅ 방법 1 : 고정길이 필드를 가지는 고정길이 레코드

장점 : 단순성

✅ 방법 2 : 가변길이 필드를 가지는 고정길이 레코드
장점 : 평균 효과 (작은 공간을 효과적으로 이용), 방법 1보다 길이가 짧음.
해결과제 : 레코드 내에서 사용되지 않는 부분과 데이터 부분 구별

헤더 레코드

  • 파일에 대한 정보를 유지하는 특수 레코드
  • 정보 유지를 위해 파일의 시작부분에 놓음
  • 보통 파일에 있는 데이터 레코드와는 다른 구조
  • 파일 설계를 위한 중요한 도구
  • 헤더 레코드의 내용 : 레코드의 수, 레코드의 길이, 최근 변경일 등

❗❗ 파일 접근 및 구성

❗❗ x-> △ 로 바꾸는 방법
: 인덱스파일을 추가하면 직접 접근이 가능할 수 있다.

파일 공유

  • 이식성표준화
  • 서로다른 컴퓨터, 다른프로그램에서 접근가능

좋은 웹페이지 즐겨찾기