[DBMS 아키텍처] DBMS의 구조

김영광·2023년 4월 10일
0

SQL Level Up

목록 보기
1/2

DBMS 아키텍처의 구조 및 개요

현재 사용되는 RDB(Relational Database) 제품은 굉장히 많다.
한국에서는 Oracle, SQL Server, DB2, PostgreSQL, MySQL 등이 많이 사용된다.
상용되고 있는 RDB들의 내부 아키텍처들이 조금씩 다르지만 RDS로써 기능을 제공한다는 목적은 같다.
즉, 관계 모델이라는 수학적인 이론을 바탕으로 결국 기본적인 구조 자체는 모두 같다. 이러한 공통적인 구조를 이해한다면, 각각의 DBMS가 가지는 특징도 쉽게 이해를 할 수 있다.

해당 그림은 데이터베이스 사용자와의 인터페이스를 나타낸다.
전달된 SQL 구문은 중간에 위치한 DBMS를 통해 다양한 처리를 수행하고, 저장 장치에 있는 데이터에 접근해서 데이터를 읽고 쓴다.
일반적인 DBMS 아키텍처는 위와 같은 구조를 가지고 있다. DBMS 내부의 기능을 알아보자.

1. 쿼리 평가 엔진

  • 사용자로부터 입력받은 SQL 구문을 분석하여, 실행 계획(Explain Plan, 어떤 순서로 데이터에 접근하는지)을 결정한다.
  • 실행 계획을 기반으로 데이터에 접근하는 방법을 접근 메서드(Access Method)라고 한다.
  • 성능과 깊은 관련이 있는 DBMS의 핵심 기능을 담당하는 모듈이다.

2. 버퍼 매니저

  • DBMS는 버퍼라는 메모리 영역을 확보하는데, 이를 관리한다.
  • 디스크 용량 매니저와 연동되어 작동한다.

    버퍼란, 임시 저장 공간을 의미한다. 임시 저장 공간이라고 해서 쌩뚱맞게 보일 수 있지만 정확히 말하면 A와 B가 서로 입출력을 수행하는데에 있어서 속도차이를 극복하기 위해 사용하는 임시 저장 공간을 의미 한다.

3. 디스크 용량 매니저

  • 가장 많은 데이터를 다루는 소프트웨어
  • 어디에 어떻게 데이터를 저장할지를 관리하며, 데이터의 읽고 쓰기(I/O)를 제어한다.

4. 트랜잭션 매니저와 락 매니저

  • 수백에서 수천명의 사람이 동시에 DB에 접근하여 사용하게되는데, 이때 각각의 처리는 DBMS 내부에서 트랙잭션이라는 단위로 관리된다.
  • 트랜잭션의 정합성을 유지하면서 실행시키고, 필요한 경우 데이터에 락을 걸어 다른 사람의 요청을 대기시킨다.

    정합성 : 어떤 데이터들이 값이 서로 일치함.
    무결성 : 데이터 값이 정확한 상태

5. 리커버리 매니저

  • 시스템의 장애를 대비한다.
  • 데이터를 정기적으로 백업하고, 문제가 일어났을 때 데이터를 복구한다.
profile
힘들더라도 꾸준히!

0개의 댓글