본문 바로가기
Database

디스크 공간 관리 모듈

by creatingeveryday 2023. 5. 8.

디스크 공간 관리 모듈(disk space management)

  • 대부분의 데이터베이스 시스템은 디스크와 SSD에 정보를 저장한다.
  • 디스크 공간 관리 모듈의 바로 위 계층 모듈인 버퍼 관리 모듈은 디스크 공간 관리 모듈을 호출하여 페이지를 읽고 쓰고, 논리 페이지를 할당하고 해제한다.
  • 디스크 공간 관리 모듈은 DBMS 아키텍처의 맨 아래층으로 디스크 상의 공간을 관리하는 역할을 한다.
    • 특정 페이지가 물리적으로 디스크의 어느 지점에 위치하는지 추적하여 읽기
    • 페이지를 디스크에 쓰는 작업
  • 디스크 드라이브는 Block(블록)이라는 큰 연속적인 바이트를 읽고 쓰는 인터페이스를 제공한다.
    • Block이란 디스크와 RAM사이의 전송 단위로 데이터베이스 시스템 설정에 따라 달라진다.(4KB, 16KB, 64KB, 128KB..)
    • 페이지는 현재 메모리에 있는 Block을 의미한다.
  • 디스크에서 I/O 작업 시 블록의 사용을 최대화하는 게 좋다.
    • 읽기 작업시: 최대한 물리적으로 연속된 페이지로 읽기 작업을 수행하면 좋다. 인기 있는 페이지라고 생각되는 블록을 메모리에 보관해서 캐싱할 수도 있고, 미리 예상하여 블록을 가져올 수도 있다.(prefetch)
    • 쓰기 작업시: 쓰려고 하는 페이지를 버퍼에 담아두었다가 한 번에 처리할 수도 있다.

Table: Records = File: Pages

  • RDB의 기본 데이터 단위는 레코드(행)이다. 레코드가 모여서 테이블을 구성한다.
  • 디스크의 기본 데이터 단위는 페이지이다.
  • 디스크와 호환되는 형식으로 관계형 데이터베이스를 표현하기 위해 각 릴레이션(테이블)은 자체 파일에 저장되고 해당 파일 내에서 레코드들은 페이지로 구성된다.

DB File

  • record를 포함하고 있는 페이지의 collection
  • record Id 는 [페이지의 ID, 페이지내에서의 위치]를 가리키는 포인터다.
  • record Id를 이용해서 레코드를 입력, 수정, 삭제할 수 있다.

DB File의 종류

  • Heap File
    • 레코드가 특정한 순서 없이 페이지에 임의로 배치된다.
  • Sorted File
    • 페이지와 레코드가 특정 정렬 순서로 보관된다.
  • Index File
    • 자체적으로 레코드를 포함하고 있으며 다른 파일의 레코드에 대한 포인터도 포함될 수 있다.
    • B+ Tress, Linear Hashing, ...

더 좋은 파일 구조는 정해져있지 않다. 파일을 사용하는 패턴에 따라 달라진다.

'Database' 카테고리의 다른 글

DBMS 버퍼 관리  (0) 2023.05.27
DBMS 아키텍처  (0) 2023.05.06
SQL  (0) 2023.04.22
데이터베이스 시스템  (0) 2023.04.15

댓글