[DB]3. DBMS Architecture

kai·2025년 4월 11일

DataBase(완료)

목록 보기
4/10
post-thumbnail

위사진은 DBMS의 전체적인 구조도이다.
DBMS 실행과정을 구성하는 중요한 요소에는 Query Processor, Storage Manager, Transaction Manager, Buffer Manager이 있다.

  • 개념적으로는 Query Processor가 query parsing, optimization, excution을 담당하기 때문에 DBMS의 한부분이다. 그러나 위 다이어그램을 보면 user와 DBMS사이에 논리적으로 나누어 표현된 interface계층인 것을 볼 수 있다.이는 시스템 설계를 모듈화하는데 도움이 되고,다양한 애플리케이션과 사용자의 상호 작용을 용이하게 한다.

각부분 기능 설명

1. User & Application Programs

  • 사용자는 SQL 쿼리를 Query Processor를 통해 제출한다
  • 어플리케이션 프로그램은 DBMS와 DML Compiler를 통해 소통한다.

2. Query Processsor(Interface 계층)

1단계: DML Compiler - 높은 수준의 SQL query-> 낮은 레벨의 DBMS command로 변환
2단계: Query Parser - SQL 상태구조와 문법을 분석
3단계: Query Rewriter - 단순화 및 규칙 기반변환(Rule-based transformations)을 적용하여 쿼리를 최적화한다.(e.g.효율적인 실행을 위해 중첩된 쿼리 제거)
4단계: Query Optimizer - index,table size,접근 방식등에 기반하여,가장 효율적인 plan을 결정한다.
5단계: Query Excutor - 최적화된 query plan을 전달하여 Command Processor가 실행하도록 함

3. Database Manager

  1. Authorization Control -접근허가를 관리
  2. Command Processor - 데이터베이스 command를 실행
  3. Integrity Checker- 각종 제약을 강화한다(e.g.primary key,foreign keys)

4. Query Execution and Data Handling

  • Query Optimizer : query를 실행하기에 가장 좋은 방법을 찾는다
  • Scheduler: 현재 실행중인 transaction을 관리한다.
  • Transaction Manager: ACID를 준수하게 한다
  • Buffer Manager: 메모리를 관리하고, 자주사용되는 데이터를 캐시로 저장한다(디스크 I/O오버헤드를 줄인다)
  • Recovery Manager: 실패와 데이터 회복을 다룬다.

5. Data Storage Layer

Data File(actual data)Data Dictionary(metadata) 를 저장한다.
(metadata about tables,indexes,constraints등)


DBMS 실행과정

[1단계] Query Submission

:사용자가 SQL query를 제출한다.

[2단계] Query Processing & Optimizer

:Query Processor가 작업수행

[3단계] Query excution & Transaction Management

  • (필요하다면) Authorization Control이 사용자 접근 허가를 체크
  • Command Processor가 query Optimizer에게 Query 전달
  • Query Optimizer은 최적화 경로를 찾기
  • Transaction Manager는 ACID 준수를 가능하게 함

[4단계] Data Retrieval form Stroage

  • Buffer Manager는 Data File에서 데이터를 검색하거나, 메모리로부터 데이터를 캐시해온다
  • (cache가 되어있지 않을 경우) Storage Manager는 디스크로부터 데이터를 들고온다.

[5단계] Query Result Delivery

결과를 Query Processor을 통해 사용자에게 전달

profile
한 대학생의 코딩일기. 임베디드와 인공지능에 관심이 많습니다.

0개의 댓글