
위사진은 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
- Authorization Control -접근허가를 관리
- Command Processor - 데이터베이스 command를 실행
- 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 준수를 가능하게 함

- Buffer Manager는 Data File에서 데이터를 검색하거나, 메모리로부터 데이터를 캐시해온다
- (cache가 되어있지 않을 경우) Storage Manager는 디스크로부터 데이터를 들고온다.
[5단계] Query Result Delivery
결과를 Query Processor을 통해 사용자에게 전달
