본문 바로가기
CS/DataBase

DBMS 아키텍처 개요

by yongckim 2022. 10. 16.
728x90
반응형

DBMS 아키텍처

일반적인 DBMS의 아키텍처 구조는 다음과 같습니다.

그림을 살펴보면 데이터베이스 사용자가 SQL을 이용해 명령을 내리면 중간에 있는 DBMS에서 다양한 처리를 수행하게 됩니다.

그리고 저장장치에 있는 데이터에 접근해서 데이터를 읽고 쓰게 됩니다.

이제 DBMS 내부에서 어떤 처리가 일어나는지 자세히 알아봅시다.

쿼리 평가 엔진

쿼리 평가 엔진사용자로부터 입력받은 SQL 구문을 분석하고 어떤 순서로 기억장치의 데이터에 접근할지를 결정합니다.

이때 결정되는 계획을 “실행 계획”(또는 “실행 플랜”)이라고 부릅니다.

이러한 실행 계획에 기반을 둬서 데이터에 접근하는 방법접근 메서드(access method)라고 합니다.

한마디로 쿼리 평가 엔진은 계획을 세우고 실행하는 DBMS의 핵심 기능을 담당하는 모듈입니다.

버퍼 매니저

DBMS는 버퍼라는 특별한 용도로 사용하는 메모리 영역을 확보해두는데 이 메모리 영역을 관리하는 것버퍼 매니저입니다.

버퍼 매니저는 디스크를 관리하는 디스크 용량 매니저와 함께 연동해서 동작합니다.

디스크 용량 매니저

데이터베이스는 프로그램 중에서도 가장 많은 데이터를 다루는 소프트웨어입니다.

또한 웹 서버나 애플리케이션의 서버는 실행되는 동안에만 데이터를 저장하면 되지만 데이터베이스는 데이터를 영구적으로 저장해야 하기 때문에 이를 관리하는 역할은 하는 것이 필요합니다.

디스크 용량 매니저어디에 어떻게 데이터를 저장할지 관리하며 데이터의 읽고 쓰기를 제어합니다.

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

상용 시스템에서 데이터베이스를 사용할때 한명만 접근하는 것이 아닌 여러 명이 접근할 수 있습니다.

이때 각각의 처리는 DBMS 내부에서 트랜잭션이라는 단위로 관리됩니다.

이러한 트랜잭션의 정합성을 유지하면서 실행시키고, 필요한 경우 데이터에 락을 걸어 다른 사람의 요청을 대기시키는 것이 트랜잭션 매니저와 락 매니저의 역할입니다.

리커버리 매니저

DBMS가 저장하고 있는 데이터 중에는 절대로 잃어버리면 안되는 데이터들이 있을 것입니다.

하지만 시스템은 언제나 장애가 발생할 수 있기 때문에 이러한 상황을 대비하려면 데이터를 정기적으로 백업하고 문제가 일어났을 때 복구해주는 역할을 하는 것이 리커버리 매니저입니다.

정리

  • 데이터베이스 사용자가 SQL 명령을 DBMS에 전달하면 DBMS는 다양한 처리를 하게 됩니다.
  • 쿼리 평가 엔진사용자로부터 입력받은 SQL 구문을 분석하고 어떤 순서로 기억장치의 데이터에 접근할지를 결정합니다.
    • 이때 결정되는 계획을 실행 계획이라 부르며, 실행 계획을 기반으로 데이터에 접근하는 방식을 접근 메서드라고 합니다.
  • 버퍼매니저는 DBMS에서 버퍼라는 특별한 용도로 사용하는 메모리 영역의 관리합니다.
  • 디스크 용량 매니저어디에 어떻게 데이터를 저장할지 관리하며 데이터의 읽고 쓰기를 제어합니다.
  • 트랜잭션 매니저와 락 매니저트랜잭션의 정합성을 유지하면서 실행시키고, 필요한 경우 데이터에 락을 걸어 다른 사람의 요청을 대기시키는 역할을 합니다.
    • DBMS의 각각의 처리는 트랜잭션이라는 단위로 관리됩니다.
  • 리커버리 매니저데이터를 정기적으로 백업하고 문제가 일어났을 때 복구해주는 역할을 합니다.

 

 

 

 

 

참고자료

http://www.yes24.com/Product/Goods/24089836

 

SQL 레벨업 - YES24

실무에 필요한 SQL 최적화!〈SQL 첫걸음〉으로 성공적인 입문을 마치고, 다음 고지를 바라보는 이들을 위한 한 권!이 책은 고성능 SQL 작성 방법을 초보자 눈높이에 맞춰 다양한 예제를 통해 설명

www.yes24.com

 

반응형