DBMS의 구조
DBMS는 다음과 같이 여러 레이어로 구성되어 있다. 이를 “계층화 아키텍쳐(Layered architecture)”라고 한다.
계층화 아키텍쳐의 특징은 각 계층이 아래 계층을 “추상화(abstracts)”한다는 것이다. 즉, 위 계층은 아래 계층에서 내부적으로 무엇을 하는 지 알지 못한다.
또한, 각 계층은 직접 맞닿아있는 계층과만 소통할 수 있다. 예를 들어, Index 계층는 Disk 계층에 직접 요청하지 못하고, Buffer 계층에 요청을 전달만 할 수 있다. (참고로, 계층화 아키텍쳐가 필수는 아니다. 다만, 재사용성이 높은 등 여러 가지 장점이 있음)
-
Query Parsing & Optimization + Relational Operators
SQL을 파싱, 검증한 후 relational query plan으로 치환한다.
-
Relational Query Plan 이란, 쿼리 옵티마이저가 계산한 SQL을 처리하는 최저비용의 경로 이다. SQL은 선언형이기 때문에 주어진 쿼리를 실행하는 데 수많은 방법이 존재한다. 테이블 접근 순서, 방식 등을 바꿔가며 데이터 I/O를 최소화할 수 있는 경로를 추정한다. 다음은 쿼리 플랜의 예시이다.
-
-
Files and Index Management
테이블과 레코드(데이터)를 “로지컬한” 구조로 관리한다.
-
Buffer Management
디스크IO의 느린 속도를 보완해주는 완충지역이다. 유저에게 메모리에서 작업하는 듯한 착각을 준다.
-
Disk Space Management
“피지컬한” 디바이스에 데이터를 저장하고 읽어온다. 이를 위해, Index Manager가 관리하는 로지컬한 주소를 피지컬 디스크 바이트 주소로 치환한다.
-
Database
실제 데이터가 저장되는 디바이스.