데이터베이스 기초 – 3. DBMS Architecture

DBMS ( DataBase Management System ) 의 아키텍쳐 구조에 대해서 알아보겠습니다.
DBMS 아키텍쳐


Contents of DBMS Architecture

  1. 저장 장치 관리자
  2. 질의 처리 관리자
  3. 트랜잭션 관리자
  4. 역사

저장 장치 관리자

1. 디스크 공간 관리 계층

  1. 상위 계층에 대해 저장 장치의 세부 사항과 관리 방법을 추상화 한다.
  2. 파일은 디스크 위에 페이지(블록) 단위로 저장한다.
  3. 페이지의 관리에 필요한 읽기, 쓰기 등의 명령어를 제공한다.

2. 버퍼 관리 계층

  1. 트랜잭션의 처리를 위한 메모리 공간(버퍼)을 관리한다.
  2. 버퍼는 미리 할당된 페이지들의 집합으로 구성된다.
  3. 메모리 공간 크기 < 디스크(DB의 데이타) 공간의 크기
  4. 페이지 교체 전략을 통한 적절한 버퍼 관리

질의 처리 관리자

1. 질의처리 및 최적화 계층

SQL 질의문을 관계대수식 형태의 실행 계획으로 변환
실행 계획을 최적화

2. 관계 연산자의 구현 계층

실행 계획의 처리를 위해 관계 연사자들에 대한 구현 모듈들로 구성

3. 파일 및 인덱스 관리 계층

데이터를 파일과 레코드 단위로 추상화 (버퍼 관리 계층: 페이지와 레코드로 구성)
데이터의 삽입, 삭제, 수정을 처리할 수 있도록 함
인덱스도 파일 형태로 관리


트랜잭션 관리자

  1. 디스크 공간 관리자, 버퍼 관리자와 파일 및 인덱스 관리 계층과 더불어 트랜잭션을 관리
  2. 동시성 제어 기능 지원
    Locking과 MVCC를 통해 트랜잭션을 스케줄링
  3. 복구 기능 지원
    1. 트랜잭션의 명령문들을 로그에 기록하여 시스템 장애 발생 시 로그를 통해 원자성, 지속성 지원
    2. WAL(Write Ahead Logging) 알고리즘
    3. 복구 관련 Log 예제 : MySQL(MariaDB도 동일)
      http://dev.mysql.com/doc/refman/5.7/en/backup-strategy-example.html

DBMS 역사

1. 60년대 – 70년대 초: Navigational DBMS

  • Integrated Data Store(IDS) : 네트워크형
  • Information Management System(IMS): 계층구조기반 IBM 개발

2. 70년대 후반 이후: Relational DBMS

  • System R(IBM), Ingres
  • 80년대 이후에는 PC용 DBMS 등장: dBase

3. 90년대 이후 : Object-oriented DBMS

  • Data viewed as object
  • Object store, o2 등

4. 2000년대 이후 : NoSQL 등

  • XML, 웹, 문서 등의 비 정형 데이터의 증가
  • NoSQL: MongoDB, Apache Cassandra, HBase