9강 데이터 저장과 파일

inhalin·2021년 5월 18일
0
post-thumbnail

물리적 저장장치

물리적 저장장치의 구성

  1. 물리적 저장장치는 데이터 접근 속도, 용량을 기준으로 다양한 장치로 구성되어 있다.

위로 갈수록 속도가 빨라지는 대신 가격이 비싸지고 저장할 수 있는 용량이 적다. 반대로 밑으로 갈수록 속도는 느리지만 가격이 싸고 저장용량이 커진다.

물리적 저장장치별 특징

  1. 휘발성
  • 캐시는 고비용 저장장치로 빠른 접근 속도를 보장한다.
  • 메인 메모리는 실제 프로그램과 데이터를 적재하는 공간이다.
  1. 비휘발성
  • 플래시 메모리와 비슷하지만 비휘발성이다.
  • 자기 디스크는 데이터베이스 전체를 안정적으로 저장한다.
  • 광학 디스크 드라이브는 CD, DVD, Blue-ray 등을 말한다.
  • 테이프 장치는 용량이 크고 저렴하지만 순차 접근 방식으로 접근하기 때문에 속도가 매우 느리다.

파일

데이터베이스 구성 요소

  1. 파일 : 데이터를 영구저장하기 위해 사용되는 가장 기초적인 논리적 구조
  2. 블럭 : 파일을 고정된 길이로 분할해 생기는 균등한 크기의 데이터 묶음
  3. 레코드 : 블럭을 구성하는 요소로 더 이상 분리될 수 없는 최소 데이터 저장 단위

파일의 구성

고정 길이 레코드

잔여 고정 길이 레코드

가변 길이 레코드

슬롯 페이지 구조

파일 구조화

파일 구조화란 파일 수준에서 레코드를 관리하는 기법이다.

  • 힙 파일 구조 : 저장 순서 상관없이 파일 내 임의의 위치에 배치
  • 순차 파일 구조 : 레코드를 탐색키 기준으로 정렬해서 저장(제일 많이 쓰는 방식)
  • 해시 파일 구조 : 해시 함수를 사용해 계산한 블럭 주소에 배치

순차 파일 구조

  • 레코드가 검색키 순서대로 정렬
  • 레코드가 파일에 삽입되는 시점에 키 값 부여
  • 장점 : 검색키 정렬 연산 불필요, 키 순서대로 다음거 찾기 편리함, 이진 탐색 사용 시 찾는 속도 더 빨라짐
  • 단점 : 레코드 삽입, 삭제에 많은 비용 소요(시간, 작업량 등)

저장장치 관리

저장장치 접근

  1. 파일은 논리적 관점에서의 저장 객체이다
  2. 실제 저장될 때는 여러 개의 물리적 단위인 블럭으로 저장된다.
  • 블럭은 메모리와 디스크 사이의 데이터 전송 단위를 말한다.
  • 일반적으로 2kb~32kb 사용
  • 블럭 전송을 최소화할수록 입출력 소요 시간이 줄어든다.

버퍼 관리자

DBMS에서 소프트웨어는 필요한 필럭이 있을 때 버퍼 관리자에게 해당 블럭을 요청한다.

  • 요청된 블럭이 버퍼에 있으면 버퍼 관리자가 블럭이 있는 메모리주소를 프로그램에 전달
  • 요청된 블럭이 없으면 버퍼 내의 새로운 공간을 할당하고 해당 블럭을 적재
  • 더 적재할 공간이 없으면 버퍼에 있는 기존 블럭을 선택해서 할당을 해지하고 해당 블럭을 적재

버퍼 관리자의 기능

  • 고정 블럭 : 장애로 인해 메모리의 데이터가 손실되어 작업이 중단된 경우에 중단된 작업의 결과물이 디스크에 기록되는 것을 방지하고, 디스크 블럭이 교체되는 것을 제한한다.
  • 블럭 강체 출력 : 중요한 데이터가 유실되지 않게 버퍼 공간이 필요 없어도 강제로 디스크에 기록을 남긴다.

버퍼 교체 전략

  1. LRU(Least Recently Used) : 최근에 가장 적게 참조된 블럭을 교체
  2. MFU(Most Frequently Used) : 특정 기간동안 가장 많이 사용된 블럭을 교체

0개의 댓글