DBMS의 구조

DBMS는 다음과 같이 여러 레이어로 구성되어 있다. 이를 “계층화 아키텍쳐(Layered architecture)”라고 한다. 계층화 아키텍쳐의 특징은 각 계층이 아래 계층을 “추상화(abstracts)”한다는 것이다. 즉, 위 계층은 아래 계층에서 내부적으로 무엇을 하는 지 알지 못한다. 또한, 각 계층은 직접 맞닿아있는 계층과만 소통할 수 있다. 예를 들어, Index 계층는 Disk 계층에 직접 요청하지 못하고, Buffer 계층에 요청을 전달만 할 수 있다. (참고로, 계층화 아키텍쳐가 필수는 아니다. 다만, 재사용성이 높은 등 여러 가지 장점이 있음)

Untitled

  1. Query Parsing & Optimization + Relational Operators

    SQL을 파싱, 검증한 후 relational query plan으로 치환한다.

    • Relational Query Plan 이란, 쿼리 옵티마이저가 계산한 SQL을 처리하는 최저비용의 경로 이다. SQL은 선언형이기 때문에 주어진 쿼리를 실행하는 데 수많은 방법이 존재한다. 테이블 접근 순서, 방식 등을 바꿔가며 데이터 I/O를 최소화할 수 있는 경로를 추정한다. 다음은 쿼리 플랜의 예시이다.

      Untitled

  2. Files and Index Management

    테이블과 레코드(데이터)를 “로지컬한” 구조로 관리한다.

  3. Buffer Management

    디스크IO의 느린 속도를 보완해주는 완충지역이다. 유저에게 메모리에서 작업하는 듯한 착각을 준다.

  4. Disk Space Management

    “피지컬한” 디바이스에 데이터를 저장하고 읽어온다. 이를 위해, Index Manager가 관리하는 로지컬한 주소를 피지컬 디스크 바이트 주소로 치환한다.

  5. Database

    실제 데이터가 저장되는 디바이스.